L’agilité et les méthodes agiles prennent de plus en plus de place dans les entreprises et sur les réseaux sociaux.
Je ne vous apprends rien. Depuis la création du manifeste agile en 2001, l’agilité gagne en popularité chaque année.
Dans cet article, on va s’intéresser aux principaux avantages de choisir une méthode agile pour gérer ses projets, ainsi qu’aux inconvénients de l’agilité.
Quels sont les principaux avantages de l’agilité ?
L’agilité existe depuis 2001 et a le vent en poupe. A raison d’ailleurs. Voici selon moi les 17 plus grands avantages à utiliser les méthodes agiles pour gérer ses projets.
- L’adaptation constante du plan d’action.
- L’intégration des modifications et évolutions au fil de l’eau.
- Une communication renforcée entre les parties prenantes.
- Une collaboration renforcée au sein de l’équipe projet.
- L’auto-organisation de l’équipe.
- La priorisation du travail par la valeur.
- Les livraisons rapides et successives.
- Des boucles de feedback plus rapides.
- Des prises de décision accélérées.
- L’amélioration de la qualité et de la satisfaction client
- Le focus sur l’amélioration continue.
- Le principe de transparence avec l’ensemble des acteurs projet.
- L’agilité réduit le time-to-market.
- Le principe du « failing fast », qui met rapidement en avant les méthodes de travail incorrectes et inadaptées.
- L’agilité crée de la prédictibilité et de la prévisibilité.
- Les risques sont diminués.
- On peut arrêter le projet à tout moment.
1 ) L’adaptation constante du plan d’action
La réponse au changement, de préférence au respect d’un plan.
4ème valeur agile du Manifeste Agile
L’ouverture aux changements est au cœur même de l’agilité.
Contrairement aux méthodologies traditionnelles où l’on cherche à limiter le plus possible les changements en cours de projet, afin de respecter le plan d’action préalablement défini, on va au contraire chercher à provoquer le changement dans les méthodes agiles.
D’ailleurs, le second principe du manifeste agile est :
Accueillez chaleureusement les changements de besoins, même tardifs dans le développement. Les processus agiles tirent parti du changement pour renforcer l’avantage concurrentiel du client.
2ème principe agile du Manifeste Agile
Lorsqu’on pratique les méthodes agiles, on accueille donc positivement le changement, et on adapte le plan d’action au quotidien. C’est d’ailleurs précisément à ça que servent les réunions quotidiennes de 15 minutes (les Daily Scrum).
2 ) Le périmètre évolutif permettant d’intégrer les besoins client au fil de l’eau
La gestion des évolutions et des demandes de changements est une vraie plaie en gestion de projet classique, à la fois pour le chef de projet qui se tape de la paperasse, et à la fois pour le client qui se sent frustré et risque de se retrouver avec un produit qui ne correspond pas à ce qu’il veut.
L’agilité permet justement de pallier à ce problème.
Si un besoin évolue ou que le client souhaite ajouter le développement d’une fonctionnalité qui n’était pas prévue initialement, ce n’est pas un souci. L’équipe agile évalue alors le temps de travail associé, et la valeur que cette nouvelle demande peut apporter au client, et priorise ce travail en fonction pour les prochains sprints.
Cette organisation en cycle courts de 1 à 4 semaines permet d’être réactif face aux nouvelles demandes du client.
3 ) Une communication renforcée entre les parties prenantes
Pour qu’un projet agile soit une réussite, il est indispensable que l’équipe projet dialogue avec les parties prenantes, afin de creuser le besoin et de mieux comprendre quelles sont les attentes des utilisateurs-clés et des clients.
Les rendez-vous réguliers tels que la revue de sprint permettent également à l’ensemble des acteurs de se retrouver et de dialoguer.
Grâce aux livraisons successives de bouts de produit, l’équipe peut obtenir du feedback sans attendre, et adapter son plan d’action en fonction. Et le client peut exprimer ses ressentis et donner des éléments de contexte pour son besoin.
4 ) Une collaboration renforcée au sein de l’équipe projet
Un projet, c’est avant tout un travail d’équipe, et encore plus en agilité.
Là où dans le management de projet traditionnel, chaque tâche est affectée à une personne, les tâches (on parle de user stories) des méthodes agiles sont affectées à l’équipe.
La principale différence est que l’expert technique en gestion de projet classique possède une expertise dans un domaine bien particulier et réalise son action sans se soucier de ce qu’il peut se produire à côté.
Alors qu’une équipe agile est pluri-disciplinaire, ce qui veut dire qu’elle est composée de toutes les compétences nécessaires pour mener à bien le projet. Pour développer une fonctionnalité, cela implique donc de faire appel à des développeurs, à un testeur qualité, etc.
Comme toutes ces personnes font partie de l’équipe agile, elles doivent donc se synchroniser entre elles pour réaliser le travail.
5 ) L’auto-organisation de l’équipe
Le manager de l’équipe n’a pas son mot à dire sur la manière dont l’équipe souhaite aborder son projet. C’est le principe d’auto-organisation de l’équipe, qui lui permet de décider de la meilleure approche possible pour réaliser les actions concernées.
Bien sûr, il existe des limites, et celles-ci doivent être clairement définies au niveau de l’organisation. Mais au sein de ces limites, seule l’équipe agile peut décider de comment s’organiser, comment se structurer et comment travailler.
Les collaborateurs se sentent ainsi plus impliqués et plus motivés, et voit leur performance globale grimper en flèche.
6 ) La priorisation du travail par la valeur
Prioriser le travail par la valeur business permet de s’assurer que le travail en cours et à venir est celui qui apportera le plus de bénéfices aux utilisateurs du produit et au client. Les tâches inutiles ou qui n’apportent aucune valeur sont ainsi éliminées.
L’équipe agile se concentre ainsi sur la création d’un produit de qualité à haute valeur ajoutée, et répond ainsi de sprint en sprint aux besoins les plus importants du client.
7 ) Les livraisons rapides et successives
Le principe du développement en cycles courts itératifs et incrémentaux, appelés sprints, est au cœur des méthodes agiles.
Cette nouvelle manière de travailler permet d’accélérer les livraisons des features et des mises à jour d’un produit.
Par exemple, plutôt que d’attendre 3 ans qu’un nouveau logiciel soit développé, le client peut mettre la main sur des versions intermédiaires, et commencer à travailler avec, même si toutes les fonctionnalités ne sont pas encore présentes.
Le travail incrémental permet également de proposer des versions successives, appelées incréments. Le périmètre de chaque incrément étant plus petit, il y a moins de chances de rencontrer des bugs.
De plus, l’équipe agile peut récupérer du feedback du client, afin d’améliorer le produit dans ses prochaines versions.
8 ) Des boucles de feedback plus rapides
Chaque sprint se clôture par une présentation aux utilisateurs-clés et au client d’un nouvel incrément fonctionnel et utilisable du produit.
C’est l’occasion d’obtenir un feedback à chaud sur ce produit, afin de savoir quelles améliorations apporter aux fonctionnalités livrées, mais également de savoir quelles sont les fonctionnalités à haute valeur ajoutée qu’il vous faut prioriser pour la suite du projet.
Pour le client, c’est l’assurance d’être compris et de faire évoluer les besoins en fonction de ce qui est le plus nécessaire.
9 ) Des prises de décision accélérées
Contrairement à la gestion de projet classique, où les prises de décision sont souvent réalisées au niveau du management hiérarchique, dans les méthodes agiles c’est l’équipe qui prend les décisions.
Concernant les décisions opérationnelles, ce n’est plus le chef de projet qui impose sa vision des choses (même si elle est erronée), mais c’est l’équipe de développement (les experts donc) qui ont la responsabilité de la décision.
On gagne ainsi beaucoup de temps : Ce sont ceux qui savent et qui font qui décident.
10 ) L’amélioration de la qualité et de la satisfaction client
Les livraisons rapides et successives du produit, l’implication des parties prenantes dans le projet, l’adaptation au changement et la priorisation par la valeur sont autant d’avantages qui participent directement à l’augmentation de la satisfaction client.
La mise en place de la definition of done, une liste de critères indiquant ce qui fait qu’une tâche est réellement considérée comme terminée, permet également à l’équipe projet agile de maintenir un niveau de qualité constant dans son travail.
11 ) Le focus sur l’amélioration continue
A la fin de chaque sprint, l’équipe se réunit pour analyser le travail produit et ses méthodes de travail. Elle repart avec plusieurs axes d’amélioration identifiés, qui vont permettre à l’équipe de gagner en efficacité et en performance.
La répétition de cette réunion appelée rétrospective à la fin de chaque sprint permet la mise en place de l’amélioration continue, qui est le pilier d’une bonne équipe projet.
12 ) Le principe de transparence avec l’ensemble des parties prenantes
Trop souvent en gestion de projet classique, la méthodologie de pilotage du projet et le travail en cours sont comme des boîtes noires pour le client. D’ailleurs, je râle souvent après mes partenaires et fournisseurs sur des projets, car je manque de visibilité.
Ils ne communiquent pas assez, ils en partagent pas assez les informations. Et c’est cette situation qui est à l’origine de nombreuses tensions et incompréhensions.
L’agilité permet justement de répondre à cela, en proposant plus de transparence.
- La transparence sur le travail en cours.
N’importe qui peut consulter le tableau de bord de l’équipe, afin de voir où elle en est dans le travail du sprint en cours. On y retrouve souvent la liste des fonctionnalités dans le sprint backlog, les graphes d’avancement tels que le burndown chart, etc… - La transparence sur le travail accompli.
La définition de fini est un document qui liste les critères d’achèvement d’un travail, et qui est consultable par toutes les parties prenantes. La review de fin de sprint est également un bon moyen de créer de la transparence entre l’équipe et le client. - La transparence sur les difficultés rencontrées.
Enfin, lorsque l’équipe rencontre des problèmes, elle ne se recroqueville pas sur elle-même. Au contraire, elle n’hésite pas à expliquer au client les difficultés rencontrées, afin de trouver une solution commune.
13 ) L’agilité réduit le time to market
Accélérer la mise à disposition de nouveaux produits sur leur marché est vital pour une entreprise, tout comme s’adapter aux évolutions d’un marché et des attentes des clients.
Tout ce que l’on met en place dans le cadre des méthodes agiles a été pensé en ce sens : réduire le time-to-market des produits, et permettre à ‘léquipe projet et au client d’avoir une meilleure réactivité.
14 ) Cela met rapidement en avant les méthodes de travail incorrectes
Dans les méthodes agiles, on retrouve le principe du « failing fast ». Cela permet ainsi de rapidement s’en rendre compte lorsqu’on utilise une méthode de travail incorrecte.
Je m’explique.
Quand on démarre un projet, les inconnues sont élevées, tout comme l’incertitude. Pour le premier sprint, on sélectionne donc les fonctionnalités à développer sur la base d’hypothèses vraisemblables que l’on a fait (par exemple ce qu’on a compris des besoins du client).
Mais on n’a pas envie d’attendre 1 an et demi pour se rendre compte qu’on a fait fausse route.
En limitant la durée des sprints à 4 semaines au maximum, on respecte ainsi le principe du « failing fast ».
- Soit mon hypothèse est vérifiée, et j’ai livré un incrément de produit de valeur, tout en avançant dans l’atteinte de mon objectif produit.
- Soit mon hypothèse est invalide, et j’ai appris quelque chose qui va me permettre d’aller plus vite dans la bonne direction. En plus de ça, tout le travail n’est pas à jeter : j’ai quand même avancé dans l’atteinte de l’objectif, et en plus j’ai obtenu un précieux feedback de la part de mon client.
15 ) L’agilité crée de la prédictibilité et de la prévisibilité
En utilisant les méthodes agiles, on bénéficie d’une visibilité accrue. En effet, l’agilité amène de la prévisibilité et de la prédictibilité :
- La prévisibilité.
Tous les sprints ont la même durée. Tous les rituels (les réunions) ont lieu le même jour à la même heure au même endroit. Le cadre de travail n’évolue pas. Tout cela contribue à créer de la prévisibilité, qui est synonyme de stabilité pour l’équipe, et de confiance pour le client. - La prédictibilité.
Le client sait qu’à la fin de chaque sprint, l’équipe lui livrera un nouvel incrément à forte valeur ajoutée, fonctionnel et immédiatement utilisable. Au fur et à mesure des sprints, il peut également faire des prévisions pour la roadmap du produit.
16 ) Les risques sont diminués
Plus on vise gros et lointain, plus on a de chances de se planter.
C’est ce qu’on constate depuis des décennies sur de gros projets, et ça n’a toujours pas changé aujourd’hui. C’est de ce constat qu’est née l’agilité.
En découpant le travail en petits blocs, et en limitant volontairement la durée d’un cycle de développement à 4 semaines, On réduit l’incertitude de X mois ou années à 4 petites semaines. Et on diminue d’autant les risques projet.
Prenons le cas du développement d’une application, en gestion de projet traditionnelle, et en agile.
- Gestion de projet traditionnelle.
Le développement est lancé et va durer 2 ans. L’équipe travaille d’arrache-pied, et rencontre de nombreuses difficultés qui n’ont pas pu être anticipée avant. Le client ne met la main sur le produit qu’au bout de 2 ans, pour se rendre compte que ça ne correspond pas à ce qu’il a demandé. Le taux d’échec est élevé, d’autant plus que l’horizon de fin de projet est lointain. - Méthode agile.
L’équipe prend toujours 2 ans pour développer le produit, mais tous les mois (au plus tard) elle rencontre le client pour faire un point sur le travail accompli, faire des démonstrations, et collecter du feedback. Le client n’a pas besoin d’attendre 2 ans pour commencer à utiliser le produit, mais surtout au bout des 24 mois, il aura un logiciel fonctionnel et qui répond parfaitement à ses besoins (puisque le travail a été priorisé de sprint en sprint en fonction de ses priorités).
Grâce à la collaboration entre l’équipe et les parties prenantes et les cycles de développement courts, les risques d’échec du projet ont drastiquement diminué.
17 ) On peut arrêter le projet à tout moment
Enfin, le client peut décider à tout moment d’arrêter le projet, lorsqu’il juge que l’incrément produit actuel répond à ses besoins et qu’il est fonctionnel et utilisable.
Le client gagne ainsi du temps et du budget, et est on ne peut plus satisfait.
Faut-il utiliser les méthodes agiles plutôt que les méthodologies de gestion de projet traditionnelles ?
L’agilité est un concept très intéressant en gestion de projet. Je dirais même qu’il a révolutionné le game, notamment dans le monde de l’informatique et plus spécifiquement du développement logiciel.
Mais l’agilité n’est pas une « méthode miracle », qui remplace avec brio toutes les autres méthodologies de gestion de projet traditionnelles et historiques.
Il y a cependant des situations dans lesquelles les méthodes agiles sont les plus adaptées :
- Lorsque vous développez un produit.
Le mode produit permet de développer un produit physique ou digital, et découle directement des méthodologies agiles. Le principe même de recherche et développement de créer des prototypes successifs ressemble fortement à l’agilité et aux sprints. - Lorsque le contexte du projet est complexe ou incertain.
Un contexte projet complexe et incertain, c’est un projet qui est sujet à de fortes modifications de périmètre et de priorité. L’agilité permet de s’adapter à ces changements au fil des sprints, sans mettre en péril le projet. - Lorsque le client ne sait pas précisément ce qu’il souhaite.
Votre client a une vision long-terme d’un produit, mais qui reste vague ? Dans ce cas, adoptez une méthode agile, afin de lui livrer des versions successives du produit. Cela lui permettra de tester au fur et à mesure, et d’affiner sa compréhension du produit et les fonctionnalités à forte valeur ajoutée qu’il faut intégrer. - Lorsque les besoins émergent au fil du temps.
C’est impossible de mener un projet de manière séquentielle si on ne sait pas prédire quelle sera la prochaine étape. Si les besoins arrivent au fil de l’eau ou que votre client change régulièrement d’avis, l’agilité est plus adaptée. - Dans le domaine du développement logiciel.
Si vous êtes dans ce cas, il n’y a même pas de questions à se poser : les méthodes agiles ont été développées au départ pour cela. Abandonnez le classique Cycle en V et le Waterfall, et utilisez sans attendre une méthode agile parmi celles décrites ci-dessous.
Quels sont les inconvénients des méthodologies agiles ?
Les méthodes agiles comportent toutefois plusieurs inconvénients qui peuvent freiner leur développement en entreprise :
- Les méthodes agiles ne sont ni prescriptives ni normatives.
Que ce soit le manifeste agile ou les guides Scrum, Nexus, etc, tous ces documents ont un point commun : ils posent un cadre de travail et laisse le soin à l’équipe projet de trouver sa manière de travailler, selon le principe d’auto-organisation de l’équipe. Les collaborateurs qui pratiquent l’agilité doivent donc déjà avoir l’habitude de travailler en autonomie, d’exercer leur responsabilité et de prendre des initiatives. - L’agilité demande d’avoir une maturité de l’équipe sur la pratique du management de projet.
Étant donné que les méthodes agiles sont plus permissives et moins prédictives que les méthodologies de gestion de projet traditionnelles, les membres de l’équipe projet doivent tous avoir une solide expérience dans le travail en mode projet. Sans cela, il y a des risques que les pratiques agiles se transforment rapidement en « mode bordel ». - L’équipe projet doit être affectée à temps plein au projet.
Contrairement aux méthodes prédictives de management de projet où l’on peut faire appel à des experts ponctuellement, les membres de l’équipe projet dans les méthodes agiles travaillent tous à 100% sur le projet. En effet, cela leur permet d’être focus et performant dans leur travail, afin d’apporter la meilleure solution possible aux besoins des clients. - L’agilité implique une forte capacité d’adaptation et de la flexibilité.
Tout le monde n’a pas l’habitude de travailler ainsi, et certaines personnes préfèrent un cadre projet plus rassurant, que l’on peut avoir avec les méthodes classiques, où tout le projet, ses principales étapes et le travail à faire sont définis à l’avance. - Une transformation agile ne peut se faire que si la culture d’entreprise évolue.
Adopter les méthodes agiles rime souvent avec une réorganisation interne de l’entreprise et un changement de culture des employés. Il faut désapprendre ce que l’on a l’habitude de faire depuis des années, apprendre à s’ouvrir aux changements, travailler en cycles courts, favoriser la communication et la collaboration au sein de l’équipe projet, … - C’est plus compliqué pour le management d’avoir une vision sur la progression du projet.
Les managers hiérarchiques qui sont habitués au rapport de 15 pages sur la progression du projet sont perdus et ont du mal à visualiser où on en est exactement dans le projet et quand celui-ci doit se terminer. Leur rôle est totalement réinventé, et c’est pour cela que je recommande à tout manager de se former au management agile et au management 3.0 lors d’une transformation agile. - Une minimisation de la documentation.
La seconde valeur agile est « Des solutions opérationnelles, de préférence à une documentation exhaustive ». Si vous avez l’habitude de produire et consulter des documentations de 800 pages et +, cet aspect des méthodes agiles peut vos perturber. - Une mauvaise compréhension de ce qu’est la méthode agile.
Les collaborateurs, managers et directeurs ont chacun leur propre définition de l’agilité, terme utilisé à toutes les sauces en entreprise. Ce qui peut amener à une mauvaise compréhension du travail en mode agile. On se retrouve ainsi avec des équipes qui font de l’agilité sauce méthodes prédictives, en cumulant les inconvénients de chaque approche, et qui en revienne en disant que « l’agilité c’est nul et ça marche pas ». C’est ce qu’on appelle le faux agile, ou encore le Scrumbutt. - Une complexité de gestion accrue.
L’auto-organisation de l’équipe agile, la priorisation par la valeur, et le focus sur la collaboration, la communication et la transparence demande du travail et des efforts quotidiens à l’ensemble des parties prenantes. Bien gérer un projet en mode agile est plus difficile que de piloter un projet avec des méthodes classiques. Mais c’est aussi ce qui permet d’obtenir un résultat de haute qualité et des clients satisfaits. - La difficulté d’implémentation de l’agilité sur les projets à grande échelle.
Imaginez un projet agile où vous devez faire travailler ensemble 500 développeurs, alors que les équipes sont limitées en taille (moins de 10). Cela implique un effort de synchronisation colossal. C’est principalement à cette problématique que réponde les frameworks d’agilité à l’échelle, pour la déployer au sein d’une BU (Business Unit) ou carrément d’une entreprise, avec de multiples équipes travaillant sur un même produit.
Quelles sont les différentes méthodologies agiles ?
Parmi les dizaines de méthodes agiles existantes, les framework les plus utilisés en entreprise sont les suivants :
- Scrum.
Le framework Scrum est le framework agile le plus populaire. Scrum est basé sur lalivraison d’incréments de produit à la fin de chaque sprint (d’une durée de 4 semaines maximum), sur l’auto-organisation de l’équipe, et l’amélioration continue. - Kanban.
Kanban est un framework visuel axé sur les flux de travail. Il est particulièrement adapté à l’industrie, à la gestion de tickets, ainsi qu’à tout travail s’incluant dans un processus particulier. Il se compose de tableaux et de post-its (d’où le surnom « la méthode des post-its »). - Extreme Programming.
Extreme Programming, XP pour les intimes, est un framework agile de développement logiciel, qui fait la part belle au travail d’équipe et à la communication. Il met en avant des bonnes pratiques de développement telles que l’intégration continue, la programmation en binôme, les tests et versions fréquentes, etc. - Lean.
Le lean management est un ensemble de principes et de pratiques inspirées du Lean manufacturing, lui même inspiré du système de production TPS mis en place chez Toyota. Ce framework priorise la création de valeurs pour les clients et l’amélioration continue, tout en faisant la chasse au gaspillage et à l’inutile.