Pour tout comprendre à l’agilité et à Scrum, il faut d’abord saisir l’articulation entre Agilité et Scrum. En 2001, lors d’un week-end, dix-sept experts du développement logiciel « agile » aux États-Unis vont définir les bases de ce que deviendra le Manifeste Agile. Ces experts définissent alors leur « commun dénominateur » et consacrent le terme « Agile » pour les référencer. A partir de L’Agile Manifesto, les experts posent douze principes. Ils s’incarnent dans la méthode Scrum qui est une méthode de gestion de projets. C’est la plus populaires des méthodes agiles. Elle fait suite à une série de méthodes et se positionne en rupture par rapport à ses aînées. Revenons d’abord sur les bases fondatrices du Manifesto d’où découlent les principes agiles pour appréhender ensuite Scrum.
A. Les propositions fondatrices de l’Agile Manifesto
Elles sont au nombre de quatre :
1. Les individus et leurs interactions plus que les processus et leurs outils
2. Du logiciel qui fonctionne plus qu’une documentation exhaustive
3. La collaboration avec les clients plus que la négociation contractuelle
4. L’adaptation au changement plus que le suivi d’un plan.
Bien que la fin de chacune de ces propositions ait de la valeur (« processus et outils », « documentation exhaustive », « négociation contractuelle », « suivi d’un plan »), ce n’est pas la préférence de l’Agile Manifesto.
B. Les 12 principes de l’Agile Manifesto
1. Satisfaction incrémentale : notre plus haute priorité est de satisfaire le client, en livrant rapidement et régulièrement des fonctionnalités à grande valeur ajoutée.
2. Acceptez le changement : accueillez positivement les changements de besoins, même tard dans le projet. L’Agilité exploite le changement pour donner un avantage compétitif au client.
3. Itérez : livrez fréquemment un logiciel opérationnel avec des cycles de quelques semaines à quelques mois, et une préférence pour les plus courts.
4. Collaboration quotidienne : les utilisateurs ou leurs représentants et les développeurs doivent travailler ensemble quotidiennement tout au long du projet.
5. Motivation et confiance : réalisez les projets avec des personnes motivées. Fournissez-leur l’environnement et le soutien dont elles ont besoin et faites-leur confiance pour atteindre les objectifs fixés.
6. Rythme durable : la méthode la plus simple et la plus efficace pour transmettre de l’information à l’équipe et à l’intérieur de celle-ci, est le dialogue en face à face. Scrum encourage donc fortement les interactions.
7. Mesure = logiciel fonctionnel : un logiciel opérationnel est la principale mesure d’avancement.
8. Echange et dialogue : l’Agilité encourage 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.
9. Excellence technique : une attention continue à l’excellence technique et à une bonne conception renforce l’Agilité.
10. Simplicité : la simplicité, c’est-à-dire l’art de minimiser la quantité de travail inutile, est essentielle.
11. Des équipes auto-organisées : les meilleures architectures, spécifications et conceptions émergent de membres auto-organisés.
12. Amélioration continue : à intervalles réguliers, l’équipe réfléchit aux moyens de devenir plus efficace, puis règle et modifie son comportement en conséquence.
C. Pourquoi a-t-on inventé de nouvelles méthodes Agiles ?
1. Parce que trop de projets informatiques n’atteignent pas leurs objectifs et dépassent leur budget
L’étude Standish Group Chaos montre qu’en 1994, il y a une très grande déperdition en termes de management de projet informatique, tant sur les délais et les budgets que sur les spécifications (64 % des fonctionnalités imaginées ne sont quasiment jamais utilisées).
2. Parce que les approches prédictives ne sont pas adaptées pour des projets d’innovation
Il y a globalement 3 types de projets :
– Les prévisibles, nous savons précisément quoi faire et de quelle manière.
– Les chaotiques, il y a des incertitudes sur le quoi et/ou le comment.
– Les anarchiques, nous n’avons pas vraiment d’idées sur la manière d’aborder le problème (quand celui-ci est clair), et encore moins sur le comment.
Les méthodes de gestion de projet classiques, par nature, adressent très bien les projets prévisibles et peuvent établir une planification stricte. Mais aujourd’hui, de nombreuses inconnues apparaissent dans le projet et surtout dans leur contexte (marché, utilisateurs, technologies…). Et la planification devient très compliquée à réaliser. C’est pourquoi les démarches prédictives ne peuvent plus suffire.
D. Scrum
La méthode Scrum préconise de constituer un « carnet produit » (product backlog) qui contient une liste macroscopique des fonctionnalités du produit (à partir de stories) ; sur cette base, l’équipe constitue un « carnet de sprint » (sprint backlog), détaillant et priorisant précisément les stories que les collaborateurs implémentent en un sprint (période continue de deux à quatre semaines).
Scrum intègre à la fois des composantes d’équipe, des composantes liées à une phase de Scrum, et des composantes qui interviennent en clôture d’une phase de Scrum.
1. L’équipe avec 3 rôles :
– le product owner gère le quoi et le pourquoi, il est le porteur de la vision
– la Dev Team gère le comment de façon autonome et auto-organisée
– le scrum master guide l’équipe et le product owner dans l’avancement du projet, il est le référent sur la méthode.
2. Le document de référence : une composante clé, le Product Backlog
– Le product backlog est un document clé qui incarne la vision du product owner. Ce dernier y décrit ce que l’équipe doit faire, à savoir toutes les fonctionnalités du logiciel. Les « users stories » permettent de décrire les fonctionnalités.
– Le product backlog peut changer en cours de projet. Il fournit une vision d’ensemble du projet mais cette vision est sommaire et peu détaillée. Cela évite de perdre beaucoup de temps avec des éléments qui ne seront peut-être plus pertinents le moment venu. De ce fait, l’équipe priorise les exigences du product backlog.
3. Le sprint : cinq composantes
– La méthode Scrum se déroule en cycles courts (de deux à quatre semaines) qui procèdent par itération. On appelle ces cycles sont des sprints. Lorsqu’un cycle démarre, l’équipe pose toutes les questions possibles au product owner afin de comprendre exactement ce qu’elle doit réaliser et ce que l’on attend d’elle.
– Au début de chaque sprint, l’équipe choisit de développer ce qui est prioritaire. Deux composantes sont d’abord en jeu : le sprint planning et le sprint backlog. Cette dernière composante recense tout ce qui doit être fait au cours du cycle.
– Durant le sprint planning, tous les éléments du sprint backlog sont découpés en tâches.
– Contrairement au product backlog, le sprint backlog ne peut pas être modifié en cours de sprint. Une fois le sprint backlog défini, le sprint proprement dit débute. Chaque unité de travail est inscrite sur un post-it qui sera positionné sur le tableau de bord Scrum ou Scrum board. Celui-ci est divisé en trois parties : à faire (to do), en cours (doing) et fait (done).
– Chaque matin se déroule un stand-up meeting, durant lequel chaque membre de l’équipe doit répondre à trois questions posées par le scrum master : « qu’as-tu fait hier pour faire avancer le projet ? », « que vas-tu faire aujourd’hui ? », et « existe-t-il des obstacles à la réalisation du sprint ? ».
– Le sprint se conclut sur un incrément de produit : il s’agit d’une sorte de Produit Minimum Viable. C’est une version incomplète mais opérationnelle, qui peut être remise au client et testée. Puis les membres de l’équipe repartent pour une prochaine itération.
4. Les étapes « post-sprint » : deux composantes
A la fin du sprint est organisée une revue de sprint. c’est la démonstration de l’incrément de produit. On va pouvoir alors obtenir des feedbacks permettant d’affiner la réalisation lors des prochains sprints.
Suite à la démonstration, l’équipe effectue la rétrospective : c’est une séance au cours de laquelle l’équipe identifie ce qui a « marché » et ce qui n’a pas « marché », tant sur le plan organisationnel que relationnel ; elle en déduit ce qui doit continuer à être fait de la même manière, et ce qui doit changer dans le prochain sprint.
En conclusion,
Les principaux apports de l’agilité et de Scrum reposent sur deux caractéristiques clés : une approche à la fois incrémentale, itérative et adaptative ; et l’intégration d’une vision forte qui rayonne tout au long du projet. Cette approche, lorsque qu’elle est associée à un écosystème de tests performants et portée par un product owner solide et inspirant, permet de livrer des produits particulièrement adaptés au public de manière extrêmement efficace. Cependant, la méthode s’appuie sur une unité de lieu et de temps pour une équipe constituée. Cela incite à réfléchir à l’adaptabilité et la mise en œuvre de ces méthodes agiles lorsque que les équipes de travail sont en mode multiprojets (dans l’alimentaire et de la cosmétique par exemple qui sont des secteurs en constant développement).