Pas de points pour les bugs ?

Que faire des bugs relatifs à une user story et découverts dans un sprint postérieur à la réalisation de cette story ?

Ah, un post très intéressant et très concret d'Eric Lefèvre. J'ai lu la version française Comment gérer les bugs dans le backlog de sprint (on voit que c'est une traduction de l'anglais).

Eric parle d'un problème qui se pose couramment, qu'est ce qu'on fait des bugs relatifs à une story et découverts après que cette story ait été considérée comme finie ?

Sa position est de ne pas les estimer en points. Bien qu'il ne le dise pas explicitement, il suggère de ne pas les mettre dans le backlog de produit, mais seulement dans le backlog de sprint. Son argument est de ne pas gonfler artificiellement la taille du projet[1]. Il s'appuie sur la notion de dette technique (technical debt) pour étayer sa position : la correction d'une dette technique n'apporte pas de valeur.

Son post m'a d'autant plus intéressé que le conseil que je donne généralement est de mettre les bugs dans le backlog de produit. La proposition d'Eric permet d'éviter du gaspillage : le temps passé à mettre le bug dans le backlog de produit et à l'estimer. Je le rejoins pour les bugs qui peuvent être corrigés rapidement (disons en une heure ou moins) : pas la peine de les enregistrer et d'attendre le prochain sprint, autant les corriger de suite. En revanche, pour ceux qui nécessitent plus de travail ou s'il y en a beaucoup, sa proposition présente -me semble t-il et si j'ai bien compris- des inconvénients :

  • elle perturbe le sprint en cours
  • elle suppose que le correction d'un bug est toujours plus prioritaire que le développement d'une nouvelle story, ce qui est discutable.

De plus l'argument de la dette technique à combler me semble abusif : dans ce qu'Eric appelle bug il y a les demandes d'évolution, bien souvent liées à l'IHM, qui ne sont pas dues à un travail non parfait mais qui sont l'essence même du développement itératif comme le rappelle Jeff Patton (dans son article que j'ai cité récemment mettant en évidence la différence entre incrémental et itératif).

La question ne se pose que pour les bugs trouvés sur une story considérée comme terminée dans un sprint précédent. Si le bug est découvert pendant le sprint où la story est développée, il est corrigé avant la fin du sprint. Sinon la story ne sera pas considérée comme finie.

Notes

[1] si on avait 100 points à faire et qu'on estime les bugs trouvés à 5 points, on passe fatalement à 105 points. Il a raison, cela augmente la taille du backlog. Cependant cela est tout à fait visible si on produit des burnups ou des courbes le mettant en évidence