Go to Top

Les méthodes Agiles: des méthodes singulières ou plurielles ?

Agile : dont les mouvements sont simples et rapides. www.linternaute.com

 

Parce que la méthode agile est privilégiée pour la conduction de nos projets, nous tenions à publier un billet expliquant, dans les grandes lignes, les principes de cette méthode.

 

 

Approche globale :

Balayons immédiatement 3 idées reçues :

  • A l’origine, les méthodes agiles sont employées dans le cas de développement logiciel, et non de conduite de projet
  • LES, car en réalité, nous ne pouvons pas vraiment parler de méthode agile, mais plutôt de méthodes agiles au pluriel.
  • Dans cette même réalité enfin, il est plus juste de parler de bonnes pratiques que réellement de méthodes

 

Pour comprendre les méthodes agiles, il faut comprendre le déroulement global du cycle de gestion d’un projet.

Conduire un projet informatique , c’est anticiper organiser, coordonner, fédérer, planifier, piloter. Pour assurer ces taches, la méthode du cycle en V a longtemps été privilégié. Son déroulement ci-dessous:


Ce schéma de conduite de projet suppose :

  • que le développement (ou la gestion du projet) est confiée de A à Z au prestataire ou à l’équipe interne en charge du projet, mais les échanges sont très rares voir inexistants. Le produit ou projet livré ne correspond pas toujours aux attentes du client
  • qu’à chaque étape, un ou plusieurs documents sont rédigés. Il en résulte donc une documentation (trop) dense, parfois néfaste au projet et à sa bonne avancée.

Conséquence : Mextor a donc opté pour les méthodes agiles, plus flexibles, plus dynamiques, plus participatives : On fragmente l’application, on fait valider chaque étape au client avant d’avancer plus loin. En plus clair, c’est l’utilisateur qui conditionne l’avancée du projet.

Par abus de langage, l’approche Scrum est assimilé à LA méthode agile. Dans les faits, il en existe beaucoup d’autres que nous détaillerons dans un prochain billet. Retenons que les principales sont :

  • Scrum
  • EXtreme Programming (XP)
  • Feature Driven Development (FDD)
  • Crystal Clear
  • Adaptive software development (ASD)
  • Rapid Application Development (RAD)
  • Dynamic systems development method (DSDM)

Notons que ces méthodes sont très différentes les unes des autres. mais néanmoins, pour certaines, complémentaires (mis en place de plusieurs de ces méthodes sur un même projet)

 

Les priorités :

  1. Les individus et les interactions doivent primer sur les processus et les outils
  2. Le développement logiciel doit primer sur la documentation exhaustive
  3. La collaboration avec le client doit primer sur la négociation contractuelle
  4. L’ouverture au changement doit primer sur le suivi d’un plan rigide

Les méthodes agiles ont pour pilier  4 valeurs centrales:

  • L’équipe (« Les individus et leurs interactions, plus que les processus et les outils »)
  • L’application (« Des logiciels opérationnels, plus qu’une documentation exhaustive »)
  • La collaboration (« La collaboration avec les clients, plus que la négociation contractuelle »)
  • L’acceptation du changement (« L’adaptation au changement, plus que le suivi d’un plan »)

(Source : Manifeste pour le développement Agile de logiciels)

 

Les principes clés:

Ces valeurs sont déclinés en principes fondamentaux, piliers de l’approche Agile :

  1. La plus haute priorité est de satisfaire le client en livrant rapidement et régulièrement des fonctionnalités à forte valeur ajoutée.
  2. Le changement est accepté, même tardivement dans le développement, car les processus agiles exploitent le changement comme avantage compétitif pour le client.
  3. La livraison s’applique à une application fonctionnelle, toutes les deux semaines à deux mois, avec une préférence pour la période la plus courte.
  4. Le métier et les développeurs doivent collaborer régulièrement et de préférence quotidiennement au projet.
  5. Le projet doit impliquer des personnes motivées. Donnez leur l’environnement et le soutien dont elles ont besoin et faites leur confiance quant au respect des objectifs.
  6. La méthode la plus efficace de transmettre l’information est une conversation en face à face.
  7. L’unité de mesure de la progression du projet est un logiciel fonctionnel (ce qui exclut de comptabiliser les fonctions non formellement achevées).
  8. Les processus agiles promeuvent un rythme de développement soutenable (afin d’éviter la non qualité découlant de la fatigue).
  9. Les processus agiles recommandent une attention continue à l’excellence technique et à la qualité de la conception.
  10. La simplicité et l’art de minimiser les tâches parasites, sont appliqués comme principes essentiels.
  11. Les équipes s’auto-organisent afin de faire émerger les meilleures architectures, spécifications et conceptions.
  12. À intervalle régulier, l’équipe réfléchit aux moyens de devenir plus efficace, puis accorde et ajuste son processus de travail en conséquence.

 

Pour quels bénéfices ?

Les avantages inhérents aux méthodes agiles sont nombreux. Voici les principaux :

REACTIVITE : Les échanges nombreux permettent au client d’effectuer un suivi de sa « commande », et donc de faire part au fournisseur des éventuels soucis de conformité entre ce qui a été commandé et ce qui est en effectivement en cours de fabrication / réalisation. La finalité étant bien évidemment que le fournisseur rectifie en conséquence afin d’assurer une satisfaction client.

SATISFACTION CLIENT : cette réactivité a également pour objectif d’adapter la production aux éventuels nouvelles contraintes (ou aux changements de besoins métiers du client), afin de fournir un produit en phase avec le besoin présent, et non le besoin évoqué quelques semaines / mois auparavant.

QUALITE : le management est également favorisé dans la mesure ou tous les parties prenantes du projet ont le droit et le devoir de s’exprimer sur le déroulement de la conception et de la production. Chacun est donc naturellement plus impliqué et donc plus appliqué.

PRODUCTIVITE : Moins de formalité ==> Moins de documentation ==> Equipe plus conséquente dédiée à la production à proprement parlé ==> Hausse de la productivité

 

Risques à anticiper

Certains parlerons d’inconvénients, nous parlerons plutôt de risques à prendre en compte afin de les anticiper en amont et agir en conséquences :

La documentation étant réduite à son stricte minimum, il convient de veiller à ce que le peu de documentation mise à disposition des différents acteurs soit justement la documentation la plus utile. On pensera notamment à livrer le code source par exemple dans le cas d’un développement logiciel. Celui-ci devra impérativement être propre et complet pour assurer la maintenance du produit. Si les bonnes pratiques liées au codage et aux tests sont appliquées, les différentes équipes n’ont aucun souci à se faire sur ce point.

Les méthodes agiles étant caractérisées par leur souplesse, il faut impérativement fédérer autour du projet afin d’éviter certains écueils, revers directs des avantages de ces méthodes :

  • La réactivité ne doit pas amener le client à change rd’avis systématiquement, ce qui rendrait l’avancée du projet délicate
  • Les cycles de développement rapides ne doivent pas être synonymes de tests bâclés
  • Les équipes réduites ne doivent pas être des équipes submergées par les tâches, sous peine de les démobiliser , effet inverse de l’objectif de cette approche

Bien que nous privilégions cette approche, nous nous tenons à votre disposition pour nous adapter à vos propres contraintes. N’hésitez pas à nous contacter pour échanger ensemble sur ce point.