Agile vs. Scrum : comment s’y retrouver ?
Savez-vous vraiment ce que sont l’Agile et le Scrum ? Quelles sont leurs différences et leurs similitudes ? Si vous n’êtes pas sûrs, alors cet article est fait pour vous !
Vous n’êtes certainement pas la seule personne à confondre ces deux termes : nous avons remarqué dans de nombreux projets qu’ils étaient utilisés à mauvais escient, notamment par méconnaissance de la définition de chaque mot. Essayons de déconstruire ces termes et de comprendre d’où provient toute cette confusion.
RAPPEL DES DEFINITIONS
Contrairement à ce que vous pourriez lire sur de nombreux sites internet, Agile n’a rien d’une méthode. Une méthode est rigide et vous dit exactement comment réaliser un projet, tout comme une recette de cuisine[1]. A contrario, Agile est un ensemble de 4 principes, rédigés dans un manifeste[2], qui définissent sur quelles valeurs reposent une méthodologie projet.
Scrum, lui, est un cadre de développement (ou framework), issu d’un guide[3], qui définit les éléments essentiels à la bonne réalisation du projet sans donner d’étapes précises. Si on reprend notre exemple, Scrum nous fournit les différents ingrédients de notre recette sans nous expliquer comment les cuisiner[1]. L’Agile définit donc le « pourquoi » de notre projet, tandis que Scrum définit le « comment » (sans tomber dans le « par quelles étapes« )[4].
UNE CONFUSION PROBLEMATIQUE ?
Notre expérience en gestion de projet Scrum nous a montré que si certains chefs de projets confondent l’Agile et le Scrum, c’est parce qu’ils ne parviennent pas à définir et à distinguer ces termes[5]. En effet, les formations principalement orientées sur Scrum, parfois sans aborder l’Agile, favorisent le « raccourci » entre les deux termes et contribuent à voir Scrum comme le framework le plus déployé et réputé, donc le buzzword à employer absolument[5].
Nous avons aussi remarqué que certaines entreprises imposent à leurs équipes un fonctionnement Scrum, car promettant une gestion de projet flexible. Mais l’équipe se focalisera alors uniquement sur le « comment » du projet, sur le framework à utiliser. Elle embrassera la méthode de manière très rigide sans comprendre et appliquer intelligemment les principes Agiles[6]. L’Agile sera alors adopté superficiellement, sans en comprendre l’approche, les valeurs et principes, mais surtout sans en tirer les bénéfices souhaités.
De plus, si Scrum ne fonctionne pas pour une équipe, la confusion l’amènera probablement à bannir entièrement l’Agile, ce qui est problématique étant donné la diversité des frameworks Agiles existants. Certains sont probablement plus adaptés au fonctionnement de l’entreprise ou au projet que Scrum et pourraient être à privilégier (nous en détaillerons certains dans la dernière partie de cet article). Il est donc nécessaire de trouver des solutions afin d’éviter cette confusion nuisible à l’Agile et ses quatre principes.
DEUX SOLUTIONS POSSIBLES
La première réside dans une meilleure formation des membres d’un projet sur la différence entre Scrum et Agile, pour s’assurer que chaque terme est compris et que le projet prenne la bonne forme. Par exemple, une bonne pratique serait de rappeler en début de formation les définitions de chaque terme et de montrer au cours de l’apprentissage que Scrum est compatible avec les principes Agiles. Il s’agit notamment du rôle du Scrum Master ou du coach agile. Quoi qu’il en soit l’entreprise devra s’adapter afin d’en tirer des bénéfices, en adoptant un fonctionnement et une mentalité compatibles avec le Scrum : création d’une équipe Scrum complète, acceptation des principes Agiles…
Si la transformation du fonctionnement de l’entreprise et la formation des équipes ne suffisent pas, il existe une autre solution qui nécessite d’abandonner le Scrum, sans bannir l’Agile. En effet, il est possible de tester d’autres frameworks Agiles, qui, par leurs caractéristiques, pourraient être plus avantageux pour vos équipes. Nous allons en détailler deux qui ont retenu notre attention : l’eXtreme Programming[7] et le Dynamic Systems Development Method[7].
eXtreme Programming (XP)
XP est utilisé principalement dans des projets de développement de logiciels. Il s’inscrit dans les principes Agiles en favorisant un contact permanent entre les clients et l’équipe, une production simple en se focalisant sur les fonctionnalités à haute priorité et l’adaptation rapide aux changements en prônant le courage.
Sa plus grande force en comparaison avec le Scrum réside dans ce dernier point : le changement peut survenir n’importe quand, même au cours d’un sprint[7], tant que c’est la volonté du client et que ce changement est hautement prioritaire. On obtient donc des gains en temps et coût considérables grâce à une équipe très expérimentée, réactive et capable de réaliser des cycles de développements très courts.
XP introduit un certain nombre de pratiques, comme le pair programming[8], qui consiste à former des binômes de travail où l’un vérifie le code produit par l’autre, ou l’intégration continue[8] qui permet de livrer continuellement une solution améliorée par les derniers besoins du client. Ce framework pourrait convenir à votre équipe si elle est constituée de développeurs expérimentés, enclins au changement et favorables au contact permanent avec l’utilisateur final[9].
Si vous souhaitez connaître plus de détails sur l’eXtreme Programming, vous pouvez consulter l’article Wikipédia ou cet article d’Asana.
Dynamic Systems Development Method (DSDM)
Le DSDM est couramment utilisé lorsque les délais et ressources du projet sont fixes mais que les fonctionnalités de la solution finale sont variables (contrairement au Scrum qui fonctionne à fonctionnalités fixes). L’utilisateur final est intégré dans l’équipe, permettant de déployer 80% du système final en seulement 20% du temps, le reste n’étant qu’amélioration et perfectionnement de la solution[7].
Ce framework insiste sur la conformité de la solution avec les volontés de l’utilisateur final, en se focalisant sur une compréhension approfondie des besoins métiers et la réalisation de modifications possiblement réversibles[10]. Cela permet une livraison rapide de la solution logicielle sans compromettre sa qualité, étant définie conjointement avec le client.
DSDM se démarque des cadres de développement Agiles principaux car il autorise l’abandon de tâches peu prioritaires afin de respecter les contraintes de délais et de ressources[11]. Cela nécessite une certaine autonomie de l’équipe et une capacité à prendre des décisions difficiles rapidement, tout en conservant une communication claire avec l’utilisateur final.
Si vous souhaitez connaître plus de détails sur le Dynamic Systems Development Method, vous pouvez consulter l’article Wikipédia ou cet article de Four Week MBA.
ET CHEZ VIGGO ?
Les alternatives au Scrum sont aujourd’hui peu répandues en entreprise car elles imposent certaines contraintes de mise en œuvre, comme la nécessité d’avoir une équipe de développeurs expérimentés pour XP. Mais de nouvelles technologies de développement permettent de mettre en place plus facilement ces cadres.
Chez Viggo, nous avons testé une technologie qui accélère considérablement les développements et qui permet à des développeurs moins expérimentés de fournir du code qualitatif. Nous avons ainsi été amenés à développer une nouvelle approche agile qui reprend, entre autres, des principes du DSDM et de XP, comme le contact permanent avec le client, la forte compréhension des besoins métiers ou les cycles de développement courts. Cette méthodologie nous permet de produire un code qualitatif et performant, tout en récupérant les retours des utilisateurs directement dans la technologie utilisée.
Cette méthodologie a déjà été expérimentée avec succès chez certains de nos clients, n’hésitez donc pas à contacter nos experts afin qu’ils puissent vous partager nos retours d’expérience : Nicolas Declerck (nicolas.declerck@viggo-consulting.com), Maxime Guérand (maxime.guerand@viggo.fr) et Boris Guérinon (boris.guerinon@viggo.fr).
—
SOURCES
[1] The 9 Most Confusing Pairs of Scrum Terms Explained, Parabol (consulté le 30/06/2023)
[2] Manifeste pour le Développement Agile de Solutions, Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas (02/2001)
[3] Le Guide Scrum, Ken Schwaber & Jeff Sutherland (11/2020)
[4] Confusing Scrum with Agile? Here’s What You Need to Know, Nutcache (09/11/2017)
[5] Why the confusion around Agile in the software development community?, Salah Bugazia (11/08/2022)
[6] La fin de l’Agile ?, Sarra Messaï (21/02/2022)
[7] Agile Methodology, Virender Singh (04/09/2021)
[8] Extreme programming, Wikipédia (consulté le 09/08/2023)
[9] L’eXtreme Programming (XP) : le guide, Alicia Raeburn (28/12/2022)
[10] Dynamic systems development method, Wikipédia (consulté le 09/08/2023)
[11] Méthode De Développement De Systèmes Dynamiques, Gennaro Cuofano (02/06/2023)