Sur quelles méthodes de gestion de projet m’appuyer pour structurer mon projet ?

Voici des méthodologies populaires, avec leurs forces (+) et faiblesses (-).

Agile
La gestion de projet Agile consiste à fragmenter un projet en petits morceaux qui peuvent être complétés, testés, polis et livrés séparément les uns des autres. Les membres de l’équipe projet et les parties prenantes (stakeholders) doivent absolument collaborer sans interruption. Les développeurs informatiques travaillent souvent en Agile. D’autres méthodologies comme Scrum, Lean, Kanban et Six Sigma reposent sur des fondations Agile. La méthodologie a été développée par un groupe de personnes qui pensaient que les méthodes traditionnelles et linéaires comme Waterfall étaient trop rigides pour le développement de logiciels. Ses valeurs et ses principes ont été présentés dans le Manifeste Agile.

+ Flexible, très adaptable aux changements du produit.
+ Comme vous pouvez modifier le projet en cours de route, il est plus facile d’ajouter les dernières fonctionnalités du moment.
+ Moins de défauts dans le produit final.

– Il faut faire monter en compétence les membres de l’équipe sur le processus Agile choisi.
– Risque de glissement de portée (scope creep) – la flexibilité d’Agile et l’absence d’un plan définitif pour le projet peuvent éloigner votre projet de l’idée initiale.
– Manque de documentation de projet, en raison du manque d’accent sur les processus et de l’exigence d’une réponse rapide au changement.

Scrum
Le scrum c’est, en anglais, la mêlée du rugby. Scrum combine des aspects de méthodes traditionnelles (Waterfall) et d’Agile (dont il est dérivé). Ses règles, formalisées d’abord pour les projets de développement de logiciels, fonctionnent pour tout produit complexe, innovant ou nouveau. Comme Agile, la méthode fragmente le projet, ici en petits cycles indépendants appelés sprints. Les membres de l’équipe, dirigés par un scrum master, se rencontrent quotidiennement (scrum quotidien) pour discuter des progrès. Chaque sprint consiste en périodes de deux à quatre semaines visant à livrer une partie du projet. Les participants se partagent trois rôles: le directeur du produit (product owner, il représente l’entreprise), l’animateur de projet (scrum master) et l’équipe (qui exécute le projet). Scrum fonctionne mieux pour les petites équipes.

+ Les frais généraux liés à l’administration et à l’encadrement sont minimes, ce qui conduit à un résultat plus rapide et moins coûteux.
+ Les nouveaux développements peuvent être testés rapidement et les erreurs sont corrigées immédiatement.
+ Peut entraîner des revenus plus élevés, puisque la méthode de livraison incrémentale raccourcit le délai de mise sur le marché.
+ Les réunions quotidiennes offrent une visibilité claire du développement du projet et permettent de mesurer la productivité individuelle.

– Propice au glissement de portée (scope creep) – les exigences peuvent changer fréquemment.
– Les réunions quotidiennes de scrum et les revues de projet fréquentes accaparent des ressources.
– La livraison d’un projet dans les temps nécessite une équipe engagée et expérimentée.

Lean
Agile fragmente le projet en petites parties et Scrum améliore cette idée avec des réunions régulières pour mieux gérer le processus. Ces méthodes ne garantissent pas une livraison standardisée et de haute qualité. C’est là qu’intervient la méthode Lean (du mot anglais pour mince), qui est un ensemble de principes pour aboutir à un résultat de qualité, rapidement et en concordance avec les clients du projet. Lean propose des flux de travail (workflows) qui garantissent que toutes les pièces livrées séparées sont de la même qualité, en éliminant les retards et les gaspillages qui pourraient détourner l’attention de l’équipe. Chaque petite partie autonome de votre projet se voit affecter un flux de travail avec des instructions claires sur la façon de procéder.

+ L’élimination des déchets entraîne une efficacité globale qui accélère le processus de développement et réduit le temps et le coût du projet.
+ Produit de qualité supérieure, donc satisfaction accrue du client.
+ Crée des équipes motivées : les membres de l’équipe sont encouragés à prendre des décisions, plutôt que de se les voir imposer.

– Nécessite de la discipline de la part des membres de l’équipe.
– S’appuie sur une prise de décision rapide et résolue, le but ultime étant d’obtenir un résultat plus rapide et moins coûteux.
– A cause de la grande flexibilité, les membres de l’équipe peuvent perdre les objectifs initiaux de vue.

Programmation Extrême (XP)
Extreme Programming (XP), développé par l’ingénieur logiciel Kent Beck, est adapté à des équipes devant gérer des besoins changeant rapidement. Dans XP, chaque projet est divisé en mini-projets et suit des pratiques similaires à d’autres méthodologies Agile, mais à un niveau extrême. D’autres éléments de XP comprennent: l’écriture de code simple; des programmeurs travaillant en binôme; s’abstenir de développer des fonctionnalités tant qu’elles ne sont pas nécessaires; et l’interaction régulière avec le client.

+ XP insiste sur la simplicité, et est donc efficace et assure la qualité du rendement.
+ Nécessite un haut niveau de collaboration entre le client et les membres de l’équipe de projet, ce qui réduit l’apparition de problèmes.
+ La programmation par paires réduit la dépendance aux individus.

– Il y a un risque de glissement de portée du projet si celui-ci n’est pas géré correctement.
– La programmation par paires peut entraîner la duplication des données et du code.
– Convient mieux aux petites équipes.

Waterfall
Waterfall est un processus de conception séquentielle dans lequel le progrès est perçu comme s’écoulant régulièrement vers le bas (comme une chute d’eau, waterfall en anglais) à travers les phases. Les équipes travaillent phase par phase, avec des objectifs clairement définis et un calendrier établi, accomplissant une tâche avant de passer à la ligne suivante. Vous ne pouvez pas revenir en arrière une fois que la phase est terminée et il n’y a de place ni pour le changement ni pour l’erreur.

+ Met l’accent sur la tenue méticuleuse de documentation, au plus grand bénéfice des projets futurs.
+ Vous savez à quoi vous attendre, et donc vous avez une idée claire du coût et du calendrier pour le projet ainsi qu’une idée précise de ce que le produit final sera.
+ Peu affecté par les changements dans les membres de l’équipe, grâce à la documentation solide.

– Peu de flexibilité : vous ne pouvez pas revenir en arrière pour faire des changements une fois qu’une étape est réalisée.
– S’appuie fortement sur les documents de conception initiaux, lesquels, si défectueux, peuvent mettre en péril le projet.
– Le produit entier n’est testé qu’à la fin.
– Il est coûteux d’intégrer l’évolution des besoins.