La méthode Agile
Si vous arrivez sur ce blog, je devine que vous êtes déjà familier avec l’agilité et la méthode agile ; cependant, je vais proposer aux autres qui auront peut-être l’occasion de passer par ici grâce à Linkedin, Twitter et autres…
La méthode Agile va apporter un changement radical dans votre entreprise et aura des résultats très positifs sur l’ensemble de vos processus. Voici en quelques mots ce concept “Agile”.
D’ailleurs, vous pouvez regarder notre vidéo qui parle de la méthode agile :
Regardez notre chaîne Youtube.
L’agilité est une philosophie et une culture
L’agilité est plus une philosophie qu’une méthode en soi. Devenir Agile, c’est adhérer à cette philosophie de fonctionnement. Pour devenir Agile, il faut comprendre cette nouvelle culture souvent difficile à assimiler et à accepter pour les entreprises
Itérative, Incrémentale et Adaptative
Trois mots essentiels de l’agilité où on va fonctionner par itérations relativement courtes (face à d’autres méthodes) qui va d’ailleurs amener à de l’incrémental sur les rendus.
Ces courtes itérations ont pour but de vous permettre de vous adapter rapidement à un besoin de changement.
L’histoire de l’agilité
Il est intéressant de voir les étapes de l’agilité dans le monde de l’entreprise. Les concepts d’agilité sont bien plus vieux que nous nous l’imaginons car il faut remonter aux années 30 où Walter Shewhart et William Edwards Deming ont réalisé des travaux sur le cycle de production itératif et incrémental.
Vous le connaissez probablement plus sous le nom de PDCA ou Roue de Deming.
Article : La roue de Deming – PDCA (Plan-Do-Check-Act)
L’informatique l’adopte
Si la méthode agile est devenue le véritable moteur d’un grand nombre d’entreprises jeunes, il faut remonter à 1950 où le programme Mercury de Motorola intégrait des concepts proches de ce que nous appelons aujourd’hui l’Extreme Programming.
Les premières méthodes de gestions de projets
De nombreux travaux dans les années 70 de plusieurs personnes ont finit par donner naissance à la méthode agile. Ceci n’est pas le travail d’un seul homme.
On considère que la méthode EVO publiée en 1976 est la première méthode agile existante. Bien qu’elle n’avait pas cette nomination car le terme de « méthode agile » n’existait pas encore, elle en avait tous les principes.
Les méthodes JRP et JAD initiées par Dan Gielan, formalisées par Chuck Morris d’IBM en 1984 ont été diffusées en 1989 dans un livre et ont contribué à l’agilité d’aujourd’hui.
1986
Barry Boehm publie des travaux sur le modèle en spirale (développement incrémental).
Hirotaka Takeuchi et Ikujiro Nonaka publient « The new new product developpement game » un modèle de développement de produits industriels basé sur l’engagement simultané des diverses disciplines concernées (ingénierie concourante).
1991
James Martin a une vision de l’évolution continue en informatique et décide de proposer une méthode de développement rapide avec une structure itérative et adaptative nommée RAD. Peu utilisée à ce jour, elle est considérée comme une méthode agile.
Mais 1991 est aussi l’année de la naissance du terme « agile » qui était plus dans le concept de l’entreprise agile. Je ne vous en dit pas plus, n’hésitez pas à voir l’article ci-dessous très intéressant qui vous dévoilera l’origine du mot « agile ».
Article : L’origine et les bases de l’agile bien avant le manifeste Agile
1994
Le français Jean-Pierre Vickoff propose le processus RAD2 qui fait évoluer la méthodologie et Jennifer Stapleton en fait de même avec DSDM.
2001
17 spécialistes du développement de logiciels se réunissent pour créer ensemble le manifeste agile considéré comme la définition canonique de valeurs de l’agilité et de ses principes sous-jacents.
- Ward Cunningham l’inventeur du Wiki.
- Kent Beck créateur de l’extreme programming et co-créateur de JUnit.
- Ken Schwaber et Jeff Sutherland créateurs et promoteurs de Scrum
- Jim Highsmith prônant l’ASD
- Alistair Cockburn prônant la méthode Crystal clear
- Martin Fowler, Dave Thomas et Arie van Bennekum pour DSDM.
Depuis 2001
De nombreuses méthodes agile sont devenues populaires et deviennent de plus en plus populaires chaque année comme Scrum, XP, Kanban…
Les fondements de l’agilité
La méthode agile prônent 4 valeurs essentielles qui découlent du manifeste agile. Chaque méthode agile voire les futures méthodes agiles suivront ses principes fondateurs.
L’équipe
« Les individus et leurs interactions, plus que les processus et les outils »
Une équipe soudée et qui communique sera toujours plus forte que les outils utilisés. Les bons outils ne suffisent pas.
L’application
« Des logiciels opérationnels, plus qu’une documentation exhaustive »
Il est préférable de faire un logiciel fonctionnel que d’avoir des documentations gigantesques.
La collaboration
« La collaboration avec les clients, plus que la négociation contractuelle »
Le client est clé dans le développement du projet. Il faut toujours l’impliquer et ne jamais le mettre de côté.
L’acceptation au changement
« L’adaptation au changement, plus que le suivi d’un plan »
Un projet peut changer en cours de route. Il faut l’accepter et savoir s’adapter quand les objectifs changent.
Je vous propose de lire cet article qui vous explique en détail en quoi consiste ces 4 valeurs du manifeste agile.
Article : Le manifeste agile : 4 valeurs et 12 principes
La liste des 12 principes fondamentaux de l’agilité
Voici les 12 principes tirés des 4 valeurs fondatrices que nous venons de voir qui font ce qu’est la méthode agile à ce jour.
- Notre plus haute priorité est de satisfaire le client
en livrant rapidement et régulièrement des fonctionnalités
à grande valeur ajoutée. - Accueillez positivement les changements de besoins,même tard dans le projet. Les processus Agiles
exploitent le changement pour donner un avantage
compétitif au client. - Livrez fréquemment un logiciel opérationnel avec des
cycles de quelques semaines à quelques mois et une
préférence pour les plus courts. - Les utilisateurs ou leurs représentants et les
développeurs doivent travailler ensemble quotidiennement
tout au long du projet. - Réalisez les projets avec des personnes motivées.
Fournissez-leur l’environnement et le soutien dont ils
ont besoin et faites-leur confiance pour atteindre les
objectifs fixés. - La méthode la plus simple et la plus efficace pour
transmettre de l’information à l’équipe de développement
et à l’intérieur de celle-ci est le dialogue en face à face. - Un logiciel opérationnel est la principale mesure d’avancement.
- Les processus Agiles encouragent un rythme de développement
soutenable. Ensemble, les commanditaires, les développeurs
et les utilisateurs devraient être capables de maintenir
indéfiniment un rythme constant. - Une attention continue à l’excellence technique et
à une bonne conception renforce l’Agilité. - La simplicité – c’est-à-dire l’art de minimiser la
quantité de travail inutile – est essentielle. - Les meilleures architectures, spécifications et
conceptions émergent d’équipes autoorganisées. - À intervalles réguliers, l’équipe réfléchit aux moyens
de devenir plus efficace, puis règle et modifie son
comportement en conséquence.
Caractéristiques de la méthode agile
Chaque méthode agile ont des pratiques communes rassemblées en 3 domaines :
Le côté humain
- L’utilisateur final participe aux ateliers
- Groupe de travail avec un pouvoir de décision
- Autonomie et auto-organisation
- Spécification et validation permanentes
Qualité de production
- Recherche d’excellence technique
- Vision graphique de modélisation
- Documentation minimale nécessaire
- Norme et qualité de code
- Architecture en mode composant
- Automatisation des changements
Pilotage de projet
- Méthodologie variable selon les projets
- Pilotage par les enjeux et les risques
- Planification par itération rapides
- Prototypage incrémental par itération
- Amélioration continue
Voici différentes méthodes agiles qui se distinguent par des points particuliers mais qui respectent tout ce que nous avons vu précédemment (dans les grandes lignes)
La méthode RAD
Sans être aussi extrême que l’XP, la méthode ajoute des techniques d’ingénieries telles que la revue de code, le pair programming que sur des sujets sensibles. Elle a également un animateur/facilitateur externe qui aura pour rôle de reporter à la hiérarchie et de prendre des décisions impactantes sur les projets.
La méthode RAD2
Elle se différencie en recommandant une variabilité d’équipe selon les phases du projet afin d’être toujours optimum. Elle ajoute également de nombreuses choses sur la communication et la formalisation des exigences. Nous trouverons dedans des validations de qualité permanentes et des livraisons par thèmes ou fonctionnalités.
La méthode DSDM
La méthode ajoute au RAD une spécialisation des membres par rôle comme des sponsors exécutifs, des ambassadeurs, des utilisateurs visionnaires, des utilisateurs conseillers, sans oublier l’animateur-facilitateur et des rapporteurs.
Le Scrum
Le scrum consolide le formatage des itérations avec de nombreuses cérémonies obligatoires dans le but de motiver les troupes, d’amener à une communication et une entraide forte ainsi que de rapidement faire face à une difficulté.
Elle décrit aussi 3 rôles clés : scrum master, product owner et équipe de réalisation.
Article : Qu’est-ce que le scrum ?
La méthode XP
Cette méthode est principalement axées sur la qualité du produit final et de renforcer le lien entre les développeurs et les utilisateurs. Elle n’oublie pas cependant de définir les itérations requises et des pratiques pour renforcer l’excellence technique et fonctionnelle.
Article : Qu’est-ce que l’Extreme Programming ?
Comment devenir Agile ?
Se lancer dans les méthodes agile ne doit pas être dans le but d’une mode et de se dire “tout le monde le fait”. Il faut analyser différents critères et commencer par se dire si la méthode pourra nous être favorable. Voici la liste des critères favorables et défavorables :
Critères favorables
- Produit rapidement en place
- Les clients imprévisibles
- Besoin de pouvoir changer souvent
- Le client veut voir l’avancement du projet
- Un client présent régulièrement
Critères défavorables
- Client jamais disponible ou absent
- Les membres du projet dispersés
- Refus du changement
- Gouvernance complexe de la DSI
- Livraison par fonctionnalités impossibles
Il y a plusieurs méthodes pour amener les méthodes Agile dans les entreprises mais plus l’entreprise a du vécu et plus le parcours sera long. Malgré des tentatives, certaines entreprises n’arrivent pas à devenir Agile tant les contraintes sont grandes.
Mettre en place un centre Agile
Cette méthode très en vogue en ce moment est en quelques mots la création d’un pôle indépendant de coaches agile qui vont coacher toutes les équipes de l’entreprise.
Cette méthode peut être un véritable succès ou rapidement montrer les étapes à franchir pour que l’entreprise devienne Agile.
Prendre un coach Agile
Financièrement moins impactante, cette solution est encore choisie par certaines entreprises. Il lui faudra un soutien des dirigeants pour envisager d’aller vers le succès.
L’arrivée d’un DSI/CTO Agile
L’arrivée DSI/CTO avec cette capacité de coaching (et une expertise Agile) peut être un bon moteur pour lancer l’entreprise dans l’agilité ; sa détermination et son savoir faire dans le coaching pourront faire la différence (manager non directif).
Mais est-ce des méthodes Agile ?
Quand on suit cette description des méthodes Agile, on a souvent plusieurs questions qui peuvent se poser.
Scrum vraiment une méthode Agile ?
C’est en fait l’application du Scrum qui parfois peut ne pas respecter les fondamentaux à 100% mais dans l’ensemble, ils les respectent plutôt bien. Le Scrum est une méthode Agile qui fait d’ailleurs parti des méthodes Agile validée par le manifeste agile.
Cependant son application peut parfois devenir « non » agile.
Par exemple, parfois les équipes faisant du Scrum préparent en amont un backlog complet pour être dans un mode prédictif. C’est un concept qui va à l’encontre des concepts agiles.
Kanban est une méthode Agile ?
Non si on en prend que ses bases car il ne respecte que très peu d’éléments du manifeste agile.
Par contre, on peut dire qu’il a un esprit Agile car il se couple très bien pour faire un RUN (livraison continue de debug et de petites améliorations sur l’existant) en parallèle d’un projet en SCRUM.
J’appelle cela une méthode apparentée Agile qui mérite d’être connue car on peut bien l’adapter aux différents contextes et en faire une méthode de travail efficace.
Articles : articles sur kanban
Conclusion méthode agile
Comme vous l’aurez compris les méthodes Agile suivent le « manifeste agile » mais ont surtout permis d’amener une culture agile dans les entreprises françaises et suisses. On retrouve de plus en plus de mélanges de méthodes agiles comme le scumban, du scum xp…
Lien utile :
Merci pour cette introduction aux méthodes agiles. La distinction avec Kanban est intéressante. Je me souviens au début des années 2000 de réunions enflammées sur la méthode XP et les discussions autour des méthodes pour démocratiser l’agilité 🙂