Arrêtez par Toutatis avec vos "story points !"

Publié le 18 janvier 2024 à 09:29

Story points, c'est quoi? Un peu d'historique...

Ce concept largement répandu et très mal répandu (à mon plus grand désarroi, vous le comprendrez si vous allez au bout de cet article) a été initialement créé par Ron Jeffries au sein de l'extreme programming (XP).

Story points (ou points d'effort, de complexité en français) est une estimation relative d'un élément de travail. Le concept englobe des notions d'effort, de complexité, de temps, de risques, de niveau de compétences, de nombre de café requis pour terminer le sujet (oups je dérive...), etc.

A la base c'était une estimation en temps pour implémenter une histoire utilisateur (les éléments qui étaient à connotation de valeurs pour un utilisateur final dans XP). Ron a rapidement décrit cela comme le temps idéal pour compléter une histoire à 2 personnes en pair programming, si le monde autour d'eux voulait bien leur ficher la paix. Seulement ce n'était jamais le cas et il y avait des risques, de la complexité cachée, etc. Il a donc introduit un facteur multiplicateur à cela (dans son expérience, c'était aux alentours de 3). Ce qui a fini par lui faire transformer cette estimation en temps idéal en une notion de points car les parties prenantes ne comprenaient pas qu'une journée idéale de travail puisse se transformer finalement en 3 jours réels. (Merci les parties prenantes qui ne comprennent pas que dans ce monde de travail intellectuel, on ne peut pas voir les choses de façon déterministe... Et que c'est un véritable danger de le faire !)

Bref fin de la parenthèse, revenons à nos moutons...

L'idée et l'utilisation de Ron (et de sa team à l'époque) de ces story points étaient tout simplement d'avoir des discussions au sein de l'équipe et de pouvoir juger si l'équipe était en train de ce challenger sur quelque chose de faisable ou pas sur l'itération.

Donc Ron transforme cette notion en point... en story points ! ("Nants ingonyama bagithi baba" ... Sur un célèbre air... Le lion est né !). Et c'est la que le drame commence.

Quel drame? Que s'est-il passé?

Sérieusement ?! Vous osez me poser la question ? Bon allez parce que c'est vous, je vous explique...

 

Un célèbre framework apparaît et prend de plus en plus d'ampleur sur le marché : Scrum.  Il faut dire que le framework est plutôt séduisant et vient avec des potentiels bénéfices intéressants (que beaucoup prendront à mon sens comme des promesses).

Pour une raison propre à l'être humain toujours très inventif, des pratiquants de Scrum commencent à utiliser les story points de Ron. Sauf que ... l'utilisation de ces story points commencent à dévier de l'utilité initiale. Des personnes commencent à les utiliser pour faire des projections et des plannings au-delà d'une itération, pour comparer la performance de plusieurs équipes, pour pressuriser les équipes à toujours faire plus de story points par itération (cette fameuse vélocité) ...

Tenez, arrêtons-nous sur ce dernier point. Est-ce que dans la notion de story points de Ron, il y a une quelconque notion de valeur pour l'utilisateur final, pour le business ?

Bingo ! Vous avez raison... AUCUNE !

Alors pourquoi donc des managers, des parties prenantes, logiquement intéressés par le fait que le business se porte bien et de mieux en mieux, viendraient mettre la pression aux équipes pour qu'elles augmentent leur vélocité ?!

Alors ?

Alors ?

Oui j'entends timidement la réponse au fond de la salle...

"Parce qu'ils n'ont rien compris à ce que c'était ! Et pensent que plus de vélocité = plus de valeur"

Merci ! Ça m'évite de le dire !

 

Malheureusement, ce non-sens se propage, c'est une maladie hautement contagieuse et virale... Le monde est pris dans cette pandémie d'utilisation des story points, à mille lieux de l'idée originelle de Ron et de l'utilité qui l'avait amené à créer cela. Le pauvre... Car malheureusement, il est bien identifié comme le créateur des story points.

Il en fera d'ailleurs un mea-culpa, que je vous donne ici en français :

"J'aime dire que j'ai probablement été l'inventeur des story points, et si je l'ai fait, j'en suis désolé maintenant."

Bon, bah, c'est bien beau tout ça, mais comment sortir de cela ?

Je suis content que vous posiez la question.

Donc, ce que vous voulez savoir, c'est si vous ne vous challengez pas trop sur une itération, avec un objectif inatteignable avant même d'avoir démarré. De plus potentiellement avec une communication hasardeuse auprès de parties prenantes, qui prendront cet objectif comme une promesse à la fin de l'itération et qui vous attendront de pied ferme si vous ne l'honorez pas.

Bonne nouvelle, c'est possible et sans les story points ! Et je dirai même que j'ai mieux et plus prédictible que ce que vous pouviez avoir avec des story points (sous certaines conditions).

Bon soyons honnête, ce que je vous donne après ce n'est pas moi qui l'ai inventé, mais les personnes qui sont derrière la stratégie Kanban (la vraie) comme Daniel S. Vacanti par exemple (Mais comme je sais qu'il tient beaucoup à rendre hommage aux personnes qui étaient avec lui, je vous donne ma traduction de son bouquin où il raconte l'histoire et rend cet hommage :
https://drive.google.com/file/d/1QJu4FQdBG1iFwzn4H4wTtPT0DuMPfweM/view?usp=sharing)

Par contre, j'ai pas mal utilisé cela, dans différentes équipes et je peux vous assurer que ça fonctionne très, très bien ! (et je ne suis pas le seul à le confirmer).

 

C'est parti et je vais essayer de vous synthétiser cela en moins de 200 pages...

 

Ce que vous voulez, c'est une estimation plutôt fiable, la plus fiable possible, quand bien même nous soyons dans un monde d'incertitude.

Pouvons-nous faire ces 10 items correspondants à notre objectif, ou seulement 8, ou plutôt 15 ?

Et puis aussi on le verra un peu plus tard, afin de communiquer, répondre à des questions du type "Quand est-ce que vous pensez pouvoir compléter cette version ?"

 

Et si vous comptiez simplement le nombre d'éléments ? d'histoires ? Et si vous regardiez historiquement ce que vous avez réussi à faire ?

Bah non, ça ne marchera pas, les éléments ne sont pas de la même taille !

Exactement ! on a des sujets plus gros que d'autres et c'est bien pour ça qu'on estime en story points !

 

Oki ... Oki... Calmez-vous ! Laissez-moi compléter...

Je ne suis pas complètement en désaccord avec vous. Mais !

Pensez-vous que vos estimations en story point soient justes ?

Bah oui, quand même, on est rodé !

Attends, c'est vrai qu' "estimation"... Le mot en lui-même comporte une part de doute, une estimation peut-être fausse.

 

Oui, exactement ! Je dirai même que vous devez partir du principe qu'elle est fausse (bon parfois, mais plutôt rarement, vous tomberez juste.).

Pourquoi ? Parce que vous n'êtes pas dans un monde déterministe.

Tenez ! À quand remonte votre dernière découverte de quelque chose que vous n'aviez pas imaginé vous tomber dessus en réalisant une story ? Je parierai que ça fait 1 jour, pas plus !

C'est normal... Dès que vous allez commencer le travail sur le sujet, vous allez obtenir des informations qui vous feront entrer dans la réalité, la vraie réalité des choses et puis potentiellement, il y aura un changement intéressant à mettre en œuvre pour mieux satisfaire l'utilisateur. Il va se passer tout un tas de choses imprévues, vous allez avoir l'univers contre vous pour que ça ne se passe pas comme vous l'imaginiez.

 

Ouais, bon d'accord, ce n'est pas faux !

Vous n'avez pas compris quelque chose ? (Désolé pour les non-fans de Kamelot ;-))

 

Donc, comment faire en ne comptant que les éléments, qui ne font pas la même "taille"?

 

Alors, ils doivent faire, non pas la même taille, mais la bonne taille.

J'entends par là que vous devez convenir en équipe d'une taille, en nombre de jours (ça servira pour autre chose d'être dans cette unité.), qui sera un point de comparaison et un point limite pour les éléments que vous allez travailler. Pour être vraiment dans l'idée de voir les choses de façon non-déterministe (si si c'est important et donc je vais le dire 1000 fois dans l'article), vous allez associer à cette timebox une probabilité de rester dedans (ou si vous voulez le voir dans l'autre sens une probabilité de la dépasser). Ça donne par exemple : "Taille de nos éléments de pas plus de 10 jours à 85% du temps".

Dans la stratégie Kanban c'est ce qu'on appelle le niveau de service attendu (SLE).

Avec ce SLE vous allez donc pouvoir définir vos éléments avec une bonne taille, ie une taille qui entre dans ce SLE.

Attention, le sujet n'est pas de tomber juste, juste. C'est "pas plus de" 10 jours... Une timebox... Si c'est fini avant. Top ! Des utilisateurs pourront potentiellement bénéficier de quelque chose qui leur sera utile plus tôt.

 

Donc au lieu de faire des estimations en story points, points d'effort ou complexité comme on les a renommés en France via des techniques de planning poker sur suite de Fibonnacci ou autre unité aidant à la relativité de l'estimation... Vous allez jouer à un planning poker un poil transformé, avec seulement 4 cartes :

- 1 carte, j'en sais fichtre rien !

- 1 carte, rentre assurément dans notre SLE

- 1 carte, pas moyen que ça tienne dans le SLE

- 1 carte, je n'ai pas compris le sujet, on peut réexpliquer ?

Voici différents scénarii possibles :

  1. Plein de "j'en sais fichtre rien!"... Il faut alors très certainement rediscuter pour mieux comprendre ce qu'il en retourne... Et au bout d'un moment si ça ne s'éclaircit pas par les discussions, il faut se lancer et faire. Le seul moyen de savoir concrètement si c'est dur ou pas et si ça dépassera le SLE ou pas.
  2. Plein de "je n'ai pas compris le sujet, on peut réexpliquer?" Idem, il faut rediscuter, éclaircir... Et potentiellement se lancer. "C'est en marchant qu'on apprend à marcher !"
  3. Que des "rentre assurément dans notre SLE", bon bah allez passons au sujet suivant
  4. Pas mal ou plein de "pas moyen que ça tienne dans le SLE"... Il faut rediscuter et trouver des moyens de découper le sujet pour arriver à sortir l'élément le plus important qui entre dans le SLE et remettre le reste à des discussions futures. (ou immédiates si c'est très important pour aussi s'assurer que ça entre dans le SLE)
  5. Un mixte de tout ça... Il faut rediscuter, tout le monde n'a pas compris la même chose, il y a peut-être des idées intéressantes de découpage, etc.

Oki ! Une fois que circulent dans notre workflow et que se réalisent dans nos itérations des éléments de bonne taille, on va pouvoir prendre le débit (nombre d'éléments qui se terminent par jour) et utiliser cela pour faire une projection probabiliste de ce qu'il est possible de faire dans une itération (dans la timebox de l'itération).

Un excellent moyen de faire cette projection probabiliste et d'utiliser une simulation de Monte-Carlo en prenant en entrée ce débit par jour. Ceci vous donnera quelque chose de beaucoup plus précis que ce que vous faisiez avant et en plus un choix de voir ce que ça donne avec 50% de probabilités, 70%, 85%, 95%...

Quel niveau de risque êtes-vous prêt à prendre ? Ça sera aussi des discussions que vous pourrez avoir avec cette démarche.

 

Exemple de simulation de Monte-Carlo ci-dessous :

Sur cet exemple, il y a 85% de chances que l'équipe arrive à réaliser 6 éléments ou plus dans l'itération à venir (de 3 semaines), 7 ou plus à 70% de chance, 4 ou plus à 95% de chances.

Un autre avantage de cette démarche, c'est de pouvoir donner une meilleure réponse à "Quand cela sera-t-il terminé ?"

Avez-vous déjà réussi à tomber juste dans votre prédiction de date de release en vous basant sur les story points (ou la vélocité) ?

Si c'est le cas, bravo ! Vous devriez jouer au loto ;-)

Je présume, en étant sûr de ne pas me tromper, que comme moi, vous n'avez jamais vu cela ou par miracle une fois et pas beaucoup plus.

Attention, quand je dis ça, c'est bien évidemment en étant honnête et sans avoir trituré le périmètre, ou bafoué la qualité ou les deux, pour faire entrer absolument la release à la date convenue et communiquée.

 

Eh bien, vous savez pourquoi ?

Parce qu'il n'y aucune corrélation entre les story points et la durée que vous allez prendre pour terminer les éléments. Enfin aucune corrélation... un degré de corrélation très, très faible (0,2 ... 0,3 allez max 0,4).

Donc est-ce que cela fait sens de réaliser des projections sur des dates, sur la base de story points, qui ont une corrélation très faible avec la durée que ces éléments prennent en réalité pour être réalisés ?

Pas vraiment, ou même aucunement !

Tenez c'est cadeau, un exemple de non-lien entre story points et temps de cycle (durée pour qu'un élément traverse le workflow). Exemple réel, le même schéma s'est présenté plus d'une dizaine de fois à moi. Un collègue ProKanban Trainer a fait l'exercice sur plus de 100 équipes, toujours pareil... Et toujours avez un taux de corrélation ne dépassant pas les 0,4 et plutôt autour de 0,2.

Ce graphique vous présente en axe X (horizontal) l'estimation en story points, en axe Y (vertical) le temps de cycle pour terminer l'élément. Vous voyez donc que des éléments avec beaucoup de points se terminent bien plus rapidement que d'autres avec moins de points estimés. Inversement, des éléments avec peu de points estimés se terminent bien moins rapidement que des éléments avec beaucoup de points estimés.

Réponse à la question concernant un seul élément

Si la question ne porte que sur un seul élément, alors dépendant de là où se trouve l'élément dans le flux de travail, vous pourrez répondre grâce à votre temps de cycle historique.

Exemple : L'élément n'est pas encore démarré. Votre temps de cycle historique est de 12 jours ou moins pour 85% des éléments. Vous pourriez alors répondre "si nous démarrons aujourd'hui vous avez 85% de chances que nous fournissions cet élément dans les 12 jours à venir" (Au fait, je parle en jour calendaire... Pourquoi ? Ça fera certainement l'objet d'un autre article)

Exemple 2 : L'élément est démarré. Le workflow est "Affinage > Dev > Recette > Terminé" et l'élément est dans l'état "Dev" avec un âge dans le flux de 5 jours (ie il a déjà passé 5 jours entre "affinage" et "dev"). Vous pourriez alors répondre "nous avons déjà travaillé 5 jours sur le sujet, il y a maintenant moins de 85% de chances que nous finissions dans les 7 jours suivants" (Oui, car la probabilité de finir un élément déjà démarré dans la timebox du SLE décroît dès le premier jour... Ça fera certainement également l'objet d'un autre article pour entrer dans ce détail, pour le moment sachez juste que c'est moins de 85% de chances en simplifiant les choses).

Réponse à la question concernant plusieurs éléments (pour une release par exemple)

Dans le cas où la projection probabiliste porterait sur plusieurs éléments, il faudra prendre le débit en élément par jour pour pouvoir répondre.

En réalité, c'est la même technique que pour vous lorsque vous regardez combien d'éléments, vous pouvez prendre dans votre itération, juste qu'au lieu de le voir en nombre d'éléments dans une timebox donnée, on regarde où nous emmène le fait de faire un certain nombre d'éléments.

Donc débit journalier et simulation de Monte-Carlo.

Attention à bien prendre la bonne période pour le débit historique. Vous devez prendre une période de débit historique qui corresponde (à priori) au mieux à l'avenir que vous projetez.
Enfin, n'hésitez pas dans la réponse à la question de proposer plusieurs niveaux de risque. Vous pourriez très bien répondre : "Nous avons 70% de chances de terminer cette release pour le 15 février, 85% de terminer le 24 février et 95% de terminer le 1er mars".
Cela plaira à votre interlocuteur sans aucun doute et vous pourrez convenir du niveau de risque acceptable pour lui et ainsi continuer à monitorer cette projection dès lors que vous avez de nouvelles données de débit historique.

Avec la simulation de Monte-Carlo ci-dessus, pour une release comportant 40 éléments à compléter la simulation nous donne : 70% de chances de compléter cela pour le 2 Mai 2024, 85% de chance pour le 13 Mai 2024, 95% de chance pour le 21 Mai 2024.

Comment convaincre de lâcher les story points et de basculer en principe de bonne taille ?

Je dirai avec mon expérience qu'il n'y a pas de recette miracle.

Mais une qui a souvent fonctionné pour moi est de montrer la différence entre les deux approches de projections (même sans être dans une logique de bonne taille).

Vous avez certainement déjà une ou plusieurs release historique. Vous connaissez donc factuellement votre date de livraison.

Regardez ce que vous aviez prédit avec une projection par la vélocité (Et encore une fois, soyez honnête, prenez la première projection là où vous n'aviez pas encore trituré le périmètre, la qualité... Pour faire entrer la release au chausse pieds à la date voulue).

Maintenant, prenez le débit historique par jour des éléments, faites une simulation de Monte-Carlo avec cet historique en vous remettant à la date de démarrage et avec le nombre d'éléments que vous aviez imaginé au début de cette release.

Je mettrai ma main au feu, que vous avez un meilleur résultat, plus proche de la réalité avec la simulation de Monte-Carlo.

Et attention, c'était sans faire une approche de bonne taille pour vos éléments. Vous allez augmenter la prédictibilité en faisant cela et en vous tenant à contrôler l'âge de vos éléments dans votre flux par rapport à ce SLE que vous choisirez.

Conclusion

Bon eh bien, ça n'aura pas fait un bouquin de 200 pages, mais un bien long article quand même.

Si vous êtes arrivés jusque-là (en ayant tout lu), bravo !

J'espère que cela vous aidera à mettre de côté les story points ou, en tout cas, la très mauvaise utilisation que beaucoup (trop) de monde en font.

Je vous invite, vraiment et très sérieusement, à vous pencher sur la stratégie Kanban dans sa globalité si vous voulez vraiment réussir à vous passer des story points et avoir tous les bénéfices de cette stratégie pour optimiser votre efficacité, votre efficience et votre prédictibilité.

Si vous mettez en place uniquement ce que j'ai décrit dans cet article, vous obtiendrez certainement des résultats intéressants, mais vous aurez moins de chances que cela se produise que si vous mettez en place les 3 pratiques clés Kanban appuyées des 4 métriques de flux essentiels. En tous cas, vous allez être limité à un moment sur le niveau de prédictibilité que vous allez pouvoir atteindre.

Donc si vous voulez creuser tout cela, je ne peux que vous recommander de venir avec moi en formation sur la stratégie Kanban, de lire mes autres articles, de me suivre sur LinkedIn (https://www.linkedin.com/in/jose-coignard/) , de lire les ressources gratuites qui se trouvent sur https://prokanban.org, de venir vous abonner au Slack de ProKanban.org https://join.slack.com/t/prokanban/shared_invite/zt-2a4ofpd9g-7PvTd5RiV5h17tCmUdVxuA

Sources :

L'histoire des story points racontée par Ron lui même : https://ronjeffries.com/articles/019-01ff/story-points/Index.html

Mes formations

Ajouter un commentaire

Commentaires

Il n'y a pas encore de commentaire.