Les méthodes Agiles : les premiers pas

Les méthodes Agiles

Si vous arrivez sur ce blog, je devine que vous êtes déjà familier avec l’agilité et les méthodes agiles ; cependant, je vais proposer aux autres qui auront peut-être l’occasion de passer par ici grâce à Linkedin, Twitter et autres…

Les méthodes Agiles vont apporter un changement radical dans votre entreprise et auront des résultats très positifs sur l’ensemble de vos processus. Voici en quelques mots ce concept “Agile”.

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.

L’informatique l’adopte

Si les méthodes agiles sont devenus le véritable moteur d’un grand nombre d’entreprises jeunes, il faut remonter à 1950 où le programme Mercury de Motorola intègre des concepts proches de ce que nous appelons aujourd’hui l’Extreme Programming.

Travail

De nombreux travaux dans les années 70 de plusieurs personnes ont finit par donner naissance aux méthodes agiles. 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.

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.

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é agile 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é

Les méthodes agiles prônent 4 valeurs essentielles qui découlent du manifeste agile. Toutes les méthodes agile voire les futures méthodes agile 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.

La liste des 12 principes fondamentaux de l’agilité

Voici les 12 principes tirés des 4 principes fondateurs que nous venons de voir qui font ce que sont les méthodes agile à ce jour.

  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 et 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 son
    comportement en conséquence.

Caractéristiques des méthodes agiles

Les méthodes agiles 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.

La méthode Scrum

La méthode 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é.

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.

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 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 ?

Parfois les équipes faisant du Scrum préparent en amont un backlog complet pour être dans un mode prédictif.

C’est en fait l’application de 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.

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.

Conclusion

Comme vous l’aurez compris les méthodes Agile suivent un écrit “manifeste agile” mais ont surtout permis d’amener une culture Agile. On retrouve de plus en plus de mélange de méthodes vire du couplage de plusieurs méthodes pour avoir un environnement de travail très adapté au contexte.

Si le Scrum est une méthode Agile, les méthodes comme le Lean Startup, le Devops ou le Kanban pour ne citer qu’elles que je nomme des méthodes apparentées Agile  peuvent améliorer considérablement le travail de vos équipes.

Qu’elles sont vos méthodes de travail actuellement ?

2 Replies to “Les méthodes Agiles : les premiers pas”

  1. 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é 🙂

Laissez une réponse

Votre adresse mail doit être renseigné Required fields are marked *