Skip to main content

Développement agile de logiciels

Développement agile de logiciels

Manifeste pour le développement Agile de logiciels

Nous découvrons comment mieux développer des logiciels par la pratique et en aidant les autres à le faire.

Ces expériences nous ont amenés à valoriser :

  • Les individus et leurs interactions plus que les processus et les outils
  • Des logiciels opérationnels plus qu’une documentation exhaustive
  • La collaboration avec les clients plus que la négociation contractuelle
  • L’adaptation au changement plus que le suivi d’un plan

Nous reconnaissons la valeur des seconds éléments, mais privilégions les premiers.

Principes sous-jacents au manifeste

Nous suivons ces principes :

  • Notre plus haute priorité est de satisfaire le client en livrant rapidement et régulièrement des fonctionnalités à grande valeur ajoutée.
  • Accueillez positivement les changements de besoins, même tard dans le projet. Les processus Agiles exploitent le changement pour donner un avantage compétitif au client.
  • Livrez fréquemment un logiciel opérationnel avec des cycles de quelques semaines à quelques mois et une préférence pour les plus courts.
  • Les utilisateurs ou leurs représentants et les développeurs doivent travailler ensemble quotidiennement tout au long du projet.
  • Réalisez les projets avec des personnes motivées. Fournissez-leur l’environnement et le soutien dont ils ont besoin et faites-leur confiance pour atteindre les objectifs fixés.
  • La méthode la plus simple et la plus efficace pour transmettre de l’information à l'équipe de développement et à l’intérieur de celle-ci est le dialogue en face à face.
  • Un logiciel opérationnel est la principale mesure d’avancement.
  • Les processus Agiles encouragent un rythme de développement soutenable. Ensemble, les commanditaires, les développeurs et les utilisateurs devraient être capables de maintenir indéfiniment un rythme constant.
  • Une attention continue à l'excellence technique et à une bonne conception renforce l’Agilité.
  • La simplicité – c’est-à-dire l’art de minimiser la quantité de travail inutile – est essentielle.
  • Les meilleures architectures, spécifications et conceptions émergent d'équipes autoorganisées.
  • À intervalles réguliers, l'équipe réfléchit aux moyens de devenir plus efficace, puis règle et modifie son comportement en conséquence.

http://agilemanifesto.org/iso/fr/manifesto.html

L'équipe

Le Product Owner

Le Product Owner est responsable de maximiser la valeur du produit résultant du travail de l’équipe de développement.

La façon de jouer ce rôle peut varier grandement selon les organisations, les équipes et les individus.
Le Product Owner est le seul responsable de la gestion du Backlog Produit (Product Backlog).

La gestion du Backlog Produit comprend :

  • L’expression claire des éléments du Backlog produit ;
  • L’ordonnancement des éléments dans le Backlog produit pour mieux réaliser les objectifs et les missions ;
  • L’optimisation de la valeur du travail effectué par l'équipe de développement ;
  • L’assurance que le Backlog produit est visible, transparent et clair pour tous, et montre sur quoi l’équipe de développement travaillera prochainement ;
  • L’assurance que l'équipe de développement comprend adéquatement les éléments du Backlog produit.

Le Product Owner peut lui-même accomplir les tâches susmentionnées ou les déléguer à l’équipe de Développement. Toutefois, le Product Owner en demeure responsable.

Le Product Owner est une personne, et non un comité. Le Product Owner peut représenter les désirs d’un comité dans le Backlog Produit, mais ceux qui veulent changer la priorité d’un élément du Backlog Produit doivent consulter le Product Owner.

Afin que le Product Owner réussisse dans sa démarche, toute l'organisation doit respecter ses décisions.

Les décisions du Product Owner sont visibles dans le contenu et l’ordonnancement du Backlog produit.

Nul ne peut forcer l'équipe de développement à travailler à partir d'un autre ensemble d'exigences.

L'équipe de développement

L'équipe de développement se compose de professionnels qui fournissent un incrément « Fini » potentiellement publiable (Releasable) à la fin de chaque Sprint. Un incrément « Fini » est requis à la revue de sprint. Seuls les membres de l'équipe de développement créent l'incrément.
Les équipes de développement sont structurées et habilitées par l'organisation à s’organiser et gérer leur propre travail. La synergie résultante optimise l'efficience et l'efficacité globale de l'équipe de développement.
Les équipes de développement ont les caractéristiques suivantes :

  • Elles sont auto-organisées. Nul (pas même le Scrum Master) n’indique à l’équipe de développement comment transformer les éléments du Backlog Produit en incréments de fonctionnalités potentiellement publiables ;
  • Elles sont pluridisciplinaires, avec toutes les compétences nécessaires, en tant qu’équipe, pour créer un incrément produit ;
  • Les membres de l’équipe de développement peuvent détenir individuellement des compétences et des centres d’intérêt spécifiques, mais c’est l’équipe de développement dans son ensemble qui est tenue responsable.

Le Scrum / Agile Master

Le Scrum Master est chargé de promouvoir et supporter les méthodes agiles. Les Scrum Masters remplissent leur rôle en aidant tout le monde à comprendre la théorie, les pratiques, les règles et les valeurs des méthodes agiles.
Le Scrum Master est un leader-serviteur de l'équipe, il assiste également les personnes externes à l'équipe pour identifier quelles sont les interactions bénéfiques avec elle. Il aide tout le monde à adapter leurs interactions avec l’équipe pour maximiser la valeur créée par cette dernière.

Au service du Product Owner

  • S'assurer que les objectifs, le périmètre et le domaine du produit sont compris par tous les membres de l'équipe de la meilleure façon possible ;
  • Trouver des techniques pour une gestion efficace du Backlog produit ;
  • Aider l'équipe à comprendre avec clareté et concision les éléments du Backlog produit ;
  • Comprendre la planification de produits dans un contexte empirique ;
  • S'assurer que le Product Owner sait comment organiser le Backlog produit pour maximiser la valeur ;
  • Comprendre et mettre en oeuvre l'agilité ;
  • Faciliter les événements et rituels, en cas de demande ou nécessité.

Au service de l’équipe de Développement

  • Coacher l'équipe de développement en matière d'auto-organisation et de pluridisciplinarité ;
  • Aider l'équipe de développement à créer des produits de grande valeur ;
  • Supprimer les obstacles à la progression de l'équipe de développement ;
  • Faciliter les événements et rituels, en cas de demande ou nécessité ;
  • Coacher l'équipe de développement dans des environnements organisationnels où les méthodes agiles ne sont pas encore complètement adoptées et comprises.

Au service de l’Organisation

  • Accompagner l'organisation dans son adoption de l'agilité ;
  • Planifier la mise en oeuvre au sein de l'organisation ;
  • Aider les employés et les parties prenantes à comprendre et adopter l'agilité ainsi que le développement empirique de produits
  • Provoquer les changements qui augmentent la productivité de l'équipe ;

Ressources

Manifeste pour le développement Agile de logiciels

http://agilemanifesto.org/iso/fr/manifesto.html

Par le pouvoir du Scrum Master, transforme-nous

http://blog.cellenza.com/methode-agile/mise-en-place-de-scrum-en-sous-marin/

The Agile System Development Life Cycle (SDLC)

http://www.ambysoft.com/essays/agileLifecycle.html