On ne peut pas parler de “solution”, de “IT” ou autre “transformation digitale” sans parler de gestion de projet et en particulier de méthodes Agiles. En effet, le projet est inhérent au domaine de l’informatique. Son pilotage vise donc à organiser et à coordonner les différentes étapes nécessaires à la réalisation d’un projet avec succès. Deux approches majeures se démarquent dans ce domaine : les méthodes Agiles et la gestion de projet que je qualifierai de classique (Waterfall, Cycle en V). Dans cet article, nous allons examiner et comparer ces deux approches afin de comprendre leurs différences fondamentales et leurs impacts sur les projets informatiques.
La Gestion de projet “classique” ou l’approche rouleau compresseur
De façon traditionnelle, et historique, les projets IT sont gérés sur le modèle “en cascade”. Cette approche, on l’a déjà vu, suit une approche linéaire et prédéfinie. La méthodologie projet consiste donc à organiser, exécuter et documenter les différentes phases du projet de manière séquentielle.
Cette approche nécessite donc une planification détaillée. La gestion de projet “classique” exige en effet une planification complète dès le début du projet. Toutes les étapes sont définies à l’avance, avec des dépendances claires entre elles. On ne peut démarrer l’étape N tant que l’étape N-1 n’est pas terminée. Cela donne (ou nécessite) une meilleure vision d’ensemble du projet (et le plus tôt possible!). Il faut donc disposer dès le départ d’une idée claire de l’objectif à atteindre à la fin du projet.
Dans la gestion de projet classique, le suivi et le contrôle sont essentiels pour s’assurer que le projet respecte les délais, les coûts et les spécifications prédéfinies. Les changements sont souvent difficiles à intégrer et peuvent entraîner des retards. Cela est dû justement à l’enchaînement successif des étapes du projet. Par contre, et notamment dans le Cycle en V, un effort important est accordé aux tests et à la formalisation des livrables. Cela fait partie du contrôle. A mon sens, cela relève aussi d’une vision presque “juridique” du projet: il s’agit de formaliser les transferts de responsabilité.
Les Méthodes Agiles ou l’approche cavalerie légère
A l’inverse, les méthodes Agiles, représentées par des frameworks tels que Scrum, Kanban ou XP (eXtreme Programming), sont basées sur des cycles de développement itératifs et incrémentaux. Elles mettent l’accent sur la flexibilité, l’adaptabilité et la collaboration. Dans un projet Agile, l’équipe de développement travaille en étroite collaboration avec le client, en impliquant ce dernier tout au long du processus de développement.
A mon sens, c’est une approche projet très efficace et intéressante mais dans des contextes qui respectent 3 conditions principales :
- il faut une équipe mature à tous les postes (aussi bien sur côté représentation du besoin que sur les aspects techniques). Il est difficile (voire impossible) d’initier un projet Agile avec une équipe de débutants
- l’approche est pertinente quand le besoin n’est pas encore clair (ex. création d’un nouveau produit ou service). A ce moment-là les itérations, et plus précisément les démonstrations et prototypages réguliers, permettent aux utilisateurs de faire mûrir leur besoin
- il faut relativement peu d’interactions avec l’extérieur. Pour avoir piloté plusieurs projets dans lesquels l’équipe devait livrer un développement qui devait s’intégrer avec d’autres, je sais qu’un niveau de complexité supplémentaire apparaît. Il faut en effet se synchroniser avec les autres et prendre en compte des besoins exprimés par d’autres acteurs. Même si des frameworks méthodologiques comme SAFe existent, ce n’est en général pas une tâche aisée.
Les avantages reconnus des méthodes Agiles
Le principal avantage de l’Agilité c’est la flexibilité. En effet, les méthodes Agiles permettent de s’adapter rapidement aux changements et aux évolutions du projet. Les exigences peuvent être modifiées en cours de route et les itérations courtes permettent d’obtenir rapidement des retours d’expérience. C’est pour celà que j’évoquais le cas d’un utilisateur qui mûrit son besoin en cours de route. Attention… ça ne veut pas dire qu’on fait tout et n’importe quoi tout au long du projet !
De plus, la méthode incite les équipes à s’auto-organiser et à gagner en autonomie. L’équipe projet travaille en étroite collaboration avec le “client” (c’est-à-dire l’utilisateur du produit ou service). Cela favorise la communication et la transparence, ce qui conduit à une meilleure compréhension des besoins et des attentes du client. In fine, le livrable produit par le projet est réputé de meilleure qualité et mieux répondre aux attentes. Je vois un corollaire à cela, c’est que, ayant participé tout au long du projet, l’utilisateur s’approprie déjà la solution en cours de projet. La gestion du changement est facilitée par rapport à certaines situations que j’ai pu connaître dans lesquelles, à la fin du projet, il reste encore à “vendre” le livrable aux utilisateurs!!
Enfin, dans la mesure où les projets Agiles se basent sur des cycles de développement courts (les itérations). L’idée est de démarrer avec les fonctionnalités “de base” (le Minimum Viable Product ou MVP) et d’ajouter progressivement des fonctionnalités. Cette approche a deux avantages. Avant tout elle permet de livrer rapidement de la valeur aux utilisateurs (en livrant en production les premières fonctionnalités) mais aussi de collecter des retours et si besoin “d’ajuster le tir” sans attendre la fin du projet.
Comparons les deux approches…
Maintenant que nous avons identifié les principales caractéristiques des méthodes Agiles et de la gestion de projet classique, mettons les face à face!
Voici quelques points de comparaison importants :
Flexibilité vs Prévisibilité : Les méthodes Agiles offrent une plus grande flexibilité en permettant d’adapter le projet en cours de route, tandis que la gestion de projet classique offre une meilleure prévisibilité en définissant clairement les étapes à suivre. Cela ne veut pas dire que l’agile part à l’aventure sans se soucier du point d’arrivée mais que par définition, les méthodes agiles laissent une part d’ajustement.
Collaboration vs Documentation : Les méthodes Agiles favorisent la collaboration et la communication constante entre les membres de l’équipe. À l’inverse, les approches plus traditionnelles mettent l’accent sur la documentation et les rapports formels.
Itératif vs Séquentiel : Les méthodes Agiles suivent une approche itérative, avec des cycles de développement courts. Cela tend à réduire les effets tunnels et à donner plus de visibilité que le waterfall par exemple, qui suit une approche plus séquentielle.
Adaptation vs Contrôle : Les méthodes Agiles permettent une adaptation continue aux changements, tandis que la gestion de projet classique se concentre sur le contrôle et la gestion des risques.
Les méthodes Agiles et la gestion de projet classique offrent des approches différentes pour gérer des projets informatiques. Les méthodes Agiles offrent une plus grande flexibilité, une meilleure collaboration et une livraison incrémentale. Les méthodes plus classiques de gestion de projet offre une planification plus détaillée et un meilleur contrôle des projets.
Le choix entre les deux approches dépend des caractéristiques du projet, des besoins du client et des préférences de l’équipe projet. Mais il ne faut pas non plus oublier l’aspect culturel et organisationnel de l’environnement dans lequel se déroule le projet. C’est la raison pour laquelle quelle que soit la méthodologie initiale il faut bien souvent composer!