Skip links

Les méthodes agiles en gestion de projet web

Les méthodes agiles visent à répondre aux défis de notre époque : la livraison d’une solution qualitative, dans des délais courts. De plus en plus d’entreprises adoptent donc la gestion de projet agile. Qu’est-ce que l’approche agile exactement ? Comment s’appliquent les méthodes agiles en gestion de projet web ? Vous trouverez dans cet article les réponses à vos questions, ainsi qu’une présentation détaillée de la méthode SCRUM.

Les méthodes agiles, c’est quoi ?

Les premières méthodes agiles sont apparues sous cette terminologie en 2000, mais existent en réalité depuis les années 1980. Plusieurs ouvrages fondamentaux ont été publiés à ce sujet. Ces publications régulières présentent des modifications adaptées aux nouvelles technologies, à l’évolution du marché, etc. Aujourd’hui, les sociétés de développement web et informatique sont confrontées à une concurrence rude, une forte instabilité des demandes, et surtout, une pression constante pour atteindre des délais de livraison toujours plus courts.

« L’agilité est la capacité à produire des produits ou services en procurant régulièrement de la valeur, tout en répondant aux changements dans un environnement incertain et turbulent. »

Claude Aubry, spécialiste de l’agilité et de la méthode SCRUM

Les méthodes agiles renvoient donc à une nouvelle manière de développer des projets, produits ou services, qualifiées d’itératives, encourageant l’adaptation au changement. Bien que les méthodes agiles ont évolué au fil du temps, elles reposent toujours sur quatre valeurs fondamentales. Elles figurent dans le Manifeste Agile écrit en 2001 par les promoteurs américains des méthodes agiles

  • Individus et interactions prévalent sur les processus et les outils.
  • Un logiciel qui marche a plus de valeur qu’une documentation complète
  • La collaboration avec le client prévaut sur ce qui a été négocié contractuellement.
  • Répondre aux changements plutôt que de suivre le plan.

Nous y reviendrons plus en détail par la suite. Les principaux objectifs des méthodes agiles sont les suivants :

  • Minimiser les défauts de la solution finale
  • Améliorer la cohésion de l’équipe de développement
  • Obtenir un système le plus flexible et adaptable possible

Les méthodes agiles en gestion de projet web : en pratique ?

les méthodes agiles, ludiques et efficaces

En pratique, il existe plusieurs types de méthodes agiles. La manière de procéder dépend de plusieurs facteurs. Notamment, du produit ou service concerné (développement d’une application, création d’un site web…). Ensuite, de la taille de vos équipes. Enfin, de votre situation géographique (le client peut-il se déplacer chez vous ou non, les équipes travaillent-elles au même endroit…). Plusieurs procédures s’offriront à vous. Le choix de la méthodologie à suivre reviendra au chef de projet (dont nous évoquerons le rôle par la suite). La plupart des méthodes agiles s’appliquent à la gestion de projet web. Ce sera le cas pour celles que nous allons évoquer par la suite.

En général, les méthodes agiles reposent sur les points suivants :

  • des pratiques d’ingénierie : le développement est conduit par des tests, et une intégration continue et incrémentale de la solution
  • de la gestion de projet : le chef de projet planifie et anime des réunions quotidiennes et hebdomadaires, ainsi que les livraisons itératives d’une solution. Ces itérations sont périodiques. Souvent appelée “sprint”, la durée des périodes est un temps court (fluctuant entre 1 et 5 semaines) au bouts duquel l’équipe fournit une version utilisable se rapprochant le plus possible de la solution finale (tenant compte bien sûr du temps qui leur est imparti). L’ensemble de l’équipe projet et le client étudient ensuite cette version, afin d’y apporter les améliorations souhaitées.
  • de la collaboration : d’une part, le travail est collaboratif au sein de l’équipe projet, via des réunions et des méthodes de travail agiles. Nous présenterons par la suite deux exemples de méthodes agiles : SCRUM et la Programmation par paires. D’autre part, le client est impliqué dans le processus. Il participe aux réunions à la fin de chaque sprint, bien qu’il ne s’agisse pas de la solution finale. De cette manière, on s’assure d’être toujours en phase avec le client et de répondre parfaitement à sa volonté. Cela laisse également la possibilité de procéder à des changements en cours de projet. Évidemment, on met le devis à jour en conséquence, mais cela permet de réaliser la meilleure solution pour le client. Outre le fait d’ouvrir les portes à d’éventuelles évolutions, travailler ainsi en collaboration avec le client permet d’éviter un problème malheureusement fréquent : la solution livrée ne correspond pas aux attentes du client. Cela arrive bien plus souvent qu’on ne le pense, car on ne s’assure jamais assez d’avoir bien compris son besoin. Alors quitte à ce que ce genre d’incident intervienne, mieux vaut que ce soit en cours de projet plutôt qu’à sa livraison finale. 

Toutes ces points se mettent en pratique en veillant bien sûr à l’équilibre final du triptyque coût-qualité-périmètre fonctionnel

Méthodes agiles en projet web, la méthode SCRUM

SCRUM présente un ensemble de techniques agiles permettant de s’organiser au sein d’un projet. La philosophie SCRUM, comme beaucoup d’autres méthodes agiles, c’est l’esprit d’équipe, l’engagement, l’autonomie, la responsabilisation et l’amélioration de l’équipe ainsi que l’implication du client dans celle-ci. Le schéma ci-dessous résume dans les grandes lignes la méthode SCRUM. Cela peut paraître un peu abstrait au premier abord, mais vous comprendrez tout avec cette présentation de SCRUM. Avant de vous présenter la démarche, nous devons passer par la case vocabulaire en abordant quelques notions propres à la méthode SCRUM (pas de panique, c’est rapide !).

Schéma de la méthode agile SCRUM
Schéma de la méthode agile SCRUM

Le cycle de vie SCRUM

Un projet se décompose toujours en “Releases” et en “Sprints”. Un Sprint est une période de temps fixe déterminant la livraison des livrables, comme nous l’expliquions plus haut. Une release est un ensemble de sprints produisant une version utilisable du produit. À noter que le premier sprint d’une release (sprint 0) peut avoir une durée différente, en général plus longue que les Sprints classiques. Il ne faut surtout pas le négliger, puisqu’il sert à organiser le projet, définir son périmètre, etc. 

L’équipe : 

Multidisciplinaire, l’équipe se gère elle même. En terme d’efficacité, c’est mieux lorsque l’équipe est localisée au même endroit, idéalement dans la même pièce. Rien n’empêche cependant que les équipes soient réparties à divers lieux géographiques. Il suffit alors de mettre en place des bons moyens de communication. L’équipe doit être mixte, client et fournisseur. Comme nous l’évoquions précédemment, l’implication du client ou “Product Owner” est essentielle. Une équipe projet ne doit pas dépasser dix membres actifs, (le Product Owner, le SCRUM Master et 8 équipiers). Sinon, il faudrait s’organiser par équipes de dix et faire du SCRUM de SCRUM, mais nous n’entrerons pas dans le détail ici.

  • Le product owner (PO) est un membre du côté client. Il voit l’équipe travailler et joue un rôle dans les phases de définition et validation du travail à réaliser. Il définit le produit et participe à l’organisation du travail en classant les fonctionnalités souhaitées de la solution par ordre décroissant, selon la valeur ajoutée qu’elles lui rapportent.
  • Le scrum master (SM) est le garant du respect de la méthodologie. Il veille au bon déroulé du cérémonial (nous y arrivons), il protège l’équipe et est l’interlocuteur privilégié du PO. Il s’apparente en quelque sorte au chef de projet.
  • L’équipier est un membre de l’équipe directement responsable du développement et de la production des livrables, un développeur par exemple.
  • Le Stake Holder (SH) représente toute personne impliquée dans le projet, même de manière ponctuelle. On le convie aux démonstrations de fin de sprint et de release.
collaboration au sein de l'équipe de la méthode SCRUM
collaboration au sein de l’équipe de la méthode SCRUM

Les concepts :

Plusieurs concepts structurent la méthode SCRUM. Les concepts essentiels à connaître sont : 

  • Les stories : les “user story” décrivent les cas d’utilisation du produit, cela pouvant donc correspondre à une ou plusieurs fonctionnalités. Les “technical Story” décrivent un point technique à traiter, par exemple une étude de faisabilité, une évaluation de performance.
  • les features (regroupement de stories autour d’un même sujet)
  • les backlogs (du projet, de la release ou du sprint): destiné à recueillir tous les besoins du client que l’équipe projet doit réaliser. Il contient donc la liste des fonctionnalités constituant un produit et les éléments nécessitant l’intervention de l’équipe projet. 
  • le dashboard ou tableau de bord

Et en pratique, comment ça marche ?

N y sommes ! Voici tous les événements (périodiques ou uniques) qui rythment la méthodologie SCRUM :

  • le Daily SCRUM : réunion quotidienne (maximum 15 minutes) chaque jour à la même heure, en tout début de journée. Chaque membre énonce de manière factuelle ce qu’il a fait hier, ce qu’il va faire aujourd’hui, et les problèmes qu’il rencontre. Le SM note les points à traiter, et organisera par la suite des réunions de travail dédiées. 
  • mise à jour du tableau de bord, qui permet de visualiser rapidement l’avancement du projet
  • réunion de planification : elle permet à l’équipe d’analyser, d’évaluer et de planifier la réalisation des stories choisies pour le Sprint.
  • le planning poker : il s’agit d’une réunion (plutôt ludique, de maximum 2 heures) qui a pour but d’évaluer une “user story”. 
  • la réunion de revue de backlog (maximum 2 heures) permet de mettre à jour avant la fin du sprint le backlog projet .
  • réunion de démonstration de fin de sprint (entre deux et quatre heures) : elle permet à l’équipe projet de présenter le travail réalisé à toutes les parties prenantes. En début de réunion, on rappelle les objectifs du sprint. On présente les stories réalisées, puis on capitalise les échanges (remarques, commentaires, suggestions…) 
  • la réunion de rétrospective a lieu à la fin de chaque sprint et release, ainsi qu’à la fin du projet. L’objectif de cette réunion est de revenir sur les éléments positifs et négatifs de la période concernée. Cela permet d’identifier les forces et les faiblesses de l’équipe et de l’améliorer. 

Vous savez désormais comment se déroule la méthodologie SCRUM. Pour y voir plus clair, vous pouvez retourner voir le schéma de la méthode ! Relevant d’une démarche d’amélioration continue, la méthode SCRUM s’appuie également sur les relevés et l’analyse de certains indicateurs, mais nous ne développerons pas cela ici. Si vous souhaitez avoir une méthodologie très détaillée pour appliquer cette méthode, nous vous conseillons le livre de Claude Aubry, que nous avons cité en introduction : Pour une pratique vivante de l’agilité

La programmation par paires

Parmi les méthodes agiles en gestion de projet web, la programmation par paires est incontournable. Le programmeur étant constructeur de la solution, il intervient au cœur du procédé agile. la programmation par paires est un exemple type de la collaboration au sein de l’équipe projet. La production de code se fait en binôme. Dans la théorie initiale de la programmation par paires, deux personnes travaillent sur un seul ordinateur. En pratique, ils travaillent au moins sur le même programme. À distance, la programmation en paire est possible si l’équipe dispose d’une connexion Internet très rapide, d’un outil de partage à distance et d’un téléphone.

programmation par paires

Cette méthode facilite l’apprentissage interindividuel, favorise le partage de connaissances et améliore la rapidité et la qualité des codes produits. Selon certains praticiens, cette pratique de collaboration réduit les coûts de développement et les besoins en formation. Dans cette méthode, on insiste sur les tests. Il est préconisé de maintenir un ensemble de tests complets et de les exécuter aussi fréquemment que possible, plusieurs fois par jour, et après chaque modification. Le développement et les tests sont intrinsèquement liés, l’un et l’autre se contrôlant en permanence. Leur symbiose contribue directement à la qualité du produit final.

Cependant, cette méthode est parfois critiquée. En effet, pour  qu’elle fonctionne, il faut que les deux programmeurs s’entendent parfaitement, tant au niveau technique qu’au niveau socio-psychologique. De plus, comme dans toute approche agile, le client participe activement à l’effort de test, à son niveau. Par exemple au moyen de « use-cases » qui matérialisent les cas d’emplois qu’il juge importants pour son métier. Cela présuppose que les clients et les programmeurs se comprennent facilement, ce qui est loin d’être une réalité. Bien souvent, les clients n’ont strictement aucune connaissance dans le milieu de la programmation. Ce ne sont pas non plus forcément des managers ou des chefs de projets, ce qui peut rendre la communication difficile. D’où l’intérêt du chef de projet (nous y arrivons) !

Les méthodes agiles en projet web, une illusion idyllique ?

Les méthodes agiles semblent être la démarche idéale à adopter. on travaille en équipe, on communique et collabore en utilisant des méthodes ludiques, etc etc. En réalité, comme partout, il y a la théorie et la pratique. Et la pratique s’éloigne encore plus de la théorie quand un système devient complexe, c’est à dire lorsqu’il fait intervenir le composant le plus imprévisible qui soit : l’être humain. Alors oui, il peut y avoir des conflits, partout, même dans les équipes constituées des gens les plus cools et ouverts d’esprits.

homme sceptique à propos des méthodes agiles
homme pas convaincu des méthodes agiles

C’est donc là qu’intervient personnage clé d’un bon déroulement du procédé agile : le chef de projet. À la fois planificateur et chef d’orchestre, il est gardien de la conscience morale de l’équipe et de la finalité du projet. Il doit rester calme quand tout le monde panique. Pilote de toute la mise en oeuvre du projet, il surveille tout ce qui s’y passe et veille à la responsabilisation de toute l’équipe. Il s’assure que la communication soit bonne, autant au sein de cette équipe qu’avec le client. Enfin, son rôle est de faire donc le relais entre l’aspect technique, sur le terrain (donc au milieu des lignes de code), et le langage client. Cela signifie parfois lui faire comprendre qu’il demande des choses contradictoires, ou impossibles à réaliser en respectant les contraintes CQFD. Un chef de projet doit être courageux !

Un projet agile repose donc sur un ensemble de pratiques collaboratives, favorisant la communication et la résolution collective des problèmes rencontrés. Le travail d’équipe, la transparence et le respect sont des valeurs centrales de l’agilité. Tout cela est sensé aboutir à la solution répondant le plus exactement au besoin du client, et d’une qualité irréprochable. Gardons toutefois en tête qu’un projet agile nécessite une bonne gestion. Un projet agile mal encadré, c’est comme un site internet sans arborescence solide, ça ne tient pas debout !

Leave a comment