Connexion / Inscription Account

DevOps

La méthode agile, qu'est-ce que c'est ?

Jump to section

La méthode agile est une approche du développement logiciel dont l'objectif est de distribuer en continu des logiciels opérationnels créés sur la base d'itérations rapides. 

Cependant, l'expression « méthode agile » est trompeuse, car elle implique que l'agilité est une approche spécifique au développement logiciel. Il ne s'agit pas d'un ensemble de prescriptions qui déterminent précisément les actions à effectuer pour le développement logiciel. Il s'agit plutôt d'une façon d'envisager la collaboration et les workflows, avec un ensemble de valeurs destiné à orienter nos choix concernant ce que nous faisons et comment nous le faisons.

Concrètement, les méthodes de développement de logiciels agile sont axées sur la distribution rapide de petites parties de logiciels opérationnels pour améliorer la satisfaction client. Elles se basent sur une approche qui encourage l'adaptation et le travail d'équipe pour favoriser l'amélioration continue. En général, le développement logiciel agile implique la réunion régulière et en personne de petites équipes autonomes de développeurs logiciels et de représentants métier tout au long du cycle de vie. La méthode agile privilégie une approche simplifiée plutôt que la documentation logicielle et favorise les changements à toutes les étapes du cycle de vie, au lieu d'y faire obstacle.

 

Valeurs de la méthode agile

La méthode agile telle que nous la connaissons aujourd'hui a vu le jour en 2001. En réaction aux approches en cascade de la gestion de projets, qui organise un projet logiciel comme une série de séquences linéaires, un groupe de développeurs logiciels a rédigé un manifeste pour une méthode de développement logiciel agile. Dans ce document, les programmeurs proposaient une nouvelle approche pour le développement logiciel et décrivaient quatre caractéristiques clés qui, d'après eux, devaient être privilégiées. Voici l'ordre de priorité que les équipes de développement agile de logiciels devraient suivre :

  • 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

Les auteurs ont précisé que tous les éléments de la liste ci-dessus ont une certaine valeur. Toutefois, ils considèrent qu'en apportant une attention particulière aux éléments de la partie gauche (en gras) par rapport à ceux de la partie droite, vous pouvez optimiser le développement des produits. Le manifeste de la méthode agile ne vise pas à préconiser un ensemble de pratiques. Il s'agit de conseils pour envisager le développement logiciel d'un point de vue nouveau.

Ce manifeste a fait émerger de nombreuses pratiques. Par exemple, au lieu de développer des logiciels de façon séquentielle, une phase après l'autre, comme le veut la méthode en cascade pour assurer la qualité du produit, il est possible de suivre une méthode agile pour favoriser la simultanéité et la continuité des phases de développement et de test. En d'autres termes, dans un processus de développement en cascade, une phase entière doit être terminée avant de passer à la suivante, alors qu'avec une méthode agile, plusieurs phases peuvent être effectuées en même temps. 

 

Petite histoire de la méthode agile

Les approches agiles ont été créées pour pallier les limites de la méthode en cascade, elle-même dérivée de la méthode de fabrication sur la chaîne d'assemblage qu'Henry Ford a mise en place en 1913 et qui a été appliquée plus tard au développement logiciel. Depuis ses débuts en 2001, la méthode agile s'est développée sous diverses formes dans le secteur logiciel et la gestion de projets.

Tout a commencé lorsque de nombreux développeurs logiciels ont peu à peu remarqué que les cycles de production et les méthodes de collaboration en cascade n'apportaient pas les résultats escomptés. Ce problème était devenu omniprésent vers le début des années 1990. Plusieurs années pouvaient alors s'écouler entre l'identification d'un besoin métier et la distribution d'une application opérationnelle. À cette époque, les marchés et les demandes des entreprises évoluaient tellement rapidement que des pans entiers de certains projets logiciels pouvaient être annulés avant même leur distribution. Cette perte de temps et de ressources a poussé de nombreux développeurs logiciels à chercher une autre solution.

Face à la menace d'un bouleversement, de plus en plus d'entreprises adoptent des stratégies de transformation numérique pour suivre le rythme en pleine accélération de leur activité. Dans ce cas, la mise en place d'un processus de développement logiciel agile peut souvent se révéler positive.

De nos jours, la méthode agile est à la base de nombreux workflows numériques. Le cloud computing, avec son infrastructure informatique flexible et évolutive, s'est développé parallèlement aux attentes en matière de développement logiciel agile. Dans le développement d'applications cloud-native, les logiciels sont considérés comme une série de services interconnectés qui évoluent pour répondre aux besoins des entreprises, de manière agile.

Le DevOps en tant que concept fait tomber le mur ancestral entre le développement logiciel et l'exploitation. La SRE, une mise en œuvre de l'approche DevOps, utilise des logiciels pour gérer des systèmes et automatiser des tâches liées à l'exploitation.Les méthodes CI/CD tiennent compte de la nature évolutive des logiciels et fournissent aux développeurs des outils pour accélérer le déploiement de nouveaux codes.

Comme vous l'avez probablement remarqué, le concept de « méthode agile » est en soi une notion agile qui répond aux attentes des clients (à savoir les développeurs logiciels) dans une période en pleine évolution. Gardez cela en tête lorsque vous lirez la brève présentation ci-dessous des divers frameworks agiles, qui portent différents noms et varient souvent d'une mise en œuvre à une autre.

 

Frameworks agiles

Les frameworks agiles pour le développement logiciel, tels que Scrum, Kanban ou XP (eXtreme Programming), constituent la base des processus de développement logiciel les plus utilisés, comme la méthode DevOps ainsi que l'intégration continue et le déploiement continu (CI/CD).

Le framework Scrum est peut-être le plus utilisé aujourd'hui, mais tous les frameworks agiles ne sont pas des structures Scrum, et inversement. Scrum permet de gérer des tâches conçues pour de petites équipes pluridisciplinaires de 5 à 9 personnes qui découpent leur travail en actions réalisables dans un délai cohérent appelé « sprint ». Les équipes Scrum sont composées de membres, d'un Scrum Master et d'un responsable produit. En général, ce framework est mis en œuvre lorsqu'un grand projet peut être réparti en sprints de 2 à 4 semaines. Un élément clé du framework Scrum est la « rétrospective », c'est-à-dire une réunion qui permet à chacun de donner son point de vue. Sa devise pourrait être « inspecter et adapter ».

D'autres frameworks agiles, en particulier Kanban, sont antérieurs au manifeste agile. Ils sont toutefois considérés comme étant agiles, car ils partagent les valeurs décrites dans le manifeste. Il existe tant de frameworks agiles et d'approches agiles de l'évolutivité qu'il est impossible de tous les énumérer ici.