Mercredi, lors de la réunion de planification du sprint que j'animais, nous avons inclus dans le sprint plusieurs spikes. On utilise un spike pour mener des travaux d'étude, d'exploration technique d'un élément (user story) du backlog.

Cela revient à décomposer cet élément en 2 parties[1] :

  • le spike proprement dit, qui est fait au sprint n
  • le développement de l'élément qui sera inclus dans le sprint n+1 (ou pas selon les résultats du spike)

Quand l'utiliser ?

  • Le spike est utilisé quand on ne sait pas estimer une user story. En général, si on ne sait pas l'estimer, c'est qu'on ne connaît pas de solution technique pour cette story.
  • Le spike peut aussi être utilisé pour étudier plusieurs solutions différentes. Dans notre produit, nous avons à intégrer des données d'un décisionnel et il y a plusieurs possibilités pour le faire, le spike va permettre de les étudier.
  • Enfin le spike peut aussi être utilisé quand la story est très grosse et qu'elle ne peut pas être finie en un seul sprint. Dans notre cas, c'était le cas pour la story portant sur la migration des données de l'ancienne application dans la nouvelle. A noter que si la story n'a pas été décomposée avant, c'est probablement parce que la solution technique n'est pas connue ou mal maîtrisée.

Le spike sert à approfondir le comment (la conception), pas le quoi, qui est du ressort du product owner. Donc si on ne sait pas estimer, il faut savoir si c'est par manque de précisons sur le quoi ou par méconnaissance du comment avant de décider de faire un spike.

Quel est le résultat d'un spike ?

On fait un spike pour comprendre comment développer une story. A la fin du sprint incluant un spike, on devrait :

  • avoir défini une solution
  • être capable d'estimer le coût de développement, pour aider le product owner à décider quoi faire de cette story.

Il arrive aussi que le spike amène à décomposer la story initiale en plusieurs autres, plus petites.

Quel est le temps consacré à un spike ?

Un spike est normalement limité à une durée fixée (principe du timeboxing) au début du sprint. La pratique recommandée veut qu'on ne passe pas plus d'une journée de travail (8 heures) sur un spike.

Un nom en français pour spike ?

En anglais un spike est une pointe. En français on pourrait dire une pique, qu'en pensez-vous ?

Notes

[1] c'est donc un autre cas où une exigence/story n'est pas finie en une seule itération après le cas de l'utilisabilité dont j'ai parlé récemment