Il s'agit d'un sujet complexe, et il y a des débats fréquents sur le sujet. Je n'aime pas le concept d'opinion "canonique" à ce sujet: il existe différentes opinions qui ont de la valeur. Mais il existe des valeurs, des principes et des pratiques qui devraient guider l'approche.
Ce qui suit est basé sur mes propres opinions travaillant avec des équipes de mêlée depuis plus de 10 ans. Mais c'est juste MON avis.
Les récits comme méthode de prévision L'intention initiale des récits était de trouver une méthode rapide pour estimer l'effort dans le but de prévoir ce qu'une équipe peut accomplir pendant une certaine période. Certains des "sommités" indiquent que les points sont utilisés uniquement pour prévoir la portée à long terme (sur une version, par exemple), et non pour déterminer la capacité au niveau du sprint. De plus, le concept est que les équipes appliquent un "dimensionnement relatif" basé sur des valeurs historiques (l'effort X est similaire à l'effort B, qui était de 3 points). Cela accélère le processus d'estimation afin que les équipes n'aient pas à décomposer le travail futur en modules de travail détaillés et à appliquer des heures à toutes les tâches. Les équipes hautement performantes s'efforcent de faire de tous les travailleurs techniques des membres très compétents de niveaux de compétences similaires. (Ce concept sera exploré plus en détail au point 4). Lorsque cela est atteint, le niveau de compétence individuel n'est vraiment pas une variable de dimensionnement. MAIS: Il faut généralement beaucoup de temps et d'efforts concertés pour atteindre cet objectif. Alors ... que faisons-nous avant d'y arriver?
Les heures de tâche déterminent la capacité de sprint: selon les mêmes "sommités" qui déclarent que les points sont utilisés pour des prévisions à long terme, ils proposent également que les heures de tâche soient utilisées pour déterminer la capacité de sprint, plutôt que des points. À mon avis, c'est très bien, mais je dirai que lorsque j'ai aidé des équipes de coach à "Haute performance", leurs compétences nivelées se sont établies en moyenne à un niveau où elles pouvaient déterminer avec précision ce qu'elles pouvaient accomplir dans un sprint en utilisant uniquement des Story Points . Encore une fois, cela peut être un objectif vers lequel nous nous efforçons, mais les nouvelles équipes ne sont pas prêtes pour cela. Par conséquent, vous pouvez trouver dans un seul sprint une histoire avec 2 points qui a 12 heures d'effort et une autre avec 25 heures d'effort. Donc que fais-tu? Certaines personnes que j'appelle des "puristes agiles" diront que la taille de l'histoire (en points) doit être indépendante de la durée. D'autres ne sont pas d'accord. Lisez la logique du point 3 et voyez ce que vous en pensez.
- Story-Pointing par consensus: application du volume, des inconnues, de la complexité, des connaissances
Les équipes se penchent donc sur un travail et doivent se mettre d'accord sur les points qui seront un proxy pour le niveau d'effort. Droite? En supposant que toutes les compétences sont égales, le consensus est facile à atteindre. Mais souvent, les équipes ont un gars qui est un gourou de Java, un autre qui n'est pas si bon en Java (peut-être qu'elle était une personne C # ou .Net ou Cobol et apprend Java). La tâche X pour Bob est donc très simple. Pour Jane, c'est plus difficile.
Les équipes agiles essaient de promouvoir la propriété collective du code et l'expansion / l'expertise. Nous n'attribuons donc généralement pas d'histoires aux personnes en fonction de leur expertise: nous préférons que les équipes travaillent collectivement sur des histoires et apprennent ensemble. Cela correspond au concept de "ralentir pour accélérer": si nous prenons le temps de donner à Jane une expérience avec Java, alors que cela peut nous ralentir au début, nous aurons plus tard des développeurs Java plus compétents. En fait, si nous n'avons qu'un seul expert Java et que chacun travaille sur ses propres domaines d'expertise, nous créons une situation avec de multiples «points de défaillance» potentiels. Que se passe-t-il dans le sprint lorsque 90% du travail est Java, mais Bob (notre expert Java) est malade ou en vacances? En élargissant les compétences, nous éliminons les goulots d'étranglement potentiels et réduisons les risques. Dans cet esprit: Lorsque l'équipe regarde une histoire, elle doit avoir plusieurs concepts à l'esprit lors du dimensionnement. Vous pouvez penser à l'acronyme VUCK pour vous en souvenir.
Volume: Certains efforts sont assez simples, mais nécessitent un grand volume de tâches répétées. (J'ai eu un gars qui a dû copier et reformater plus de 50 tableaux qui a dit que c'était 1 point parce que c'était simple. être déplacé et optimisé. Nous avons donc dû réajuster les points en raison du volume de travail)
Inconnus: Parfois, nous pensons savoir quoi faire, mais nous identifions également certaines inconnues - elles représentent des RISQUES . Et cela implique que nous pouvons rencontrer des problèmes inattendus que nous devons résoudre, repenser ou essayer une solution différente.
Complexité: Celui-ci est assez évident. Certaines solutions sont techniquement complexes. Nous savons exactement quoi faire, mais cela nécessite une expertise technique. La complexité implique également un certain risque, n'est-ce pas? Donc, même si nous avons tous des compétences égales, la complexité technique implique que nous pourrions rencontrer des défis imprévus. Nous pourrions donc agrandir cette histoire.
Connaissances: savons-nous vraiment ce que nous résolvons? Parfois, les clients ne sont pas entièrement clairs sur la solution qu'ils souhaitent, et nous expérimentons un peu. Ou peut-être que personne n'a jamais mis en œuvre cette solution (nouvelle technologie jamais utilisée auparavant) et donc nous ne savons pas ce que nous ne savons pas.
À mon avis, chacune de ces considérations est en fait une approximation de la durée prolongée. Histoire facile, beaucoup de volume? Cela prendra plus de temps, ou nous devons diviser l'histoire. Inconnus? Risque supplémentaire, recherche, expérimentation, cela peut prendre plus de temps ou nous devons diviser l'histoire. Complexe? Risque supplémentaire, besoin de corriger les bugs, de refonte, etc., cela peut donc prendre plus de temps. Je ne sais pas si nous avons les connaissances requises? Nous avons un risque supplémentaire, nous pouvons avoir besoin d'expérimenter, etc., cela peut donc prendre plus de temps ...
Vous voyez où cela va? Ainsi, alors que le concept de points d'histoire nous décourage de penser à la durée lors de l'estimation, d'un autre côté, il serait illogique d'avoir une histoire en 1 point que nous pouvons terminer en 4 heures et une autre histoire en 1 point qui est simple mais qui prendra 2 semaines.
- Les équipes hautement performantes éliminent les silos et les goulots d'étranglement: parce que les équipes tentent de mettre à niveau tous les membres, elles ont parfois des membres moins expérimentés qui relèvent de nouveaux défis ou vont coder par paires pour partager les connaissances afin de s'améliorer en équipe. Comme mentionné précédemment, c'est une condition requise si l'équipe atteint un jour de vrais niveaux de haute performance.
Donc, si Jane se porte volontaire pour entreprendre cet effort Java et que cela ferait l'effort 2x ou 3x la durée du même effort si Bob le faisait, que faites-vous? Au fil du temps, mes équipes ont décidé de dimensionner les histoires en fonction du niveau d'effort (LOE) / VUCK pour les personnes travaillant. Cela n'a aucun sens pour Bob, le gourou de l'équipe, de dire "c'est un 1" alors que pour Jane, ce ne sera pas facile et cela prendra une semaine, et il faudra du temps à Bob pour le codage des paires et la révision du code. Par conséquent, nous avons augmenté ces points pour refléter la véritable LOE. La prochaine fois qu'une histoire similaire est venue, ce qui était un 8 pour Jane est devenu un 5. Finalement, tout le monde a convenu que c'était un 3. facile. À ce stade, nous savions que nous grandissions en équipe.