Aller au contenu

Gestion de projet: L’utilité de la méthode Agile

  • par
agile

Il est important de comprendre que l’utilisation de la méthode Agile ne signifie pas que nous serons moins efficaces qu’avec les méthodes traditionnelles de gestion de projet (waterfall), mais plutôt que nous serons plus efficaces ! En mesurant les résultats à chaque moment du projet au lieu d’attendre la fin, nous pouvons adapter rapidement nos actions à la situation actuelle.

Pourquoi recourir à une méthodologie de gestion de projet ?

La raison fondamentale est que tous les projets sont très semblables les uns aux autres, indépendamment de leur taille ou de leur complexité, et qu’ils partagent de nombreuses caractéristiques communes (voir encadré 2). En tant que tels, ils peuvent être gérés à l’aide de méthodes standard qui ont prouvé leur efficacité au fil du temps et dans différentes situations et environnements (voir encadré 3).

La raison fondamentale est que tous les projets sont très similaires les uns aux autres, indépendamment de leur taille ou de leur complexité, et qu’ils partagent de nombreuses caractéristiques communes.

Comme mentionné ci-dessus, les méthodologies de gestion de projet sont basées sur la théorie de la gestion de projet et sur l’analyse des problèmes rencontrés par les entreprises au cours du processus de développement de produits et de services (voir encadré 4). Ces méthodologies sont également connues sous le nom de méthodologies de gestion de projet car elles offrent une approche structurée de la planification, du contrôle et du suivi des projets (voir encadré 5). La plupart des organisations adoptent une ou plusieurs de ces méthodologies en raison de la nécessité de garantir une gestion de projet efficace, soit pour améliorer l’efficacité, soit pour se conformer aux exigences réglementaires (par exemple, ISO 9000:2000).

Les projets sont souvent complexes et impliquent un large éventail de personnes, de ressources et d’activités.

Fonctionnement de la méthode Agile

L’idée de base des méthodes de développement agiles est de commencer par une petite partie de la fonctionnalité, puis de l’étendre progressivement jusqu’à ce que nous ayons terminé l’ensemble – c’est ce qu’on appelle le « développement agile » ou « rapide » (par opposition à la méthode plus traditionnelle dite « en cascade »). Si vous n’avez jamais entendu parler du développement logiciel agile, vous serez peut-être intéressé par mon précédent article sur le fonctionnement du développement agile et les raisons pour lesquelles il peut vous aider à obtenir de meilleurs résultats que les méthodes traditionnelles de développement en cascade :

Dans cet article, je vais essayer d’expliquer ce qu’est le développement agile en général et en quoi il diffère du modèle traditionnel de gestion de projet « waterfall », comment le développement agile a évolué au fil des ans (ce n’est pas toujours aussi clair) et quels avantages le développement agile nous apporte par rapport au développement traditionnel « waterfall » (et pourquoi certaines entreprises n’utilisent pas le développement agile pour leurs projets).

Quelles sont les principales méthodes Agile ?

Scrum : Terme utilisé par l’équipe de mêlée et le propriétaire du produit pendant la phase de planification de chaque sprint ou itération (période d’une semaine). Cette méthodologie a été créée par Jeff Sutherland avec Ken Schwaber, après avoir étudié le développement de produits logiciels dans des environnements ouverts comme le programme Apollo de la NASA ou le grand collisionneur de hadrons (LHC) du CERN. Elle a été développée par Jeff Sutherland et Ken Schwaber en réponse aux problèmes qu’ils avaient rencontrés lorsqu’ils travaillaient respectivement pour le programme Apollo de la NASA à Houston et pour le LHC du CERN à Genève, où les pratiques de gestion de projet n’étaient pas adaptées aux réalités de ces projets complexes impliquant de nombreuses personnes, réparties dans le monde entier, avec des changements fréquents de priorités et d’exigences, et où les développeurs pouvaient être éloignés de quelques jours à plusieurs mois de leur ordinateur et du reste de l’équipe de développement (voir aussi « Loi de Sutherland »).

L’idée sous-jacente à cette méthodologie est que, contrairement aux modèles traditionnels de gestion de projet, il ne devrait pas y avoir de bureaucratie ou de frais généraux dans le processus ; c’est un modèle plus léger et plus efficace.

La méthode XP vise à produire un système logiciel simple, autonome, reproductible et fiable par l’utilisation d’une série d’étapes de conception et de mise en œuvre incrémentales, chaque étape s’appuyant sur la précédente et améliorant la qualité globale du système produit, contrairement au modèle de développement en cascade où le système entier doit être conçu avant d’être construit (voir « Modèle en cascade » et « Programmation extrême »). Ces étapes sont mises en œuvre dans une série d’itérations (sprints) d’une durée d’une semaine ou moins, au cours desquelles l’équipe travaille ensemble pour construire le logiciel de manière incrémentielle (voir « Développement itératif ») et teste le logiciel résultant par rapport aux objectifs fixés avant de le mettre en production (voir « Intégration continue »).

Bien qu’il s’agisse d’une forme extrême de développement logiciel agile, il diffère considérablement des méthodes agiles à certains égards :

La principale différence entre XP et les autres formes de développement agile est que XP met l’accent sur la nature itérative du travail, plutôt que sur sa durée, contrairement à Scrum ou Kanban, qui mettent l’accent sur la longueur d’un cycle de développement (qui peut durer des semaines, voire des mois), mais pas sur le fait que les cycles se produisent régulièrement et en continu (voir « Développement agile » et « Livraison continue »).
Un autre aspect important de XP est qu’il exige des développeurs qu’ils comprennent l’importance d’avoir une bonne architecture, et donc la nécessité de « concevoir d’abord ». Cela contraste avec d’autres méthodologies agiles, telles que le développement agile de logiciels, la programmation extrême et Scrum, qui encouragent les équipes à écrire d’abord le code, puis à ajouter seulement les détails architecturaux à ce qui a déjà été écrit.