Qu’est-ce qu’un Spike dans un projet Scrum ?

Ecrit par << Paquet Judicaël >>

Dans certains projets, il n’est pas toujours possible de quantifier une demande ; certains développeurs rejetteraient la demande. Le Spike est là pour compenser ce problème.

Types de demandes

Si j’ai une demande qui implique de la recherche, il est évident que complexifier cette demande n’aurait pas de sens. Si parfois les solutions sont automatiquement proposées par les développeurs, certaines problématiques sont bien plus complexes à résoudre.

Ce type de demande ne sont pas rares sur des projets comme en « Big Data » ou dans les grandes structures où on sait ce qu’on a besoin mais que nous n’avons aucune idée de comment récupérer les données nécessaires… Dans ce cas, mettre une complexité sur le ticket n’a pas de sens.

On pourrait aussi avoir ce soucis quand on a besoin de faire un choix entre plusieurs solutions mais que cela implique des tests et de la recherche complémentaire.

Un autre cas intéressant d’un besoin de spike peut apparaitre : une user-story est trop grande, il faudra étudier pour la découper voire pour mieux la définir.

Comment se gère un Spike ?

Contrairement à une user-story, on va « timeboxer » le spike afin de bien borner celui-ci. On va définir en début de sprint que le spike fera X heures/homme voire X jours/homme (je conseille vivement de ne pas dépasser 1 jour/homme).

Dans un projet où on fait des estimations

Cette méthode permettra de garder une bonne cohérence des roadmap et des planifications car en Scrum, nous utilisons la somme des complexités et la capacité pour planifier ; nous retirons le temps pris des spike du nombre de jour homme utilisé pour calculer la capacité.

Rappel du calcul utilisé pour planifier :

C = V1 / P1 * P2
  • C = la capacité soit la somme des complexités autorisées pour le Sprint 4
  • V1 = somme totale de la vélocité des précédents 3 sprint
  • P1 = nombre de jour de dev. des 3 précédents Sprint
  • P2 = nombre de jour de dev. du prochain Sprint

Dans un projet #NoEstimate

Dans un projet où on n’estime pas, les impacts des spike ne sont pas très importants. Cependant, il est quand même conseillé de « timeboxer » ses spike car les développeurs pourraient passer un temps indéfinie pour rechercher des choses. Il est souvent utile de cadrer les développeurs sur ce point car ils sont souvent dans l’envie de trouver la solution optimale et/ou de tester de nouvelles choses attractives.

Visuellement ?

Pour représenter les Spike, il est souvent intéressant de les faire sur des post’it d’une autre couleur comme ceci :

user-story et spike
user-story et spike

Pour l’écriture des Spike, j’aime bien garder le même format que les user-story afin de garder une cohérence générale sur les demandes. Par contre, le destinataire ne sera pas forcément un persona car les développeurs ou le Product Owner pourraient être la cible du Spike.

Bien ou pas bien ?

Certains n’aiment pas intégrer des spike mais c’est selon moi une bonne méthode pour avancer sur certains sujets. Il est préférable de faire un spike et de ne pas complexifier au maximum une demande qui n’est pas complexifiable dans les faits.

Il est évident que les spike doivent rester limité et ne doivent pas prendre le dessus par rapport aux user-story. Si c’était le cas, il faudrait peut-être voir pour faire un Discovery & Framing qui est une itération adaptée à la recherche (voir article sur Discovery & framing).

N’hésitez pas à profiter des spike si votre contexte en a besoin çar cette méthode permet de combler certaines problématiques rencontrées lors de projets Scrum.

 

8 réponses sur “Qu’est-ce qu’un Spike dans un projet Scrum ?”

  1. Superbe article, je ne connaissais pas les spikes et sincèrement il nous arrive de mettre une grosse complexité sur une us de type recherche qui au final se fait en moins d’une heure et du coup coup on passe pour des menteurs (voir pire) merci pour l’info 😉

    1. Merci Alexis. En effet le Spike permet souvent de répondre à certaines problématiques comme la tienne. Merci pour ton retour sur le sujet car en effet, ça peut aussi éviter des tensions 🙂

Laisser un commentaire

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