vignette|Daily stand-up, rituel quotidien d'eXtreme Programming (XP). En ingénierie logicielle, les mettent en avant la collaboration entre des équipes auto-organisées et pluridisciplinaires et leurs clients. Elles s'appuient sur l'utilisation d'un cadre méthodologique léger mais suffisamment centré sur l'humain et la communication. Elles préconisent une planification adaptative, un développement évolutif, une livraison précoce et une amélioration continue, et elles encouragent des réponses flexibles au changement..

Cette approche a été popularisée à partir de 2001 par le Manifeste pour le développement agile de logiciels. Les quatre valeurs et les douze principes adoptés dans ce manifeste sont issus d'un large éventail d'approches dont Scrum et eXtreme Programming. Depuis lors, les méthodes ou les approches qui s'inscrivent dans la philosophie de ce manifeste sont appelées « méthodes agiles » ou « approches agiles ».

Les méthodes agiles se veulent plus pragmatiques que les méthodes traditionnellesComme le modèle en cascade ou le cycle en V , impliquent au maximum le demandeur (client) et permettent une grande réactivité à ses demandes. Elles reposent sur un cycle de développement itéractif, incrémental et adaptatif.

Fondements

Le Manifeste pour le développement agile de logiciels est un texte rédigé aux États-Unis en 2001 par dix-sept experts du développement logiciels. Ils estimaient que le taux important d'échecs des projets de développements logiciels était dû à la lourdeur des méthodes traditionnelles inspirées du génie civil et s'appuyant sur un cycle de développement en cascade. Chacun d'entre eux avait déjà mis au point et expérimenté de nouvelles méthodes plus légères. Les approches agiles ne sont donc pas apparues avec le manifeste agile. Cependant celui-ci a défini leurs dénominateurs communs et consacré le terme d'« agile » pour les référencer. Les valeurs et les principes du manifeste agile sont défendus et promus par l'Agile Alliance créée par certains des signataires..

En s'appuyant sur leur expérience combinée du développement logiciel, les dix-sept signataires du manifeste ont proclamé qu'ils attachaient de l'importance , , et . Cela signifie que les éléments à gauche du mot dans chaque citation sont réputés avoir plus de valeur que ceux à droite, bien qu'il y ait aussi de la valeur dans ces derniers. Ces quatre citations sont appelées les quatre du manifeste agile..

Les quatre valeurs du manifeste agile ont été déclinées en douze principes afin d'aider opérationnellement les équipes qui souhaitaient les suivre.

Historique

Travaux sur le cycle de production itératif et incrémental Les travaux sur le cycle de production itératif et incrémental remontent aux années 1930 et 1940, 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.. 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.

Les approches agiles sont l'aboutissement de nombreux travaux tels que ceux de Tom Gilb (cycle de vie évolutif) en 1981, 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 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"EVO is perhaps the oldest IID method with a significant agile and adaptative quality, first taking shape in the 1960s then published in 1976.". serait la méthode EVO., de Tom Gilb, publiée en 1976.

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

Apparition du terme « agile »

Le terme agile apparaît dans le monde économique anglophone en 1991..

En 1991, , s’appuyant sur une vision de l'évolution continue des techniques informatiques, propose une méthode de développement rapide d’application (RAD). La structure itérative, incrémentale et adaptative de cette méthode est une base des approches agiles actuelles. Elle détermine les phases essentielles du cycle de développement et met en œuvre une adaptation permanente fondée 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).

Manifeste agile 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 créateur de Scrum et Jeff Sutherland son promoteur, , 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 meilleurs concepts de direction de projets et de développement de logiciels. De cette réunion émerge le Manifeste agile, considéré comme la définition commune des valeurs du développement agile de logiciels et de ses principes sous-jacents par les praticiens et les universitaires.

Pour décrire leur manifeste au mieux, les dix-sept signataires ont d'abord pensé au terme lightweight (léger) pour se fixer finalement sur agile (traduit à l'identique en français). D'après Fowler, ce terme traduit mieux l'aspect rapidement adaptatif de ces méthodes..

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.

Approches agiles Au sens strict Les approches pouvant être qualifiées d'agiles, depuis la publication du manifeste Agile, sont : la méthode de développement rapide d'application (1991), dite méthode RAD, de l'anglais ; la version anglaise du RAD (1995), Dynamic systems development method (DSDM) ; le framework Scrum, présenté en 1995 par Ken Schwaber, publié ensuite en 2010 par lui-même et Jeff Sutherland sous la forme du Guide Scrum. Il est composé notamment des méthodes du sprint planning, du burndown chart, des daily stand-up meeting (alias daily scrum) ; eXtreme Programming (XP), publiée en 1999 par Kent Beck ; Adaptive software development (ASD, 2000) qui reconnaît sa parenté avec RAD Développement basé sur les fonctionnalités (FDD pour feature driven development, 2003) qui reconnaît également sa parenté avec RAD Behavior-driven development (BDD, 2003) Crystal clear publiée en 2004 par Alistair Cockburn.

Limitations et extensions

Adaptatif contre prédictif Les méthodes de développement existent dans un continuum de l' adaptatif au prédictif Appendix A, pages 165–194. Les méthodes de développement logiciel selon l'approche Agile sont du côté adaptatif de ce continuum. Une clé des méthodes de développement adaptatif est l'approche de la planification en rolling wave de l'activité à venir, qui identifie des jalons ou livrables (milestones en anglais) mais laisse de la flexibilité sur le chemin pour y arriver et permet aussi au livrables ou au jalons (milestones en anglais) de changer.

La méthodes adaptatives se focalisent sur une adaptation rapide à des réalités changeantes. Quand les besoins d'un projet changent, une équipe adaptative change aussi. Pour une équipe adaptative, plus le futur est loin, plus il est difficile à prévoir.

Les méthodes prédictives se focalisent sur l'analyse et la planification du futur suffisamment détaillées pour prévoir (ou quantifier) les risques.

+ Périmètre de différentes méthodes de développement Méthodes conduites par valeur (agile) Méthodes conduites par plan (dite en cascade) méthodes formelles Criticité faible Criticité élevée Criticité Extreme Développeur Senior Développeur Junior Développeur Senior Exigences changeantes ou instables Exigences stables Nombre limité d'exigences, nombre limité de fonctionnalités, Exigences modélisable Petite équipe Grande équipe Culture réactive Culture ordonnée Qualité extrême

Exemples de pratiques agiles Intégration continue Test driven development (TDD) Conception pilotée par le domaine (DDD pour domain-driven design) Équipe transverse Programmation en binôme Planning poker Réusinage de code Timeboxing Récit utilisateur Modélisation C4 pour l'élaboration collaborative d'une architecture évolutive ou émergente Kanban

Modèles d'organisation agiles à grande échelle

Afin de pouvoir mener un (très) gros projet ou un portefeuille de projets nécessitant plusieurs équipes agiles, différents modèles d'organisation agiles à grande échelle ont vu le jour.

En voici la liste :

le scaled agile framework (SAFe).. le framework Large-Scale Scrum (LeSS).. le framework Scrum@Scale.. le modèle Spotify..

Entreprise agile Une entreprise agile est une entreprise disposant d’une culture et de pratiques issues ou inspirées des approches agiles, lui offrant une grande capacité d’adaptation à son environnement.

Dans un monde devenant de plus en plus complexe et incertain, cette capacité d’adaptation fait l'objet d'un précieux levier de croissance ou de survie pour de plus en plus d’entreprises.

Les principales caractéristiques communes aux entreprises agiles sont les suivantes :

Les processus de travail sont concrètement centrés sur la satisfaction des clients. L’échec est considéré comme une source d’apprentissage et d’innovation (en ayant recours à des approches surnommées et par exemple). Les équipes sont auto-managées (au sein d’un cadre de travail structuré) afin de mettre à profit l’intelligence collective et renforcer l’engagement des collaborateurs. Elles sont également pluridisciplinaires afin d’optimiser leur efficacité et leur réactivité.

Les entreprises agiles parviennent ainsi à réaliser des produits ou services innovants faisant l'objet d'un haut niveau de satisfaction, tout en réduisant les coûts et délais de production.

Voici ci-dessous plusieurs sources d'auteurs différents permettant d'appréhender davantage ce modèle d'entreprise :

Livre blanc Entreprise Agile. publié en 2015 par le cabinet de conseil Deloitte Livre Devenir une Entreprise Agile. publié en 2017 par Florent Lothon et Jérôme Carfantan Article Qu’est-ce qu’une entreprise agile ?. publié en 2020 par Harvard Business Review France. Livre blanc Devenir une Entreprise Agile. publié en 2021 par Ludovic Cinquin

Critiques Parmi les 17 signataires du manifeste agile, certains ont depuis émis des critiques non sur les principes Agiles, mais sur leur mise en pratique.

Ron Jeffries. montre plusieurs problèmes : le dévoiement des approches agiles, notamment à des fins commerciales ;