Maëva LAPRIE 
BTS SIO slam 
au lycée Gustave Eiffel

Les méthodes agiles

Définition

    Les méthodes agiles sont des groupes de pratiques de projets de développement en informatique, pouvant s'appliquer à divers types de projets. Elles ont pour dénominateur commun l'Agile manifesto

    Rédigé en 2001, celui-ci consacre le terme d'« agile » pour référencer de multiples méthodes existantes. 

    Les méthodes agiles se veulent plus pragmatiques que les méthodes traditionnelles. Elles impliquent au maximum le demandeur (client) et permettent une grande réactivité à ses demandes. Elles visent la satisfaction réelle du client en priorité aux termes d'un contrat de développement.

 

   Les méthodes agiles reposent sur une structure commune (itérative, incrémentale et adaptative), quatre valeurs communes déclinées en douze principes communs desquels découlent une base de pratiques, soit communes, soit complémentaires.

 

Les méthodes agiles prônent 4 valeurs fondamentales (entre parenthèses, les citations du manifeste) :

  • L'équipe (« Les individus et leurs interactions, plus que les processus et les outils ») : dans l'optique agile, l'équipe est bien plus importante que les outils (structurants ou de contrôle) ou les procédures de fonctionnement. Il est préférable d'avoir une équipe soudée et qui communique, composée de développeurs (éventuellement à niveaux variables), plutôt qu'une équipe composée d'experts fonctionnant chacun de manière isolée. La communication est une notion fondamentale.

  • L'application (« Des logiciels opérationnels, plus qu'une documentation exhaustive ») : il est vital que l'application fonctionne. Le reste, et notamment la documentation technique, est une aide précieuse mais non un but en soi. Une documentation précise est utile comme moyen de communication. La documentation représente une charge de travail importante, mais peut pourtant être néfaste si elle n'est pas à jour. Il est préférable de commenter abondamment le code lui-même, et surtout de transférer les compétences au sein de l'équipe (on en revient à l'importance de la communication).

  • La collaboration (« La collaboration avec les clients, plus que la négociation contractuelle ») : le client doit être impliqué dans le développement. On ne peut se contenter de négocier un contrat au début du projet, puis de négliger les demandes du client. Le client doit collaborer avec l'équipe et fournir un compte rendu continu sur l'adéquation du logiciel avec ses attentes.

  • L'acceptation du changement (« L'adaptation au changement, plus que le suivi d'un plan ») : la planification initiale et la structure du logiciel doivent être flexibles afin de permettre l'évolution de la demande du client tout au long du projet. Les premières livraisons du logiciel vont souvent provoquer des demandes d'évolution.



Les principes

Ces quatre valeurs se déclinent en 12 principes généraux communs à toutes les méthodes agiles:

  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 concurrentiel 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.

 

    Une méthode qualifiée d'agile doit donc se composer d'un ensemble de pratiques instrumentant le cadre décrit par les 12 principes généraux agiles et en conséquence s'inscrire dans le respect des quatre valeurs fondamentales ayant inspiré le Manifeste agile.


Les consequences

    De multiples facteurs contextuels peuvent être pris en considération pour valider ou invalider la possibilité d'application d'une méthode agile. Les principaux critères d'éligibilité pourraient être les suivants :

  1. Favorisant :

    • Besoin rapide de mise à disposition du produit

    • Imprévisibilité des besoins du client

    • Nécessité de changements fréquents

    • Besoin de visibilité du client sur l'avancement des développements

    • Présence de l'utilisateur assurant un feedback immédiat

 
  1. Défavorisant :

    • Indisponibilité du client ou de l'utilisateur

    • Dispersion géographique des ressources humaines

    • Inertie des acteurs du projet ou refus des changements

    • Gouvernance complexe de la DSI

 

Dans les cas où les critères d'éligibilité de l'utilisation d'une approche agile n'ont pas été respectés, un risque de dérive lié à un formalisme léger peut apparaître.