Gestion de projet: La méthodologie SCRUM enrichie par les « user stories »

SCRUM 2

Dans cet article, je vous montrerai de quelle façon les "user stories" peuvent enrichir la méthodologie SCRUM dans le cadre d'une gestion de projet agile. Nous verrons notamment que cette méthode est efficace dans la création, le découpage et l'estimation du backlog, permettant ainsi des estimations très précises.

Pour résumer, SCRUM est une méthodologie de développement agile et donc :

  • On se focalise sur la livraison rapide (i.e toutes les 2 semaines, ce qui forme un sprint) d’un logiciel qui fonctionne et qui propose la plus grande valeur métier possible
  • Les développeurs s’organisent seuls: ils définissent l’organisation qui leur paraît la plus adaptée pour remplir le point précédent (l’organisation s’améliorant perpétuellement)
  • Mais c’est le métier qui fixe les priorités de développement au travers du « backlog du produit » (i.e liste de fonctionnalités dans un ordre fixe).

Sous forme de schéma, cela donne :

Scrum

Scrum permet d’identifier rapidement les problèmes (i.e au pire toutes les 2 semaines). Donc Scrum évite l’effet tunnel qui est le principal inconvénient d’une méthode traditionnelle.

Ex d’effet tunnel de la méthode traditionnelle (cycle en V) :
Tout est spécifié,  puis conceptualisé, puis codé, puis testé
=> sur un projet de plusieurs mois, tout va bien jusqu’à 15 jours de la release !
=> avec scrum, cela ne peut arriver car on est toujours à 15 jours de la release…

Scrum encourage donc le "développement durable", c’est-à-dire un rythme "soutenu mais pas trop" afin de pouvoir le conserver longtemps.

SCRUM est seulement un « framework » : la méthode ne définit pas la manière de créer/découper/estimer le backlog du produit NI la manière de parvenir au produit.

User stories

Pour créer/découper/estimer le backlog du produit, il est aujourd’hui communément admis que c’est la technique des User Stories qui est la meilleure : le produit est découpé en histoires indépendantes, rédigées dans le langage de l’utilisateur et dont la précision s’affine en fonction de la place dans le backlog du produit (plus ou moins récente).

Ce découpage en histoires permet par la suite des estimations relatives : l’histoire A est 2 fois plus grande que l’histoire B donc je mettrai environ 2 fois plus de temps, sachant que j'avais mis 2 jours pour l'histoire B.

Ces estimations sont réalisées en story points par toute l’équipe (i.e l’ensemble de l’équipe doit être d’accord sur la relativité par rapport à d’autres histoires).

Ces estimations peuvent être faites très tôt (car il est facile de comparer à des histoires existantes) sachant que plus le nombre de story points est grand, moins l’estimation est précise.

Au bout de quelques sprints, on connaît le nombre de story points réalisés en 2 semaines : cela s’appelle la vélocité.

La vélocité permet de planifier à long terme : si je continue à ce rythme, dans 6 mois j’aurais fait X points et donc certainement les user stories W, X, Y.

Bien sûr, plus on regarde loin dans le backlog, plus il faut prendre de marge : en effet, les histoires sont moins détaillées, et donc les histoires ont un grand nombre de points, et donc l’imprécision est plus grande.

C’est pourquoi, une histoire qui « monte » dans le backlog  est souvent « découpée » en plus petites histoires : le contenu est ainsi plus détaillé et donc les estimations sont plus précises.

A noter que les estimations ne sont quasiment jamais revues : si on se trompe sur quelques histoires ou qu’on va maintenant beaucoup plus vite pour réaliser X points, la vélocité va changer (ex : on va réaliser 5 story points de plus par sprint).

Cela va adapter le planning et au lieu d’arriver à W, X, Y dans 6 mois on aura W, X, Y, Z. On dit que la vélocité adapte automatiquement le planning.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.