Que sont les méthodologies agiles ?

Que signifie exactement l'expression « pensée agile » pour les équipes de développement logiciel ? L'agilité est-elle synonyme de Scrum ou de Kanban ? Quelle est la place des différents outils logiciels agiles dans ce débat ? Pour commencer, la méthodologie agile est le concept générique qui englobe tous les cadres et outils. Dans cet article, nous détaillerons l'essence de l'agilité, son histoire et les cadres spécifiques à privilégier pour adopter ses principes au sein de votre organisation.

Que sont les méthodologies agiles ?

En matière de processus et de principes de développement logiciel, on peut considérer l'approche « agile » comme notre boussole, le système vasculaire d'une équipe hautement performante et centrée sur l'humain. C'est le terme générique qui englobe tous les autres processus. De plus, Idéaux et principes agiles Ce sont les environnements dans lesquels fonctionne le DevOps, et à travers lesquels les méthodologies Scrum et Kanban s'unissent.

La méthodologie Agile est guidée par des valeurs et des principes qui visent certes à produire un produit fonctionnel et efficace par petites itérations, mais qui mettent surtout l'accent sur l'importance des capacités humaines, telles que l'adaptabilité et la communication, au sein d'une équipe interdépendante.

Aujourd'hui, la méthodologie Agile est devenue si populaire qu'en 2020, 95 % des personnes interrogées dans le 15e rapport sur l'état de l'agilité Leurs organisations ont déclaré pratiquer les méthodes de développement Agile.

Bref historique de la méthode Agile

La méthodologie Agile est née des échecs de la méthode en cascade, conjugués à un marché en pleine croissance et de plus en plus concurrentiel. La méthode en cascade est un processus linéaire de A à B, dans lequel les analystes métiers rédigent la stratégie et la transmettent aux technologues, qui traduisent le jargon métier en structures de données, interfaces utilisateur et diverses exigences non fonctionnelles. Enfin, ce cahier des charges est remis aux développeurs (dernière étape du processus en cascade), qui entament le codage et l'intégration.

Bien qu'ayant constitué une révolution initiale dans le secteur, la méthode en cascade, malgré ses bonnes intentions, s'est transformée en un processus cloisonné et frustrant, surtout avec l'avènement d'Internet et des télécommunications qui ont ouvert de nouvelles perspectives. En 2001, lassés de cette approche verticale et rigide face à un marché en mutation si rapide qu'ils évoluaient plus vite qu'eux, 17 experts en technologies se sont réunis dans l'Utah et ont élaboré le Manifeste Agile que nous connaissons aujourd'hui.

Qu'est-ce que le Manifeste Agile ?

Le Manifeste Agile, présent sur Internet, a servi de référence à des dizaines de méthodologies adaptées, que nous aborderons plus loin. Dans ce manifeste, les auteurs définissent l'agilité en quatre valeurs et douze principes clés. Nous détaillons chaque composante ci-dessous.

Les quatre principales valeurs de l'agilité

  • Les individus et leurs interactions plutôt que les processus et les outils
  • Logiciel fonctionnel avec documentation complète
  • Collaboration avec le client plutôt que négociation de contrat
  • Réagir au changement plutôt que de suivre un plan

Douze principes clés de l'agilité

  • La priorité absolue est la satisfaction du client grâce à une livraison de produits rapide et continue.
  • Fournir fréquemment des logiciels fonctionnels, à des intervalles allant de quelques semaines à quelques mois, en privilégiant toutefois les délais les plus courts.
  • Accueillez favorablement les changements d'exigences, même tardifs dans le développement.
  • Collaboration quotidienne entre les équipes
  • Offrez à l'équipe un environnement de travail favorable et faites-lui confiance pour qu'elle s'autogère et accomplisse sa tâche.
  • Les meilleures architectures, exigences et conceptions émergent d'équipes auto-organisées.
  • La conversation en face à face est le moyen le plus efficace de transmettre des informations (*Cela inclut désormais les appels vidéo.)
  • Le logiciel fonctionnel est la principale mesure du progrès
  • Les processus agiles favorisent un développement durable à un rythme constant.
  • Une attention constante portée à l'excellence technique et à la qualité de la conception renforce l'agilité.
  • Faites simple
  • L'équipe se réunit pour discuter des ajustements et des optimisations à effectuer afin d'améliorer l'efficacité.

Cadres agiles

Scrum

Scrum est un cadre agile aidant les équipes à collaborer dans le cadre de rôles, de règles et d'artefacts attribués tout au long d'une série de quatre événements : Planification du sprint Scrum comprend la réunion quotidienne (Daily Standup), la revue d'itération et la rétrospective. Sa grande adaptabilité à chaque secteur d'activité en fait l'un des choix les plus populaires pour les équipes. Bien que son processus soit structuré en rôles et en échéances, l'équipe, accompagnée par un Scrum Master, peut choisir le style de communication ou le processus le plus adapté à son secteur et à sa dynamique pour chaque événement. amélioration continue Une fois que les équipes maîtrisent le cadre Scrum, elles commencent généralement à enfreindre les « règles » et à apporter des modifications pour l'adapter à leur propre style. Par exemple, une l'équipe de PagerDuty elle s'appuie sur des théories en psychothérapie, en tant que modèle rétrospectif, pour mieux se comprendre et comprendre comment leur produit interagira avec le monde.

Kanban

Les équipes peuvent se tourner vers Kanban lorsqu'elles reçoivent un afflux important de demandes de travail de longueur et de taille variables. À l'instar de Scrum, Kanban est un cadre de travail collaboratif, mais contrairement à Scrum, son processus ne définit pas de rôles précis, permet des modifications à tout moment et encourage un rythme de travail continu et des livraisons de produit régulières. Fruit de la collaboration entre Jim Benson et David Anderson, Kanban permet aux équipes de s'adapter rapidement et de travailler en toute liberté ; un peu comme le baba cool du groupe, en quelque sorte.

Les principaux objectifs de Kanban sont d'offrir une visualisation optimale et de réduire le travail en cours (WIP) tout en favorisant un mouvement continu. L'outil central est le tableau Kanban, qui divise le travail en cinq composantes :

  • Signaux visuels
  • Colonnes
  • Limites des travaux en cours
  • Un point d'engagement
  • Un point de livraison.

L'équipe déterminera ensuite la qualité selon différents critères. métrique .

Programmation extrême (XP)

L'Extreme Programming (XP) est un framework de développement logiciel agile qui vise à améliorer la qualité de vie des développeurs et la qualité des produits. Comme l'explique Don Wells, XP n'est pas conçu pour les grandes équipes ; il recommande des équipes de 2 à 12 personnes pour un succès optimal. À l'instar des valeurs du Manifeste Agile, XP s'appuie sur la dimension humaine du travail d'équipe avec des valeurs fondamentales telles que la communication, la simplicité, le feedback, le courage et le respect, ainsi qu'une série de « pratiques clés » adaptables aux différentes dynamiques d'équipe. Par exemple, les membres participent au Planning Game, un jeu de planification où ils imaginent diverses itérations et versions pour orienter le processus (similaire à la planification de sprint dans Scrum).

Méthode de développement logiciel dynamique (DSDM)

Créé en 1994 suite à la demande de chefs de projet utilisant le RAD (Développement Rapide d'Applications) pour plus de structure et de rigueur, DSDM est un cadre agile axé sur le cycle de vie du produit. Sa philosophie stipule que « tout projet doit être aligné sur des objectifs stratégiques clairement définis et viser à apporter rapidement des bénéfices concrets à l'entreprise ». Similaire à Scrum, DSDM est un processus interactif composé de huit principes et de quatre étapes : étude de faisabilité et analyse métier, itération de prototypage, conception, itération de développement et implémentation. Il s'agit peut-être du cadre agile le plus rigide, car les délais sont très fixes, bien que flexibles.

Cadre de projet adaptatif (APF)

En 2010, Robert K. Wysocki, expert reconnu en gestion de projet stratégique, a publié l'ouvrage « Adaptive Project Framework: Managing Complexity in the Face of Uncertainty » (Cadre de projet adaptatif : gérer la complexité face à l'incertitude), dans lequel il définit l'approche AFP. Également connue sous le nom de gestion de projet adaptative (GPA), l'AFP est une méthode agile permettant aux équipes d'anticiper et de gérer les difficultés et les perturbations tout au long de son processus par phases. Elle privilégie une approche d'apprentissage par la pratique, similaire à… livraison continue L’accent est mis sur un point précis : les ajustements sont effectués en temps réel en fonction des échanges entre les équipes et les parties prenantes tout au long du processus, et non par des « corrections » de dernière minute. En effet, APF exige l’implication du client ou du consommateur dans le processus du début à la fin.

Le processus se déroule en plusieurs phases, notamment la définition du périmètre de la version — l'énoncé de présentation du projet (POS) qui résume le CdS, décrit ce qui sera réalisé et comment, et énumère en outre les défis potentiels — un plan de cycle, le cycle, le point de contrôle du client et la revue de version.