Notre analyste d'affaires et nos chefs de projet nous disent les exigences du client en tant que récits. A chaque planification de Sprint, nous (développeurs) sommes invités à jouer à la planification de poker.
Ils nous ont tous demandé de considérer la «complexité» plutôt que «l'effort». Nous sommes vraiment confus et nous perdons du temps dans nos réunions. Un développeur a posé une question: «Que devrions-nous vraiment vouloir considérer? S'agit-il du changement de code / DDL que nous devons faire dans cette exigence (estimation du temps) ou s'agit-il de savoir si nous avons ou non compris l'exigence? »
Mais qu'entendent-ils (analyste commercial et chefs de projet) par «comprendre l'exigence» et «élever une carte»?
De plus, nous avons des réunions de découpage pour les équipes Scrum individuelles, où chaque développeur donne une estimation du temps pour une tâche donnée pour chaque équipe Scrum. Alors, de quoi parlent-ils vraiment dans Planning Poker?
Quelqu'un peut-il expliquer cela à l'aide d'un exemple? Essayez de différencier ce dont ils parlent vraiment lorsqu'ils disent «complexité» et «effort».
Réponses:
Tenez compte du point de vue du chef de projet
En demandant de la complexité, ils veulent un nombre qu'ils peuvent comparer avec votre prochain sprint pour trouver votre vitesse en équipe. Ils peuvent également essayer de l'utiliser pour additionner votre résultat avec les estimations d'autres équipes pour fournir une estimation globale sur le moment où toutes les histoires seront terminées.
Le chef de projet cherche une estimation de la date à laquelle le projet sera terminé, ou s'ils sont flexibles des autres côtés du triangle temps-fonction-coût, quels autres sortants peuvent être tirés pour l'adapter au temps restant. Ce n'est pas déraisonnable. Les décisions commerciales devront être prises sur la base de cette estimation. Le problème est qu'il est vraiment difficile d'estimer cela pour un logiciel. Planifier le poker est l'un des moyens de résoudre ce problème. Plutôt que de le voir simplement en additionnant le nombre de points d'histoire, pensez plutôt à cela comme une fonction plus complexe d'estimation aussi bien que possible, de faire le travail, de mesurer combien de temps cela a pris, d'itérer, puis d'extrapoler.
La discussion est plus importante qu'un certain nombre
Je trouve que la partie la plus importante des réunions de pointage est les discussions qui ont lieu. Si quelqu'un dans l'équipe n'est pas sûr de suggérer un nombre, alors il ne comprend probablement pas complètement l'histoire et il doit y avoir plus de discussions. Extrait du Manifeste Agile "Collaboration client sur négociation de contrat". Plutôt que de simplement spécifier un contrat écrit comme une histoire d'utilisateur et de dire que l'équipe a échoué si elle ne fait pas exactement ce que vous voulez, il est toujours préférable de parler de ce que le client veut vraiment jusqu'à ce que vous le compreniez.
Complexité contre effort
Pour répondre à votre question spécifique sur la complexité par rapport à l'effort, tout le monde semble avoir une opinion différente à ce sujet. Mountain Goat , qui sont les personnes qui fabriquent les cartes de planification de poker qui ont des chèvres sur le dos et dont le propriétaire Mike Cohn est grand dans le monde Agile / Scrum, dit que cela devrait être l'effort et non la complexité.
Il n'est généralement pas considéré comme une mesure du temps (voir l'exemple ci-dessous pour un contre-exemple) car les gens sont mauvais pour estimer le temps, avec d'autres facteurs affectant le nombre qu'ils donnent: par exemple, la pression pour maintenir le nombre bas afin que vous puissiez adapter plus de fonctionnalités dans, la pression pour donner un nombre plus élevé pour vous donner de la place si vous rencontrez un problème. La création de logiciels est difficile. Lorsque vous construisez votre 100e maison, vous pouvez estimer le temps qu'il vous faudra, car vous avez déjà construit 99 maisons. Si le logiciel que vous construisez est le même que les programmes précédents que vous avez construits, vous pouvez copier et coller, tout projet de logiciel vaut la peine et aura donc des problèmes que vous n'aviez pas prévus au début.
Comme pour les estimations de temps contenant des pressions cachées, une mesure de l'effort présente également des problèmes. Si un développeur junior estime une grande complexité, il peut avoir le sentiment de se laisser attaquer comme n'étant pas assez bon des autres qui lui donneraient une estimation inférieure. Cela est non seulement préjudiciable à vos estimations, mais aussi aux membres de l'équipe.
Les numéros de poker de planification ne sont pas des «nombres de jours» ou une autre mesure du temps, ils sont une mesure relative pour pouvoir comparer deux user stories. La première chose que vous devez faire dans une nouvelle équipe est d'établir une base de référence. Choisissez une histoire d'utilisateur qui se trouve au milieu de la plage de complexité et convenez en équipe d'un numéro au milieu de la plage que vous souhaitez lui attribuer. Désormais, toutes les autres user stories peuvent être numérotées par rapport à celle-ci. J'ai trouvé que cela le rend beaucoup plus facile.
Raisons pour lesquelles vous ne pouvez pas donner d'estimation
Lorsque les chefs de projet vous demandent quand un projet sera terminé, ils doivent comprendre la complexité de la question qu'ils posent. Les programmeurs ne sont pas des ouvriers d'usine, où leur productivité peut être mesurée en multipliant la vitesse à laquelle ils tapent par la durée de leur travail. Ils trouvent des réponses aux problèmes et c'est difficile. En jouant au poker de planification, vous identifiez d'abord les membres de l'équipe qui pensent qu'ils ne peuvent pas répondre à la question du numéro à attribuer, puis vous vous demandez pourquoi ils ne peuvent pas répondre à cette question. Je pense qu'il y a au moins quatre raisons:
Conclusion
Je pense que le point devrait vraiment être la discussion, mais si vous avez vraiment besoin de donner un numéro à quelqu'un, essayez simplement d'en faire un qui soit indépendant du membre de l'équipe qui y travaille et de l'ordre dans lequel les histoires sont travaillées. L'important est d'accéder à un journal de retour qui est à la fois priorisé, de sorte que vous travaillez dessus dans le bon ordre et de la taille, afin que le chef de projet puisse voir à peu près combien de personnes vous pouvez intégrer avant votre date limite. Vous devriez pouvoir vous arrêter à la fin de toute itération et expédier avec toutes les fonctionnalités terminées qui avaient été démarrées.
avertissement
Vous pouvez estimer le temps nécessaire pour effectuer les tâches au sein de votre équipe autant que vous le souhaitez tant que vous gardez les chiffres pour vous. Une fois que vous avez permis à n'importe quel numéro d'échapper à l'équipe et d'être vu par d'autres personnes, ils feront des choses avec ce numéro que vous ne vouliez pas. Ils essaieront de l'utiliser pendant plusieurs jours pour terminer les tâches. Ils essaieront de vous maintenir à la cote de complexité relative et vous demanderont pourquoi il vous a fallu plus de temps pour terminer une user story qu'une autre avec le même nombre de points. Ils additionneront vos chiffres et les compareront aux numéros des autres équipes et vous demanderont pourquoi l'autre équipe `` fait plus de travail '' alors qu'elle complète plus de points d'histoire dans une période de temps. Vous pouvez'
De côté
Les numéros de poker de planification sont normalement distribués de telle sorte que les écarts entre les numéros continuent de s'agrandir. Je crois que cela vise à décourager les gens de se demander si une histoire d'utilisateur est un 16 ou un 17, si elle est plus grande qu'un 13, alors faites-en un 20.
Exemple
Je connais au moins une équipe qui n'utilise que les numéros 1, 2, 3 et 4 pour planifier le poker. Contrairement à la convention et contrairement à la discussion ci-dessus, ils les définissent comme des jours de programmation (en fait, des jours de programmation en paire, c'est-à-dire combien de jours il faudrait deux programmeurs travaillant ensemble sur la même machine pour terminer la user story). Si l'équipe pense qu'il faudrait plus de 4 jours pour terminer une user story, celle-ci n'est pas indiquée et le responsable du produit est invité à travailler avec l'équipe pour décomposer davantage l'histoire ou la spécifier plus précisément afin qu'elle puisse dans cette fourchette pour une future réunion de planification. Mais ceci est agile avancé et ne devrait probablement être utilisé que par des personnes qui sont déjà expérimentées dans l'utilisation des autres techniques.
la source
Je pense que les réponses de Frank et d'Encaita le couvrent à peu près, mais il y a d'autres choses à considérer:
Pourquoi utiliser des points d'histoire
Le but de l'estimation avec des points d'histoire est de donner la complexité relative du développement de fonctionnalités pour votre application. Une façon simple d'y penser est de prendre une histoire que vous avez dans le sprint à venir, par exemple un changement d'URL. Vous savez que c'est simple en termes de complexité, et a des critères d'acceptation clairement définis, donc toute l'équipe convient que même avec les tests, c'est un 1 (en utilisant l'échelle Fibo).
L'histoire suivante à estimer consiste à agréger un ensemble de données utilisateur et à les visualiser en amont. Maintenant, en tant que développeur, vous savez immédiatement que c'est beaucoup plus complexe que de changer une URL. Vous discutez de l'histoire et des critères d'acceptation et vous avez beaucoup de questions et pouvez voir plusieurs solutions possibles pour ce faire. Les autres développeurs et QA conviennent également que c'est très complexe. Vous êtes donc tous d'accord pour dire qu'il s'agit d'une histoire en 34 points. Il convient de noter que l'échelle de Fibo vous permet également d'indiquer le degré de confiance que vous avez dans l'esimate - plus les écarts entre les chiffres sont importants, moins vous avez confiance en votre estimation.
À ce stade, votre Scrum master devrait sauter et dire que cette histoire est trop grande et doit être décomposée en histoires plus petites et moins complexes. Vous pouvez aborder cela en faisant ce que l'on appelle des pointes - c'est juste un peu de temps réservé pour enquêter sur quelque chose. Donc, pour cet exemple, vous et les autres développeurs convenez que vous voulez 4 heures pour discuter et étudier les solutions techniques possibles.
Pour résumer une longue histoire, vous divisez cette grande histoire en quatre autres histoires de 5, 8, 8 et 13 points. N'oubliez pas que ces estimations portent toutes sur la complexité relative - elles n'ont pas à s'additionner à l'estimation d'origine et vous disposez maintenant de plus d'informations pour faire une estimation plus précise.
Vous convenez ensuite en équipe que pour ce sprint, vous viserez à faire l'histoire de 13 points, une histoire de 8 points plus le changement d'URL de 1 point que vous aviez déjà identifié. Soit un total de 22 points. Le sprint suivant, vous obtenez 27 points, le sprint suivant, vous obtenez 18 points. Après 3 sprints, vous pouvez commencer à avoir confiance en votre vitesse (la vitesse est la quantité de travail que votre équipe peut effectuer en un seul sprint). Pour obtenir la vitesse, prenez la moyenne des sprints précédents. Donc, dans cet exemple, la moyenne est (22 + 27 + 18) / 3 = 22,3 alors arrondissez-la au plus proche sur l'échelle de Fibo qui est 21.
Maintenant, pour le prochain sprint, visez simplement à obtenir 21 points.
Ne vous attardez pas à obtenir votre estimation de point d'histoire exactement - ce n'est pas une science exacte. Vous savez qu'un changement d'URL est beaucoup moins complexe que l'agrégation de données, il suffit donc de le noter en conséquence.
De plus, discuter de ces choses en équipe est une bonne chose. Revoyez vos estimations lors de la révision du sprint et discutez si vous en êtes satisfait ou non, puis insérez-les dans la prochaine session de planification du sprint.
L'estimation de toute l'équipe
Toute l'équipe doit se mettre d'accord sur une estimation unique pour chaque histoire. Une fonctionnalité n'est pas terminée tant qu'elle n'est pas prête pour la production. Le simple fait d'écrire le code n'est en aucun cas fait. D'après mon expérience, les équipes Scrum ont été beaucoup plus efficaces lorsqu'elles travaillaient en équipe. Prenons un exemple de l'équipe avec laquelle je travaille en ce moment. Quand j'ai rejoint, ils faisaient toutes les réunions de sprint et planifiaient le poker mais pendant le sprint le processus était de 1. Les BAs / Product Owners définissent les exigences comme des histoires avec des critères d'acceptation et des tests d'acceptation 2. Ils remettent ces exigences au développeur qui écrit ensuite le code 3. Le développeur a fusionné le code dans la branche de développement pour QA à tester 4. Test QA puis ils commencent à poser des questions et les tests échouent donc il revient dans le développement.
Qu'est-ce qui manque ici? Il n'y a pas assez de discussions à l'avance et chaque membre de l'équipe n'a vu que sa propre tâche. Maintenant, le BA / PO, les développeurs et le QA se réunissent avant d'écrire n'importe quel code pour discuter des exigences en détail et poser des questions à l'avance, puis poursuivre la discussion tout au long du sprint. Ceci est beaucoup plus efficace et conduit à des solutions de meilleure qualité.
La planification du poker facilite ce processus car elle oblige l'équipe à discuter de la fonctionnalité et à convenir, en équipe, de la complexité de la livraison de cette fonctionnalité. Dans le développement de logiciels traditionnels, le chef de projet était responsable de la livraison du projet, mais toute personne ayant une expérience de cette approche sait que cela ne fonctionne pas parce que le plus souvent, les gens ne prennent pas la responsabilité de leur part dans la livraison de l'application. Dans Agile, vous ne devriez pas avoir besoin de chefs de projet car l'équipe prend la responsabilité dans son ensemble de la livraison de l'application.
Estimation ponctuelle des tâches
À mon avis, avoir travaillé avec des équipes qui estiment le temps consacré à des tâches et des équipes qui ne font que des estimations de point d'histoire est NE PAS FAIRE D'ESTIMATIONS DU TEMPS! Ils ne sont en fait qu'une perte de temps. Ils ne sont pas aussi précis que les points d'histoire parce qu'ils sont spécifiques aux individus et non à l'équipe, et chaque individu aura une idée différente de l'estimation du temps (allumez la flamme).
Les points d'histoire acceptent que les choses, c'est-à-dire les exigences, changent tout le temps, donc vous avez vraiment besoin d'un indicateur de ce que l'équipe peut accomplir dans un sprint.
Une fois que vous avez compris la vitesse, vous pouvez mesurer vos livrables dans le temps car vous savez ce que vous pouvez faire à chaque sprint, par exemple toutes les deux semaines, vous savez quelles fonctionnalités peuvent être livrées. Votre Scrum Master et les propriétaires de produits devraient avoir des séances d'estimation pour anticiper les futurs sprints, puis vous pourrez obtenir un indicateur de la quantité de travail que vous ferez dans les prochains mois. Cela permet aux propriétaires de produits de prendre des décisions de priorisation sur les fonctionnalités à inclure dans l'application finale.
J'ai eu des développeurs qui demandent que nous estimions le temps pour les tâches afin de planifier, mais je suis en fait en désaccord avec cette approche (en fait, je suis fortement en désaccord avec cette approche) parce qu'elle n'est pas précise, par exemple ce que cela me prendra 4 heures signifie vraiment: un développeur peut inclure uniquement le temps sur la tâche elle-même, quelqu'un d'autre peut ajouter du temps pour faire des tasses de thé!
Les estimations de temps sont toujours remises à quelqu'un d'autre à des fins de création de rapports et surestiment également les éléments individuels de la fourniture d'une fonctionnalité par rapport à l'effort de toute l'équipe.
L'estimation n'est pas le plus gros problème
Soit dit en passant, déterminer l'estimation n'est pas le plus gros problème que les équipes doivent résoudre, je pense. La chose la plus importante est de travailler ensemble en équipe pour faire avancer les choses tout au long du sprint, afin de ne pas tout remettre pour les tests du dernier jour. Vous voulez voir un filet constant de fonctionnalités tout au long du sprint de 2 semaines. La dynamique d'équipe que j'ai expliquée ci-dessus en est une grande partie. L'estimation des points d'histoire vous aidera à planifier cela, car vous verrez quelles sont les grandes histoires qui doivent être décomposées en plus petites qui peuvent être livrées régulièrement dans les tests.
la source
Wikipedia explique assez bien la planification du poker . Permettez-moi de récapituler certains de ce qui s'y trouve en mettant l'accent sur votre cas:
Pourquoi planifier le poker?
Tout d'abord, vous devriez tous être à bord pour savoir pourquoi vous faites un poker de planification par opposition à une estimation "normale". La raison est en fait assez simple: nous aspirons tous beaucoup de temps lorsqu'il s'agit d'estimer du temps pour une tâche. Presque toutes les études ont révélé que le cerveau humain est tout simplement incapable d'estimer une tâche qui prend un temps raisonnablement long. (C'est également une raison pour laquelle les billets qui dépassent 2-3 jours dans leur estimation sont à peu près sans valeur en termes d'estimation.)
Pourquoi la complexité plutôt que l'effort?
Cela va de pair avec ce qui précède. L'effort signifie généralement du temps , et nous aspirons à cela. La complexité est plutôt difficile à quantifier objectivement, ce qui est une bonne chose dans ce cas. C'est votre instinct qui vous dit que cette histoire va être complexe. Pour quelqu'un d'autre, cela peut être moins complexe. Mais vous n'avez pas besoin de quantifier exactement à quel point c'est vraiment complexe. Vous n'avez pas besoin d'obtenir ce nombre
X
de complexité - par opposition à un effort chronométré, où vous devez finalement convenir que cela prend desX
jours ou plus.Pourquoi cacher les cartes?
Les cartes avec votre complexité d'invité sont jouées cachées puis révélées d'un coup. Ceci est fait pour vous assurer que vous n'êtes pas influencé par les opinions des autres avant de faire votre propre estimation initiale. Si tout le monde a à peu près le même sentiment d'intestin en termes de complexité, alors vous avez terminé. S'il y a des nombres extrêmement différents, vous savez qu'il y a quelque chose à discuter caché là-bas. De cette façon, vous pouvez traiter très rapidement des histoires pour lesquelles tout le monde a la même idée de la complexité / de l'effort requis.
Pourquoi les numéros de Fibonacci?
Les nombres sur vos cartes sont typiquement des nombres de Fibonacci ou un autre type de séquence avec beaucoup de lacunes dans les nombres. C'est pour vous forcer à faire pleinement confiance à votre intuition. Si vous devez choisir entre 8 et 13, c'est beaucoup plus une affirmation que d'aller pour 9 ou 10. En outre, comme mentionné ci-dessus, les grandes différences sont là où se trouvent les problèmes cachés, donc en élargissant les écarts, vous augmentez les chances de mieux détecter ces problèmes.
Pourquoi est-ce que cela fonctionne?
Fait intéressant, les premières fois que vous faites un poker de planification, cela ne fonctionnera pas. C'est aussi simple que ça. Que signifie "3" ou "5"? Il n'y a pas de définition de la signification de chaque numéro (exprès!) Et c'est à toute votre équipe de découvrir la signification réelle de chacun de ces chiffres. Ce n'est qu'après avoir accepté d'estimer vos histoires dans ces chiffres - et après en avoir réalisé plusieurs - que vous avez une meilleure idée du moment où vous devriez augmenter un 5 et quand c'est plutôt un 8.
Une fois que vous combinez cela avec le concept de vitesse et mesurez vos progrès de sprint via ces points d'histoire, vous avez une toute nouvelle échelle d'efficacité qui est plus ou moins indépendante des estimations de temps traditionnelles.
Néanmoins, pour moi personnellement, le point le plus avantageux de la planification du poker est qu'en utilisant des nombres de fibonacci au lieu d'estimations de temps, vous avez beaucoup plus de facilité à détecter les incertitudes. Avec les estimations de temps classiques, vous n'êtes pas obligé de prendre des décisions aussi «extrêmes» (en raison des écarts de nombre), par conséquent, les estimations peuvent être assez rapprochées et l'équipe peut croire à tort qu'elle a assez bien compris l'histoire.
Exemple
Un exemple simple de ce qui se passe généralement est qu'une histoire est présentée, puis la personne A émet une objection. C'est quelque chose du genre "veuillez ne pas oublier que cette fonctionnalité affecte X et cela peut signifier qu'elle est plus coûteuse que ce que nous pensions jusqu'à présent". Le principal problème est qu'il y a toujours cette personne A à la table. Il y a toujours quelque chose qui inquiète quelqu'un. Si vous avez une discussion ouverte, vous n'avez aucune idée de l'ampleur de l'inquiétude de cette chose X.
Si vous faites des estimations cachées en fonction du temps, cela s'améliore un peu. Mais encore, une personne A avec une objection valable peut ne pas être une valeur aberrante claire dans son estimation pour le moment. D'un autre côté, avec la planification du poker, la personne A doit réfléchir davantage à l'ampleur du problème réel X. Pour deux problèmes différents, vous ne pouvez pas correctement distinguer leur importance par le "texte d'objection prononcé" ci-dessus. Même avec des estimations de temps, il est assez difficile de voir lequel pose le plus de problèmes. L'espoir d'utiliser le poker de planification ici est que vous vous retrouvez avec une objection à seulement 2-3 points différente des estimations des autres, mais l'autre objection qui s'est retrouvée à 5 ou 8 points de la médiane peut être l' incertitude la plus importante de votre planification de sprint.
la source
Après des dizaines d'itérations dans mon équipe, nous avons compris que les points d'histoire concernent principalement le pilotage de projet à moyen terme. Ils permettent au propriétaire du produit de se projeter 2 ou 3 sprints à l'avance et de prendre des décisions commerciales et de portée sur une version, en fonction d'une vitesse moyenne.
Nous avons découvert que les points d'histoire ne sont pas tellement utiles au niveau du sprint, car aucun 2 sprints ne sont similaires et il est impossible de prédire la quantité de travail à faire. Par conséquent, nous avons décidé que nous ne devrions pas être obsédés par la partie estimation et prendre simplement la planification de sessions de poker comme prétextes pour une conversation sur les fonctionnalités.
Cela rejoint un point soulevé par Mike Cohn ici .
En remarque, cela est vrai pour une équipe donnée, mais il n'y a pas de règle sur la façon dont les points d'histoire vous aideront. Je vous recommande d'abord de vous en tenir à la méthodologie, mais essayez de découvrir rapidement par vous-même si et comment elles sont utiles. Les rétrospectives vous aideront à y réfléchir.
la source
Le problème fondamental ici est qu'il est cassé. Le PM veut utiliser la planification du poker pour avoir une idée de la complexité de chaque histoire, avec l'intention de savoir à peu près combien d'histoires peuvent être intégrées dans un sprint (la vitesse de l'équipe).
En conséquence, c'est un "non basé sur le temps" qui est "basé sur le temps". Ce n'est pas étonnant que tout le monde soit confus.
Il existe des moyens de faire en sorte que cela fonctionne pour vous. Tout d'abord, oubliez l'effort et concentrez-vous sur la complexité. Oubliez tout sur le temps que cela pourrait prendre pour se développer et se concentrer plutôt sur les domaines que chaque histoire affecte. Si vous avez une histoire qui met à jour la base de données, le code du serveur, le code client et la documentation client, vous pouvez dire que c'est une histoire en 4 points. S'il ne s'agit que d'une modification du SQL DB, alors c'est une histoire en 1 point. Cela vous donne un moyen plus compréhensible de comprendre la complexité relative entre les histoires. (Vous devrez trouver des mesures qui conviennent à votre situation, peut-être tester les exigences de couverture ou la complexité de l'interface utilisateur)
Mon opinion générale est cependant que c'est une perte de temps inutile qui encourage simplement la planification du sprint comme s'il s'agissait de mini-projets en cascade. Qui se soucie vraiment du nombre de points d'histoire que vous pouvez intégrer dans un sprint? Si vous avez des histoires restantes à la fin d'un sprint, faites-les simplement dans la suivante. Cela étant, vous pourriez tout aussi bien faire en sorte que votre carnet de commandes soit de la taille de chaque histoire exceptionnelle que vous avez et les réduire progressivement au fil du temps. La livraison prend autant de temps (mais ce sera plus rapide si vous n'avez pas pris la peine de perdre 20% de votre temps dans les réunions de planification du backlog et du sprint). À la fin du projet, personne ne se soucie du nombre de récits qui ont été livrés. Ce qui importe aux gens, c'est le projet livré.
la source
Le pointage de la user story permet également à l'entreprise de savoir si quelque chose doit être renégocié. si vous avez un mois pour terminer un travail que vous avez noté 100, vous pourriez avoir des ennuis. cela vous donne également la chance de diviser une histoire épique en quelque chose de plus petit qui a encore de la valeur et peut être complété en un sprint.
la source