Méthode agile

Un article de Wikipédia, l'encyclopédie libre.
(Redirigé depuis Développement agile)
Sauter à la navigation Sauter à la recherche

Les méthodes agiles sont des groupes de pratiques de pilotage et de réalisation de projets. Elles ont pour origine le manifeste Agile, rédigé en 2001, qui 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, impliquent au maximum le demandeur (client) et permettent une grande réactivité à ses demandes. Elles reposent sur un cycle de développement itératif, incrémental et adaptatif et doivent respecter quatre valeurs fondamentales déclinées en douze principes desquels découlent une base de pratiques, soit communes, soit complémentaires.

Les méthodes pouvant être qualifiées d'agiles, depuis la publication du manifeste Agile, sont :

Les deux approches de réingénierie agile du développement d'application ou d'amélioration continue (Lean), désormais les plus utilisées sont :

  • En ce qui concerne la réingénierie immédiate des processus, la méthode Extreme programming (XP), publiée en 1999 par Kent Beck.
  • En ce qui concerne l'amélioration continue, le framework Scrum, présentée en 1995 par Ken Schwaber[1], publiée ensuite en 2001 par lui-même et Mike Beedle.

Ces deux approches sont d'ailleurs techniquement complémentaires dans le cas d'un projet de développement en science de l'information (SI), XP proposant alors les techniques d'obtention de la qualité du code

Fondements[modifier | modifier le code]

Quatre valeurs fondamentales[modifier | modifier le code]

Les méthodes agiles prônent 4 valeurs fondamentales du manifeste Agile :

  • 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

Douze principes généraux[modifier | modifier le code]

  1. Satisfaire le client en priorité
  2. Accueillir favorablement les demandes de changement
  3. Livrer le plus souvent possible des versions opérationnelles de l’application
  4. Assurer une coopération permanente entre le client et l’équipe projet
  5. Construire des projets autour d’individus motivés
  6. Privilégier la conversation en face à face
  7. Mesurer l’avancement du projet en termes de fonctionnalités de l’application
  8. Faire avancer le projet à un rythme soutenable et constant
  9. Porter une attention continue à l’excellence technique et à la conception
  10. Faire simple
  11. Responsabiliser les équipes
  12. Ajuster à intervalles réguliers son comportement et ses processus pour être plus efficace

Historique[modifier | modifier le code]

Les travaux sur le cycle de production itératif et incrémental remontent aux années 1930 et 40, avec les travaux de Walter Shewhart et William Edwards Deming. Ces recherches sont appliquées à la production informatique à la fin des années 1950, notamment avec le développement de parties logicielles dans le cadre du programme Mercury[2]. Gerald Weinberg (en) mentionne un projet de développement réalisé en 1957 pour Motorola qui utilisait une technique similaire à ce qui sera plus tard l'eXtreme programming[2].

Les méthodes agiles sont l'aboutissement de nombreux travaux tels que ceux de Tom Gilb (cycle de vie évolutif), de Scott Shultz (production en itérations rapides), de Brian Gallagher et de Alex Balchin. Elles intègrent aussi les techniques JRP (Joint Requirements Planning) et JAD (Joint application design) (en) qui furent initiées par Dan Gielan, puis formalisées par Chuck Morris d'IBM en 1984 et diffusées sous forme de livres en 1989 par, entre autres, J. Wood et D. Silver. La première méthode agile[3] serait la méthode EVO[4], de Tom Gilb, publiée en 1976.

En 1986, Barry Boehm publie le modèle en spirale (développement incrémental) tandis que Hirotaka Takeuchi (en) et Ikujiro Nonaka publient « The new new product developpement game[5] » un modèle de développement de produits industriels basé sur l'engagement simultané des diverses disciplines concernées (ingénierie concourante).

En 1991, James Martin (en) (RAD), s’appuyant sur une vision de l'évolution continue des technologies informatiques, propose une méthode de développement rapide d’application. Sa structure itérative, incrémentale et adaptative, base des approches agiles actuelles, détermine le phasage essentiel et met en œuvre un principe adaptatif non restrictif fondé sur la validation permanente des utilisateurs et leur responsabilité directe dans la dynamique applicative.

À partir de 1994, Jean-Pierre Vickoff en France, notamment avec le Processus RAD2 publié par le Gartner Group en 1999, et Jennifer Stapleton en Grande-Bretagne, avec DSDM, introduisent des compléments et des évolutions (détails Développement rapide d'applications).

En 2001, aux États-Unis, dix-sept figures éminentes du développement logiciel se réunissent pour débattre d'un thème unificateur de leurs méthodes respectives. Les plus connus d'entre eux sont Ward Cunningham, l'inventeur du Wiki via WikiWikiWeb, Kent Beck, père de l'extreme programming et cofondateur de JUnit, Ken Schwaber (en) créateur de Scrum et Jeff Sutherland (en) son promoteur, Jim Highsmith (en), prônant l'ASD, Alistair Cockburn pour la méthode Crystal clear, Martin Fowler et Dave Thomas, ainsi qu'Arie van Bennekum pour DSDM (Dynamic System Development Method). Ces 17 experts extraient alors de leurs usages respectifs les critères communs et les principes qui, selon eux, conduisent aux meilleures concepts de direction de projets et de développement de logiciels. De cette réunion émerge le Manifeste agile, considéré[Par qui ?] comme la définition canonique de valeurs de l'agilité agile et de ses principes sous-jacents[6].

Au début des années 2000, une dizaine de méthodes agiles (dont XP Extreme programming et Scrum sont les principales représentantes) sont popularisées. L'apport méthodologique d'XP réside dans la préconisation de pousser à l’extrême les principales pratiques de qualité de la construction applicative ainsi que les techniques adaptatives d’estimation consensuelle, de planification pilotée par l'utilisateur et de reporting visuel en temps réel de l'avancement ainsi que des problèmes rencontrés (affichage mural à base de post-it). Scrum propose un ensemble réduit de pratiques concentrées sur le développement de l'adaptabilité par l'apprentissage et l'auto-organisation.

Méthodes agiles au sens strict[modifier | modifier le code]

Classées par date de publication :

Exemples de techniques Agiles[modifier | modifier le code]

Critiques[modifier | modifier le code]

Parmi les 17 signataires du manifeste agile, certains ont depuis émis des critiques non sur les principes Agile, mais sur l'utilisation des méthodes dites agile, et le marketing qui s'est développé autour aux dépens des principes fondateurs. Ainsi de Andy Hunt[7], Jared Richardson (fondateur ultérieurement de la méthode GROW[8]) ou Ron Jeffries[9] notamment ont remis en cause ultérieurement non les principes eux-mêmes, mais leur mise en pratique et leur dévoiement notamment à des fins commerciales.

Notes et références[modifier | modifier le code]

  1. (en) « Ken Schwaber », sur Scrum Guides, (consulté le 2 janvier 2015)
  2. a et b (en) Craig Larman, Victor R. Basilii, « Iterative and incremental development : a brief history » [PDF], sur craiglarman.org,
  3. "EVO is perhaps the oldest IID method with a significant agile and adaptative quality, first taking shape in the 1960s then published in 1976."(en) Craig Larman, « Agile & Iterative Development : Chap 7 », sur craiglarman.com, (consulté le 3 mai 2014)
  4. (en) Tom Gilb, « Fundamental Principles of Evolutionary Project Management », sur gilb.com, (consulté le 3 mai 2014)
  5. (en) Hirotaka Takeuchi (en) et Ikujiro Nonaka, « The New New Product Development Game (Article preview) », sur The magazine (Harvard business review), (consulté le 14 mai 2012)
  6. « Le Manifeste agile a été rendu public en 2001, et plusieurs implémentations de la méthode, comme XP, SCRUM, et Crystal, existent. », Kieran Conboy et Brian Fitzgerald, Extreme Programming And Méthodes agiles - XP/Agile Universe 2004 : 4e Conférence sur Extreme Programming et les Méthodes Agiles, Calgary, Canada, du 15 au 18 août 2004, Actes, chapitre Vers un cadre conceptuel pour les Méthodes Agiles, Springer Verlag, New York, [pas clair], (ISBN 354022839X), (en) lien
  7. (en) « The Failure of Agile », (consulté le 24 mai 2018)
  8. (en) « GROW model », sur en.wikipedia.org (consulté le 24 mai 2018)
  9. (en) « Developers Should Abandon Agile », sur https://ronjeffries.com, (consulté le 24 mai 2018)

Annexes[modifier | modifier le code]

Sur les autres projets Wikimedia :

Articles connexes[modifier | modifier le code]