Commençons par définir ce qu'on entend par méthode agile : le concept d'agilité en entreprise est souvent associé à beaucoup de termes techniques et de noms complexes qui peuvent laisser penser qu'elle est compliquée à comprendre et encore plus à mettre en place. Pourtant, plus qu'une théorie, il s'agit d'une série de grands principes très concrets et pragmatiques visant à transformer la gestion de projets web.
Avant le milieu des années 1990's, le développement web est un secteur régi par les méthodes traditionnelles de gestion de projet : une première phase de planification pour créer un cahier des charges le plus exhaustif possible, puis un tunnel de développement pour proposer une version conforme au plan initial donné par le client. Le résultat : des sites souvent dysfonctionnels par manque d'adaptabilité face aux écarts entre la théorie et la réalité, et surtout par manque d'échanges et de communication entre les clients et les équipes de développeurs.
Face à ce manque d'efficacité et à la frustration qu'elle génère de part et d'autre, quelques principes agiles émergent alors dans certaines entreprises. Ainsi la fameuse méthode Scrum, méthode agile la plus utilisée aujourd'hui, est présentée dès 1995 lors d'une conférence par ses créateurs Ken Schwaber et Jeff Sutherland.
Finalement, ce n'est qu'en 2001 que paraît le Manifeste Agile, à l'initiative d'un groupe de 17 figures du secteur. Le Manifeste Agile énonce 4 principes et 12 sous-principes régissant cette nouvelle approche du développement, en opposition avec les pratiques dites traditionnelles :
“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 :
Autrement dit, même s’il y a de la valeur dans les éléments à droite, nous valorisons davantage les éléments à gauche."
C'est ainsi que né le concept d'agilité, on parle aujourd'hui par abus de langage de "la méthode agile" pour désigner les multiples méthodes répondant à ces principes : Scrum, Kanban, eXtreme Programming... de très nombreux termes qui peuvent créer de la confusion.
Pour y voir plus clair, revenons à la base ! Les valeurs de l'agilité sont finalement très simples : adaptabilité et empirisme, visibilité et communication entre les équipes.
Comme je le disais plus haut, la méthode classique de gestion de projet commence par un temps d'étude et de recherche afin de prévoir l'intégralité du projet dans les moindres détails techniques, et à le budgétiser au centime près. Cette phase peut prendre des mois, et le cahier des charges comprendra forcément des erreurs et des features qui s'avèrent inutiles pour l'utilisateur final.
Le premier principe de la méthode agile, c'est de commencer par définir une vision globale du projet. Les clients listent et priorisent leurs objectifs : fonctionnalités souhaitées, exigences techniques... et en discutent directement avec les équipes de développement pour obtenir une première estimation de temps et de budget.
Le projet peut ainsi démarrer très vite, avec en vue des premiers objectifs court-termes réalisables.
Chaque nouvelle étape du projet, appelée "Sprint" prévoit du temps dédié à la planification des prochains objectifs, ce qui permet d'affiner les estimations. Chez Padok, nous considérons qu'un Sprint dure 1 semaine. Contrairement à ce qu'on peut entendre sur la méthode agile, il ne s'agit donc pas de ne rien prévoir, mais au contraire de coller au maximum à la réalité et aux besoins du client en affinant la roadmap tout au long du projet.
La visibilité est un autre mot clé de l'agilité. Comme vu ci-dessus, en méthode agile, la planification n'est pas séparée du développement, autrement dit les équipes client et développement sont en perpétuels échanges. Les équipes agiles sont composées de toutes les parties prenantes : tous les membres participent à définir les objectifs du projet, et tous comprennent le sens de leur travail.
Pour donner du rythme, le plan d'action est découpé en tâches de plus en plus courtes et précises. Chaque semaine, les équipes définissent un objectif prioritaire : le Sprint Goal. Chaque jour, les développeurs fixent leurs objectifs de la journée. Des outils de suivis accessibles à tous sont généralement mis en place pour suivre l'avancée du projet.
Enfin, chaque sprint se conclut par une session d'échange appelée la Cérémonie, lors de laquelle tous les membres de l'équipe expriment leurs succès comme leurs frustrations afin de tirer ensemble des actions pour améliorer le travail de l'équipe.
L'agilité est majoritairement associée au développement web, pourtant elle peut être appliquée dans d'autres types d'entreprises. Chez Padok, notre cœur de métier est le DevOps. Notre objectif est la mise en place d'architectures stables et scalables pour nos clients. Cette partie "Ops" implique une grande partie de gestion d'incidents de production ou autres urgences opérationnelles qui semblent impossibles à planifier dans un sprint.
Pourtant, si nous avons choisi d'implémenter la méthode agile pour la gestion de nos projets avec nos clients, c'est bien parce qu'elle nous donne la flexibilité nécessaire pour établir nos priorités de manière quotidienne. D'autre part, dans notre métier parfois très technique, la motivation des équipes peut baisser pas manque de vision sur le "pourquoi" de leur travail, ce qui n'est pas le cas avec l'agilité.
Sur chaque projet, nous mettons en place des équipes mixtes adaptées aux besoins de notre client, composées de Site Reliabilty Engineers (SRE), d'un product owner et d'un coach agile, et parfois de développeurs. Nous respectons majoritairement les pratiques du Scrum avec des sprints d'une semaine ponctués chaque matin d'un daily, et clôturés par une cérémonie. Toutefois, nous adaptons nos outils et notre organisation à chaque projet : pour nous la méthodologie doit devenir un véritable moteur d'efficacité sur chaque projet.
Si la méthode agile peut faire peur au début, avec son vocabulaire à part et ses nombreux outils, son but principal est bien d'accélérer vos projets à toutes les phases :
Nous avons parlé précédemment de visibilité : dans une équipe agile, il n'y pas d'opposition entre les intérêts du client et ceux de l'équipe technique. L'idée n'est pas de cacher les problèmes pour faire bonne figure lors d'un rendu unilatéral, mais au contraire de lever ensemble et le plus vite possible toute difficulté rencontrée lors du projet.
C'est pour cela que la communication est quotidienne et que chaque membre de l'équipe est encouragé à challenger certains aspects de la collaboration pour la rendre toujours plus fluide et efficace.
Chez Padok, nous prenons les retours de nos clients lors de chaque Sprint afin de pouvoir nous améliorer.
Cela m'amène au dernier bénéfice de l'agilité : les problèmes ne sont pas vus comme des obstacles, mais comme des opportunités de s'améliorer. Cette phrase peut paraître un peu cliché, mais elle a une application très concrète. Lors d'un sprint, tous les membres de l'équipe sont responsables de repérer les difficultés rencontrées, d'en analyser les causes et d'en tirer des actions à mettre en place pour ne plus avoir à faire face à un problème identique au cours du projet.
Cet exercice de la résolution de problème est au cœur de la logique d'amélioration continue, et permet de gagner en qualité et en vitesse tout en faisant monter en compétence les équipes du projet.
L'agilité, c'est donc avant tout des principes simples : adaptabilité et empirisme, visibilité et communication entre les équipes. S'il est parfois complexe de se lancer, il ne faut pourtant pas perdre de vue les bénéfices que de telles méthodes peuvent avoir sur la qualité et la vitesse de votre delivery.
Les méthodologies et autres cadres de travail théorisés visant à les mettre en place en entreprises sont aujourd'hui très nombreux, ce qui paradoxalement rend d'autant plus complexe leur compréhension. Des erreurs d'application ont notamment conduit à de profondes remises en cause du modèle, y compris par ses propres créateurs, vingt ans après le Manifeste Agile.
Le débat a en tout cas poussé les théoriciens à se moderniser, donnant naissance à des mouvements comme le Modern Agile. L'agilité a donc encore un futur riche devant elle, et sera amenée à évoluer notamment avec la révolution du travail enclenchée par la crise du Covid-19.
Et vous, que pensez-vous de la méthode agile ? L'avez-vous appliquée dans votre entreprise ? N'hésitez pas à me faire des retours dans les commentaires ou par mail.