Pendant longtemps, le développement de produits a été linéaire: on avait une idée, on lançait une étude de marché, on imaginait le produit, puis on le construisait. Une fois des millions d’euros engloutis dans le projet, on pouvait enfin savoir … s’il était adapté au client. Face à cette démarche s’est affirmée une méthode, qui concerne surtout le monde du développement: la méthode agile.
Elle est aujourd’hui un incontournable de la gestion de projets dans le secteur informatique, notamment pour le développement d’applications et de logiciels.
Le manifeste agile (« The Agile Manifesto »)
C’est le manifeste agile (« Agile Manifesto » en anglais) qui a, en 2001, fait connaître au grand public la méthodologie agile. Écrit par 17 grandes figures du développement logiciel, il pose 4 valeurs et 12 principes, que nous allons vous présenter, avant de faire un petite rétrospective historique.
Les 4 valeurs
Les valeurs du manifeste agile tendent à rendre la gestion de projet informatique plus proche de l’intérêt du client.
- Individus et interactions plutôt que processus et outils
- Logiciel fonctionnel plutôt que documentation exhaustive
- Collaboration avec le client plutôt que négociation de contrat
- Réagir au changement plutôt que suivre un plan
(rq: le terme anglais « over » traduit une prévalence, alors que plutôt quelque chose d’alternatif, mais je n’ai pas trouvé meilleure traduction)
Les 12 principes
- Notre priorité absolue est de satisfaire le client en livrant rapidement et régulièrement un logiciel qui apporte de la valeur.
- Accueillir les changements de besoins, même tard dans le développement. Les processus Agiles exploitent le changement pour améliorer l’avantage compétitif du client.
- Livrer fréquemment un logiciel fonctionnel, avec des délais de quelques semaines à quelques mois, avec une préférence pour les délais les plus courts.
- Les personnes en charge du business et les développeurs doivent travailler ensemble quotidiennement pendant toute la durée du projet.
- Construisez les projets autour d’individus motivés. Donnez-leur l’environnement et le soutien dont ils ont besoin et faites-leur confiance pour faire le travail.
- La méthode la plus efficace et efficiente pour transmettre de l’information à l’équipe de développement et au sein de celle-ci est la conversation en face à face.
- Un logiciel fonctionnel est la principale mesure du progrès.
- Les processus Agiles favorisent un développement durable. Les commanditaires, les développeurs et les utilisateurs devraient être capables de maintenir un rythme constant indéfiniment.
- Une attention continue à l’excellence technique et à la bonne conception améliore l’agilité.
- La simplicité, c’est-à-dire l’art de maximiser la quantité de travail non effectué, est essentielle.
- Les meilleures architectures, exigences et conceptions émergent d’équipes auto-organisées.
- À intervalles réguliers, l’équipe réfléchit à la façon de devenir plus efficace, puis ajuste et affine son comportement en conséquence.
Rétrospective historique
Le manifeste agile s’inscrit dans la longue histoire. En effet, les travaux sur un cycle de production itératif et incrémental remontent aux années 30-40 et on été appliqué à l’informatique dès les années 1950. Motorola aurait même déjà utilisé une technique similaire à ce qui sera plus tard l’eXtreme programming … en 1957 ! Le « modèle en spirale » développé par Barry Boehm en 1986 inspirera la méthodologie RAD (Rapid Application Development) développée par James Marin en 1991, puis Jean-Pierre Vickoff et Jennifer Stapleton. Le terme agile lui-même avait déjà été utilisé la même année. (Wikipedia)
C’est dans la suite de ces travaux et de bien d’autres que le manifeste agile a été, en 2001, écrit. Notez que deux auteurs, Ken Schwaber et Jeff Sutherland étaient respectivement créateur et promoteur de la méthode SCRUM, qui est un des principaux protocoles agiles et avait été créé en 1995. De même, il y avait Kent Beck, qui a imaginé l’eXtreme Programming en 1999.
Aujourd’hui, de nombreuses entreprises adoptent des modes de management agiles. Les objectifs de la démarche concernent en effet tous les créateurs de produits: rapprocher les clients de l’entreprise est un impératif pour tous.
Les protocoles agiles
Il y a une myriade de méthodes de gestion de projet « agiles ». Elles sont surtout utilisées dans le développement informatique.
La méthode SCRUM
C’est sans doute la plus commune des méthodologies agiles et la plus marquante, car elle organise l’équipe et la production toute entière autour de « sprints ».
Il y a plusieurs rôles:
- Le product owner est le personne responsable de ce qui est construit. C’est lui qui recueille le besoin du client et le transmet à l’équipe. Il priorise les éléments du carnet de produit (Product Backlog) en fonction de cette valeur et de la stratégie commerciale. L’objectif de son rôle est de faire la passerelle entre les clients et l’équipe.
- Le Scrum Master est le gardien du processus Scrum Il s’assure que l’équipe respecte les valeurs, les pratiques et les règles de Scrum. Il aide également à résoudre les obstacles que rencontre l’équipe et facilite les interactions entre les membres de l’équipe et les parties prenantes externes.
- L’équipe: les personnes qui vont concevoir le produit (ex: les développeurs).
Le travail est organisé en plusieurs étapes:
- Tout d’abord, le product owner définit le « product backlog » avec le client. Il s’agit de l’ensemble des fonctionnalités, corrections, améliorations et autres tâches à réaliser pour concevoir le produit.
- Le product owner et l’équipe discutent du backlog et le raffinent. C’est le « backlog refinement« .
- Ensuite, on entre dans des boucles de sprint.
- On sélectionne des tâches du « product backlog » à réaliser pendant le prochain sprint (période qui dure généralement 2 à 4 semaines), formant ainsi le « sprint backlog ». C’est le « sprint planning« . Un des rituels les plus courants est le « poker planning« .
- Ensuite, c’est le sprint à proprement parler: l’équipe réalise les tâches prévues.
- À la fin du Sprint, l’équipe Scrum et les parties prenantes se réunissent pour inspecter ce qui a été accompli pendant le Sprint et voir si les objectifs ont été atteints. C’est la « Sprint Review« .
- L’équipe Scrum se réunit pour discuter de ce qui s’est bien passé, de ce qui pourrait être amélioré, et de comment mettre en œuvre les améliorations lors du prochain Sprint. C’est la « Sprint Retrospective« .
- On réitère et planifie le sprint suivant jusqu’à épuisement des tâches du product backlog.
Il y a également des rituels, comme le daily standup (une réunion journalière debout pour parler de ce qu’on va faire dans la journée).
Le Kanban
Le tableau kanban est une méthode de visualisation de projet. Chaque tâche est représentée par une carte et classée en catégories « à faire« , « en cours » et « réalisé« .
L’Extreme Programming
L’eXtreme Programming (XP) est une méthodologie de développement logiciel agile axée sur l’excellence technique et la livraison continue de logiciels de haute qualité. Elle insiste sur la collaboration étroite entre tous les participants du projet. Parmi ses pratiques clés, on trouve :
- Développement piloté par les tests (TDD) : Écrire des tests avant le code pour s’assurer que le système fonctionne comme attendu.
- Intégration continue : Fusionner et tester fréquemment le code de tous les développeurs pour détecter les erreurs tôt.
- Revue de code par les pairs (Pair Programming) : Deux développeurs travaillent ensemble sur la même tâche pour améliorer la qualité du code.
- Refactoring : Réorganiser le code sans changer son comportement pour améliorer sa structure et sa lisibilité.
- Client sur site : Collaboration étroite avec le client pour comprendre ses besoins et ajuster le produit en conséquence.
Ressources:
- Le manifeste agile: https://agilemanifesto.org/
Les signataires du manifeste agile :
- Kent Beck
- Mike Beedle
- Arie van Bennekum
- Alistair Cockburn
- Ward Cunningham
- Martin Fowler
- James Grenning
- Jim Highsmith
- Andrew Hunt
- Ron Jeffries
- Jon Kern
- Brian Marick
- Robert C. Martin
- Steve Mellor
- Ken Schwaber
- Jeff Sutherland
- Dave Thomas