Que sont les Points de Story ?
Auteur : Mike Cohn
Source : What Are Story Points?
Date : 25/08/2016
Traducteur : Fabrice Aimetti
Date : 03/09/2016
Traduction :
Les points de story sont une estimation de l'effort influencée par la quantité de travail, la complexité, le risque et l'incertitude.
Les points de story sont une unité de mesure pour exprimer une estimation de l'effort global qui sera nécessaire pour implémenter complètement un élément du backlog produit ou tout autre travail à réaliser.
Lorsque nous estimons avec des points de story, nous affectons une valeur en points à chaque élément. Les valeurs brutes affectées ne sont pas importantes. Ce qui compte ce sont les valeurs relatives. Une story à laquelle on affecte un 2 vaut 2 fois plus qu'une autre story à laquelle on a assigné un 1. Elle vaudra également deux-tiers d'une story à laquelle on a affecté 3 points de story.
Au lieu d'affecter 1, 2 et 3, l'équipe aurait pu tout aussi bien affecter 100, 200 et 300. Ou 1 million, 2 million et 3 millions. Ce sont les proportions qui comptent, pas les nombres eux-mêmes.
Que prendre en compte dans les points de story ?
Puisque les points de story représentent l'effort de développement de la story, l'estimation faite par une équipe doit inclure tout ce qui affecte l'effort. Cela comprend donc :
- la quantité de travail à réaliser,
- la complexité du travail,
- toute forme de risque ou d'incertitude dans le travail à réaliser.
Lorsque vous estimez en points de story, assurez-vous de prendre en compte chacun de ces facteurs.
Voyons comment chacun de ces facteurs impacte l'estimation de l'effort exprimée en points de story.
La quantité de travail à réaliser
Bien sûr, s'il y a plus de choses à faire, l'estimation de l'effort sera plus importante. Supposons que l'on souhaite développer deux pages web. La première page comporte uniquement un champ avec une étiquette demandant d'entrer un nom. La seconde page comporte 100 champs qui doivent également être alimentés avec du texte.
La seconde page n'est pas plus complexe. Il n'y a pas d'interactions entre les champs et chacun d'entre eux n'est qu'une simple zone de texte à alimenter. Il n'y a pas de risque supplémentaire sur la seconde page. La seule différence entre ces deux pages est qu'il y a davantage à réaliser sur la seconde page.
On donnera plus de points de story sur la seconde page. Probablement pas 100 fois plus de points même s'il y a 100 fois plus de champs. Il y a, après tout, des économies d'échelle et peut-être que réaliser la seconde page ne représentera que 2, ou 3, ou 10 fois l'effort de la première page.
Risque et incertitude
Le niveau de risque et d'incertitude d'un élément du backlog produit affectera l'estimation en point de story affecté à cet élément.
Si on demande à une équipe d'estimer un élément du backlog produit et que la partie prenante n'est pas claire sur sa description, alors cette incertitude doit se refléter dans l'estimation fournie.
Si l'implémentation d'une fonctionnalité implique de modifier une zone particulière du code, un code sensible qui n'a pas de tests automatisés, ce risque doit se refléter dans l'estimation fournie.
Complexité
La complexité doit également être prise en compte lorsque vous estimez en points de story.
Rappelez-vous de l'exemple de développement d'une page web comportant 100 champs textuels simples sans interactions entre eux.
Maintenant, pensez à une autre page web qui comporte également 100 champs. Mais cette fois il y a des champs date avec affichage de pop-ups calendriers. D'autres sont des champs textes avec des formats particuliers comme des numéros de téléphone et des numéros de sécurité sociale. D'autres champs effectuent des validations par checksum pour contrôler des numéros de cartes de crédit.
Cette page comporte également des interactions entre les champs. Si l'utilisateur entre un numéro de carte Visa, un code de sécurité sur 3 positions est affiché. Mais si l'utilisateur entre un numéro de carte American Express, un code de sécurité sur 4 positions est affiché.
Même s'il y a toujours 100 champs sur la page, ces champs sont beaucoup plus difficiles à implémenter. Ils sont plus complexes. Ils prendront plus de temps à réaliser. Il y a plus de chance que le développeur se trompe et doive faire marche arrière pour corriger.
Cette complexité additionnelle doit se refléter dans l'estimation fournie.
Prendre en compte tous les facteurs : quantité de travail, risque et incertitude, complexité
Il peut sembler impossible de combiner ces trois facteurs en un nombre et de fournir ce nombre comme estimation. C'est cependant possible puisque l'effort est un facteur d'unification. Les estimateurs prennent en compte la quantité d'effort qui sera nécessaire pour réaliser la quantité de travail décrite par un élément du backlog produit.
Les estimateurs prennent alors en compte la quantité d'effort nécessaire pour traiter le risque et l'incertitude propres à l'élément du backlog produit. Généralement, cela se fait en évaluant la fréquence d'un risque et la gravité de ce risque si le risque se concrétise. Ainsi, par exemple, l'estimation sera plus importante pour un risque de consommation excessive de temps dont la probabilité d'apparition est grande que pour un risque mineure et improbable.
Les estimateurs prennent également en compte la complexité du travail à réaliser. Un travail complexe nécessitera davantage de réflexion, peut-être davantage de tentatives par essai-erreur, peut-être davantage d'allers-retours avec le client, peut-être davantage de temps pour être validé et peut-être davantage de temps pour corriger les erreurs.
Ces trois facteurs doivent être combinés.
Prendre tout en compte dans la Définition du Fini
Une estimation en points de story doit inclure tout ce qui permet à un élément du backlog produit de passer dans l'état fini. Si la définition du fini par l'équipe prend en compte la création de tests automatisés pour valider la story (et ce serait une bonne idée), l'effort pour créer ces tests doit être pris en compte dans l'estimation en points de story.
Les points de story peuvent être un concept assez difficile à saisir. Mais ça vaut le coup de passer du temps à parfaitement comprendre que les points représentent l'effort en termes de quantité de travail, complexité du travail et tout risque ou incertitude identifiés dans le travail à réaliser.