Chapitre 7 : La Gestion de Projet, l’approche classique vers l’approche Agile
Introduction
La gestion de projet est une démarche visant à organiser, du début à la fin, le bon déroulement d’un projet. En début de projet, la première étape est d’essayer de tout prévoir :
La description de ce qu’on va livrer, Comment on va le faire, Les problèmes qui peuvent intervenir, la façon de les résoudre, La date de chaque évènement en intégrant une marge d’erreur calculée à l’avance.
I.
L’approche classique
Depuis toujours, les projets sont gérés avec la méthode dite « classique » qui se caractérise par recueillir les besoins, définir le produit, le développer et le tester avant de le livrer. On parle alors ici d’une approche prédictive « cycle en cascade »
Comme son nom l’indique, il s’agit ici de prévoir des phases séquentielles où il faut valider l’étape précédente pour passer à la suivante. Le chef de projet doit alors s’engager sur un planning précis de réalisation du projet en prévoyant des jalons de débuts et fins de phases ainsi que les tâches à effectuer. Une décision ou un problème rencontré dans une phase peuvent remettre en cause partiellement ou totalement les phases précédentes validées.
Dans un cycle « en cascade » les risques sont détectés tardivement puisqu’il faut attendre la fin du développement pour effectuer la phase de test. Plus le projet avance, plus l’impact des risques augmente : il sera toujours plus difficile et coûteux de revenir en arrière lorsqu’on découvre une anomalie tardivement. Afin d’anticiper au mieux ces risques il est nécessaire de produire des documents très détaillés en amont (recueil des besoins, cahier des charges, etc…) qui seront validés par le client.
Au final, du point de vue du client, c’est le chef de projet qui aurait dû anticiper ce problème alors qu’il est impossible de tout prévoir à l’avance surtout dans un environnement instable qui évolue constamment où il y a sans cesse de nouvelles technologies qui font leur apparition.
Par conséquent, comment peut-on augmenter la satisfaction du client en facilitant la gestion de projet et en améliorant la qualité de développement ? Comment mieux s’adapter aux imprévus du projet ?
II.
L’approche Agile
Le terme "agile" définit une approche de gestion de projet qui prend le contre-pied des approches traditionnelles prédictives et séquentielles de type cycle en V ou en cascade. La notion même de "gestion de projet" est remise en question au profit de "gestion de produit". De façon à raisonner davantage "produit" que "projet". L'objectif d'un projet consiste bien à donner naissance à un produit.
L'approche Agile propose, contrairement à l’approche traditionnelle qui constate souvent un déphasage entre le besoin initial et l'application réalisée, de réduire complètement cet effet en donnant davantage de visibilité, en impliquant le client du début à la fin du projet et en adoptant un processus itératif et incrémental. Elle considère que le besoin ne peut être figé mais propose de s'adapter aux changements de ce dernier avec un minimum de règles.
L'approche Agile possède 4 valeurs essentielles :
Communication: Les interactions entre les équipes chargées du projet sont
primordiales.
Changement: Le prestataire est ouvert à tous changements et modifications au cours
Publicité
du déroulement du projet.
Collaboration: les relations avec le client ne reposent pas sur un contrat mais sur une volonté des parties à collaborer ensemble pour répondre aux besoins précis du client.
Fonctions opérationnelles: livrer au client un produit opérationnel.
1. Fonctionnement des méthodes Agiles
Les méthodes agiles partent du principe que spécifier et planifier dans les détails l'intégralité d'un produit avant de le développer (approche prédictive) est contre productif.
Les méthodes agiles utilisent un principe de développement itératif qui consiste à découper le projet en plusieurs étapes qu’on appelle « itérations ». Ces itérations sont en fait des mini-projets définis avec le client en détaillant les différentes fonctionnalités qui seront développées en fonction de leur priorité. Le chef de projet établi alors un macroplanning correspondant aux tâches nécessaires pour le développement de ces fonctionnalités.
Le but est d’assumer le fait que l’on ne peut pas tout connaître et anticiper quelque soit notre expérience.
On découpe alors le projet en itérations plutôt que de tout prévoir et planifier sachant que des imprévus arriveront en cours de route.
Les
avantages
du
développement
itératif
sont
:
Meilleure qualité de la communication : L’utilisateur à la possibilité de clarifier ses
exigences au fur et à mesure,
Meilleure visibilité : Le client a une meilleure visibilité sur l’avancement des travaux, Meilleur contrôle de la qualité : les tests sont effectués en continu, Meilleure détection des risques : Les risques sont détectés plus tôt, Motivation et confiance de l’équipe : satisfaction d’atteindre un objectif fixé, Contrôle des coûts : le projet peut être arrêté s’il n’y a plus de budget.
2. Principes des méthodes Agiles
Publicité
Les principes des méthodes agiles sont :
La satisfaction client. Voir le changement comme un avantage concurrentiel (Et toujours accepter les
changements même tardivement dans le projet).
Remettre au client des versions opérationnelles du produit le plus régulièrement
possible.
Collaboration constante au sein des équipes de travail et entre le client. Le projet ne peut se faire qu’avec des personnes motivées et soudées. Favoriser les échanges en face à face, plus simple et efficace pour transmettre les
informations.
L’avancement du projet peut se mesurer grâce à un logiciel opérationnel. Le projet doit se construire autour d’un rythme soutenable et constant. Porter une attention toute particulière à l’excellence technique et à une bonne
conception.
Favoriser la simplicité en limitant au maximum le volume de travail sans intérêts. Encourager les équipes auto organisées qui produisent une meilleure conception,
architecture et spécification.
Réflexion constante de
l’équipe pour améliorer son efficacité en ajustant
régulièrement son comportement.
3. Les principales méthodes Agile a) ASD (Adaptive software Development)
Créée par Jim Highsmith en 2000. Ses caractéristiques principales sont :
Se focaliser sur l’objectif, Se baser sur des composants,
Itérer,
Découper le temps et fixer des deadlines, Piloter le projet par les risques, Accepter le changement.
Publicité
b) Crystal
Cette méthode a été mise au point par Alistair Cockburn en 1997. Elle consiste à sélectionner la méthode applicable en fonction du nombre de personnes à coordonner. Ses caractéristiques principales sont :
Des livraisons fréquentes, Des aménagements permanents, Une bonne communication interpersonnelle, Confiance, liberté d’expression et sécurité personnelle, Focus sur l’objectif et disponibilité, Un contact permanent avec les utilisateurs, Un environnement de travail approprié pour l’automatisation des tests, la gestion de
configuration et les intégrations fréquentes,
Une collaboration étroite entre toutes les parties prenantes, y compris en dehors de
l’équipe,
Une réflexion constante sur ces propriétés.
c) Scrum
Le Scrum ou « mêlée », créée par Ken Schwaber et Jeff Sutherland en 1993, est un terme emprunté au rugby qui désigne la solidarité et la force qui lient les membres de l’équipe au succès de l’itération. Le cycle de vie de Scrum est rythmé par des itérations de quatre semaines qu’on appel sprints.
Avant chaque sprint, on effectue une réunion de planification appelée le sprint planning meeting qui consiste à sélectionner le client dans le produit backlog qui seront développées, testées et livrées au client : le backlog sprint (sous-ensemble du produit backlog).
les exigences prioritaires pour
Des mêlée sont organisées quotidiennement (mêlée) durant le sprint afin de contrôler l’avancement pour s’assurer les objectifs sont tenus. A la fin du sprint, une démonstration des derniers développements est faite au client qui donnera lieu à un bilan qualitatif sur le fonctionnement de l’équipe. Les valeurs mises en avant par cette méthode sont les suivantes :
Visibilité : Avoir une vision réelle sur le résultat Adaptation : S’adapter en fonction des écarts constatés afin de les ajuster. Scrum est
Inspection : Vérifier l’écart par rapport à l’objectif initial
favorable à des petits ajustements fréquents