Le concept d’agilité est né dans les années 1990 dans le domaine de la gestion des projets IT comprenant du développement informatique. Il a été consacré en 2001 par la publication du « Manifeste agile » rédigé par 17 experts en développement logiciel. Que signifie concrètement le terme d’agilité ? Quelles en sont les principales pratiques agiles et comment sont-elles appliquées ?
Ce manifeste se fonde sur quatre valeurs fondamentales du projet IT :
De ces quatre fondamentaux découlent douze principes que les projets agiles se doivent de respecter, parmi lesquels : satisfaction du besoin client, accueil favorable des demandes de changement, livraison fréquente de version applicative qui fonctionne, simplicité ou encore responsabilisation des équipes de réalisation.
A la différence de la méthode classique en V, les pratiques agiles reposent sur le principe qu’il est contre-productif de planifier le projet en amont dans ses moindres détails. Les pratiques agiles ont pour objectif d’impliquer le client et de maximiser la réactivité des équipes de réalisation à ses demandes.
Comment ? En se fixant des objectifs à court terme. Une fois un objectif atteint, l’équipe passe au suivant et ainsi de suite. Le projet repose sur un cycle de développement par itérations laissant la place aux imprévus et aux changements. En analysant le cycle écoulé, il est possible d’ajuster la pratique pour optimiser la gestion du suivant, et ainsi jusqu’à l’objectif final.
On parle de méthodologie agile, mais il s’agit en réalité d’un groupe de processus et de pratiques de réalisation de projet. Il n’existe pas une méthode mais des pratiques agiles. Les plus fréquemment mises en œuvre dans les projets sont :
ou encore la pratique Scrum, la plus utilisée aujourd’hui.
Ces pratiques agiles peuvent parfois être combinées pour plus d’efficacité, c’est d’ailleurs souvent le cas de la méthode de gestion de projet XP combinée à la pratique Scrum.
D’après une enquête de l’Institut Scrum League, les principes de Scrum représentent à eux seuls 82 % des pratiques agiles.
La pratique Scrum est ce que l‘on appelle un « framework », un cadre de développement visant à faciliter la collaboration des équipes. Elle repose sur un découpage du besoin métier en itérations courtes de 2 à 4 semaines maximum, c’est ce que l’on appelle des « sprints ».
Chaque sprint commence avec la planification de celui-ci puis se termine par une démonstration du travail réalisé. A la fin de l’itération et avant la suivante, les équipes font une « rétrospective » du sprint écoulé pour en analyser les réussites et les axes d’amélioration.
L’équipe est constituée des rôles suivants : le Product Owner, l’équipe de réalisation et le Scrum Master.
Le Scrum Master, est « l’animateur » du projet en Scrum. Il n’a aucun pouvoir hiérarchique sur ses membres et intervient en « facilitateur ». Son rôle est également de protéger l’équipe des engagements irréalisables.
Il joue généralement un rôle au cours des « cérémonies Sprint » : il anime les daily (réunions quotidiennes de 15 minutes), aide à l’estimation et à la planification des sous-tâches (sprint planning), recueille les retours lors des démonstrations, note les points d'amélioration au cours des « rétrospectives ».
En résumé, le Scrum Master est responsable de la bonne marche de l’équipe.
Il s’agit d’une demande fonctionnelle écrite décrivant un cas d’usage. Elle décrit le besoin utilisateur dans un langage usuel destiné à être compris par tous les acteurs du projet. Toutes ces demandes suivent théoriquement la même règle de rédaction : En tant que [persona], je souhaite [besoin] afin de [but].
L’objectif est de définir un besoin utilisateur avec ses objectifs (son histoire) pour améliorer en continu l'expérience utilisateur. Leur rédaction lisible, claire et sans ambiguïté est primordiale pour une réalisation en accord avec les besoins réels.
Les users storys suivent ensuite le cycle suivant :
Le Product Owner porte la responsabilité de la production et du maintien à jour du product backlog (ou carnet de produit). Il identifie les priorités pour chaque sprint en collaboration avec le client et décide des orientations du projet.
Il a un rôle à jouer à chaque étape de l’itération : comprendre le besoin client et l’expliquer aux équipes de réalisation si elles ont besoin de précision, hiérarchiser le travail et s’assurer de l’avancement de celui-ci dans l’optique de la release (mise en production).
En résumé, ces principales missions consistent en la gestion : de la priorisation des user Story par la valeur apportée au client, la validation des user stories réalisées.
Travailler par itération demande une organisation particulière et notamment un management visuel agile complet. Il s’agit de gérer les sprints de manière transparente par le biais d’un ensemble d’outils visuels. L’idée première est de faire circuler l‘information.
Ces outils visuels permettent aux équipes de savoir ce qu’elles ont à faire et d’avoir une vision globale de l’avancement de chaque user story et tâches. Ils permettent également d’appréhender la charge de travail pesant sur les membres de l’équipe.
Le scrum board (tableau d’avancement) ou la méthode Kanban sont des méthodes de management visuel utilisés dans les projets agiles, mais il en existe des dizaines d’autres.
L’amélioration continue est une composante du Lean management qui prend toute sa cohérence dans les projets agiles. En effet, le lean comme l’agile sont considérées comme des organisations apprenantes.
Dans le cadre des pratiques Scrum, la « rétrospective » est une réunion au cours de laquelle le sprint écoulé est analysé pour trouver des axes d’amélioration. L’équipe apprend de son expérience et en tire des compétences supplémentaires pour les sprints suivants.
De plus, par la mise en place d’un management visuel, les obstacles sont rendus visibles, bien identifiés sur un tableau par exemple et associés à la user story bloquante. Ces pratiques offrent des pistes d’amélioration continue entre deux rétrospectives de sprint.
La philosophie de l’amélioration continue passe par l’acceptation du « Test and learn » qui suppose le droit à l’erreur. L’objectif est de rendre les équipes autonomes dans la résolution des problèmes.
L’agilité n’est pas un mot à la mode mais un ensemble de processus et d’outils très concrets pour mobiliser les équipes, favoriser la communication et aboutir ainsi à la mise en production d’un produit en adéquation avec le besoin exprimé par le client.