L’Agilité, qu’est-ce donc ? Est-ce virevolter à moitié nu entre les rideaux de votre appartement sous le regard admiratif de vos amis ? Est-ce votre capacité à enfiler rapidement un t-shirt stretch taille 6 ans dans une cabine d’essayage trop étroite ? Trêve de plaisanteries : Encore un article sur ce sujet ? Eh oui !
Les raisons ne manquent pas de refaire un bref passage sur ce concept, à l’heure où il est parfois réduit à la simple mise en place et à la maintenance fonctionnelle de frameworks comme Scrum, SAFe, ou autres. S’organiser en petites équipes et suivre un ensemble de cérémonies c’est bien, mais l’Agilité, c’est surtout un socle de valeurs et de principes indispensables sur lesquels reposent le bon fonctionnement et la cohérence de tous ces cadres de travail.
Un historique rapide
Même si elles tentent depuis peu de s’étendre à d’autres strates de l’entreprise avec plus ou moins de bonheur, les méthodes agiles concernent encore aujourd’hui essentiellement les équipes de développement informatique. Elles sont à contraster avec des façons de travailler issues des années 70 comme “le travail en cascade” ou son proche voisin, le cycle en “V”, dans lesquels les étapes consistent, sans trop rentrer dans les détails à :
- Analyser les besoins techniques du produit
- Designer le produit
- Contruire le produit (la pointe du “V” du cycle en “V”)
- Tester le produit et corriger les inévitables problèmes de conception
- Lancer le produit sur le marché
Cycle en “V” et travail en Cascade ne sont d’ailleurs pas des gros mots. Loin d’avoir disparues, ces méthodes sont plutôt adaptées aux projets simples dont la technologie est parfaitement maîtrisée. Les différentes phases y sont clairement délimitées, les prérequis techniques sont stables dans le temps et les retours client peu importants. En substance, elles nécessitent des environnements très prévisibles, ce qui n’est quasiment jamais le cas pour le développement de logiciel, domaine complexe où l’incertitude est grande et les validations du client et des utilisateurs indispensables pendant les phases d’élaboration successives du produit…
Des approches stressantes et peu efficaces
Ces approches, stressantes pour les développeurs et frustrantes pour les organisations car inadaptées aux exigences du monde du logiciel, ont engendré au début des années 90, l’avènement de nouvelles méthodes d’organisation et de développement comme Extreme Programming et Scrum entre autres. Des méthodes qui ont immédiatement apporté aux organisations plus de réactivité et de flexibilité, deux compétences indispensables pour s’adapter aux changements et contraintes de ce marché. Avec ces premiers frameworks un certain nombre de pratiques commencent à se mettre en place : le travail y est ségmenté en itérations successives, et on y favorise de plus en plus la collaboration, l’autonomie des équipes et la recherche de “feedback” rapide.
Le Manifeste Agile
Puis au début des années 2000, sous l’impulsion de 17 développeurs naissait aux États-Unis le fameux Manifeste Agile. Pierre angulaire de toutes les méthodologies Agiles actuellement utilisées, il représente surtout l’avènement d’une culture du travail différente, plus adaptée à un monde qui change à une vitesse de plus en plus étourdissante. Il est composé de 4 valeurs fondamentales et de 12 principes :
Source : https://agilemanifesto.org
Les 4 Valeurs :
“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 :
- Les individus et leurs interactions plus que les processus et les outils.
- Des logiciels opérationnels plus qu’une documentation exhaustive.
- La collaboration avec les clients plus que la négociation contractuelle.
- L’adaptation au changement plus que le suivi d’un plan.
Nous reconnaissons la valeur des seconds éléments, mais privilégions les premiers.”
Les 12 principes :
1. Notre plus haute priorité est de satisfaire le client en livrant rapidement et régulièrement des fonctionnalités à grande valeur ajoutée.
2. 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.
3. Livrez fréquemment un logiciel opérationnel, avec des cycles de quelques semaines à quelques mois avec une préférence pour les plus courts.
4. Les utilisateurs ou leurs représentants et les développeurs doivent travailler ensemble quotidiennement tout au long du projet.
5. 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.
6. 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.
7. Un logiciel opérationnel est la principale mesure d’avancement.
8. 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.
9. Une attention continue à l’excellence technique et à une bonne conception renforce l’Agilité.
10. La simplicité — c’est-à-dire l’art de minimiser la quantité de travail inutile — est essentielle.
11. Les meilleures architectures, spécifications et conceptions émergent d’équipes autoorganisées.
12. À intervalles réguliers, l’équipe réfléchit aux moyens de devenir plus efficace, puis règle et modifie soncomportement en conséquence.
Enfreindre ou oublier les valeurs : deux exemples
“Les individus et leurs interactions plus que les processus et les outils.”
Développer une obsession pour JIRA, le célèbre “logiciel de suivi des tickets et des projets” est un exemple de non-respect de la première valeur. JIRA est un outil parmi tant d’autres, qui peut être utilisé (comme tout outil) en bien ou en mal. Lorsqu’il est mal utilisé, on peut parfois voir apparaître un certain nombre de disfonctionnements : un repli de chaque développeur sur ses tickets personnels au détriment de la discussion et du travail en équipe, un certain manque de transparence reposant sur la complexité de l’interface, une fixation sur la vélocité et les estimations etc. Il est dans ce cas bon de prendre un peu de recul et de rappeler les valeurs de l’agilité afin de recentrer les équipes sur la collaboration et plus de simplicité.
Des logiciels opérationnels plus qu’une documentation exhaustive.
Surcharger ses stories et noyer les développeurs sous une nuée de critères d’acceptation, de détails techniques superflus et de descriptions hasardeuses…c’est enfreindre cette valeur, qui va aussi de pair avec le dixième principe : “La simplicité — c’est-à-dire l’art de minimiser la quantité de travail inutile — est essentielle”. Donner des détails sur les travaux à effectuer est primordial…tant que l’on reste clair et concis. Il y a un équilibre à trouver entre overdose d’indications et le minimum nécessaire pour avancer dans de bonnes conditions.
En résumé
Loin des discussions fiévreuses sur la pertinence d’utiliser tel ou tel cadre de travail, l’Agilité est avant tout une “philosophie” basée sur quatre valeurs et douze principes fondateurs. Même s’ils sont initialement issus du monde du logiciel, ils sont aujourd’hui étendus à bien d’autres domaines. C’est à travers la bonne application et le souffle donné par ces valeurs que les framework agiles peuvent respirer et donner tout le potentiel que l’on est en droit d’attendre d’eux :
- flexibilité,
- adaptabilité,
- livraisons rapides,
- montée en compétence,
- qualité,
- livraison de valeur,
- autonomie des équipes,
- hyper-collaboration,
- transparence,
- satisfaction des diverses parties prenantes,
- ambiance de travail agréable,
- faible taux de turn-over,
- etc.
Une longue liste de bénéfices dont il serait dommage de se priver en “oubliant” tout ou partie des valeurs et principes du Manifeste Agile !
2 comments on “Qu’est-ce que l’Agilité, en bref ?”