Action Agile ▸ Méthodes Agile ▸ Scrum ▸ Vélocité
A la base de Scrum il y a l'inspection qui revient à mesurer ce que l'on fait afin de déterminer ce que l'on fera plus tard. Contrairement à des méthodologies classiques, la volonté est ici de ne pas baser ce qu'une équipe va prendre sur une capacité en Jour/H mais sur la connaissance que l'on aura acquise par le passé sur ce que l'on est capable de faire.
La vélocité se mesure en point de complexité et non pas en Jours/Homme qui mesure plutôt une capacité. Quelle différence entre les deux?
Points de complexité
Les points de complexité offrent une valeur relative qui permet d'indiquer qu'une User Story a un niveau de complexité donné (1pt = peu complexe, 32pt = très complexe, 100pt = trop complexe pour pouvoir être estimé)
Lorsqu'une équipe se monte, sa capacité à prendre des sujets complexe sera plutôt limitée du fait de la méconnaissance du système, du besoin pour les membres de l'équipe de se connaitre pour travailler efficacement, etc. Au fur et à mesure du temps l'équipe sera capable de prendre de plus en plus de sujet de complexité ce qui implique que sa vélocité augmentera alors que le nombre de J/H disponibles restera plutôt stable (en fonction des périodes de congés).
Mesure de la vélocité
Mesurer la vélocité d'un sprint donné revient a mesurer le nombre de points de User Stories qui auront été livrées à la fin d'un sprint donné. Ce faisant on mesure la complexité d'éléments ayant de la valeur pour l'utilisateur.
Par exemple: si une équipe livre en fin de sprint 8 Epics dont les estimations sont de 2, 4, 20, 2, 8, 1, 0, 1 alors la vélocité du sprint sera de 38pt.
En ayant la connaissance de cette valeur, qui mesure concrètement ce qui aura été délivré en niveau de complexité, on sait que la même équipe sera capable de traiter un niveau de complexité similaire au prochain sprint soit autour de 38pt.
Habituellement la vélocité évolue au fur et à mesure du temps et que l'équipe travaille ensemble, assez significativement au début, beaucoup plus faiblement par la suite.
Quelquechose qui est équivalent à la courbe présentée ci-contre.
La mesure de la vélocité au fil du temps est importante car elle est un bon indicateur de la santé de l'équipe: si votre vélocité baisse pendant plus d'un ou deux sprints, et que la capacité reste stable, alors il y a un problème qui peut être de toute nature et qui doit apparaitre en Sprint Retrospective.
Les mauvaises pratiques
- Ne pas mesurer la vélocité
- Sans mesure de vélocité, on ne sait pas ce que l'on a été capable de faire par le passer et par conséquent, nous n'apprenons pas
- Impossible de déterminer avec précision ce que l'on sera capable de prendre sur les itérations suivantes sur une base pragmatique et mesuré
- Sans indicateurs, on ne voit rien et il sera plus difficile de déterminer un problème profond dans l'équipe
- Mesurer sa vélocité en Jours/Homme
- Se faisant, on ne prend plus en compte la dynamique d'équipe qui évolue dans le temps
- La mesure en J/H ne laisse plus d'espace pour les imprévus et les imprévus dans les projets il y en a toujours: plus le sujet est complexe, plus il y en aura. En disant que l'on sait gérer 33pt de complexité sur un sprint donné, on prend en compte la mesure du passé et donc les imprévus passé également. Sur une base de 30J/H, ce n'est pas le cas, on ne considère que le temps estimé nécessaire à la réalisation d'un sujet précis
- Réestimer les US en fin de sprint pour compter dans la vélocité le travail effectué et décaler le reste à faire au prochain sprint
- La vélocité sert à mesurer la valeur délivrée en fin de sprint. C'est la raison pour laquelle la vélocité ne contient que les US délivrées en fin de sprint (quelquesoit l'environnement)
- Découper les US pour prendre en compte le travail réalisée dans un sprint et non pas ce qui est livré, revient à mesurer une quantité de travail et non pas une valeur utilisateur.