L'équipe estime les points de l'histoire, les entreprises veulent du temps réel


15

Je suis sûr que ce n'est pas un thème rare. Nous avons deux équipes Scrum qui font un bon travail d'estimation des user stories à l'aide de points d'histoire (les constellations actuelles de l'équipe n'ont que 8 mois environ, bien que les membres de l'équipe aient plusieurs années d'expérience Scrum). Mais il est difficile pour la partie commerciale de l'entreprise de se rapporter aux histoires d'utilisateurs; ils veulent des unités de temps réelles (ou "une formule pour convertir les points d'histoire en heures") afin de pouvoir planifier quand les choses seront prêtes ( "nous devons savoir quand nous pouvons dire aux clients que Feature X sera en production"). " ).

Moi et mes prédécesseurs du Scrum Master, j'ai bien sûr expliqué qu '"il n'y a pas de relation définie entre les points d'histoire et le temps réel" et que "les points d'histoire sont utilisés pour déterminer combien l'équipe peut tenir dans un sprint", et je suis vous pouvez deviner à quel point ils étaient satisfaits de cette réponse. Ils veulent toujours savoir, dans le temps calendaire, quand nous arriverons à cette 27e histoire d'utilisateur sur l'arriéré.

Dans tous les cas, j'ai compilé des statistiques, et nos estimations SP se traduisent par des résultats en temps réel très différents (mesurés par notre logiciel Scrum Board, qui garde la trace du temps passé par les tickets dans la colonne "Travailler sur") ). Pour les user stories 1-SP, il y a bien sûr un fort biais en faveur de très courtes périodes (avec des explosions occasionnelles), mais surtout pour les stories 2-SP, elles sont partout: il y a un facteur de 20 entre les finitions "les plus rapides" et les "plus lentes". Pour les histoires à 3, 5 et 8 SP, l'écart est également plus qu'un facteur 2.

Cela indique que (a) l'équipe doit être beaucoup plus cohérente dans l'estimation des user stories de (ce qui devrait être) une complexité similaire, et (b) l'équipe doit améliorer sa précision dans les rapports de temps (c'est-à-dire se souvenir de déplacer les tickets hors de "travailler" lorsqu'ils sont en réunion, au déjeuner ou en train de jouer au baby-foot).

J'ai l'intention d'améliorer à la fois (a) et (b), mais je pense que cela ne suffit pas, que l'entreprise s'attend à "plus de concrétisme" que ce que ces initiatives produiront.

Quelles sont les bonnes stratégies pour apaiser le côté commercial , afin qu'elles n'interfèrent pas trop dans la façon dont nous travaillons (par exemple, en imposant l'utilisation d'un suivi du temps séparé, ce qui à mon humble avis serait stupide car il serait en tout cas moins précis que le suivi "automatique" actuel), tout en leur permettant en même temps d'obtenir une certaine mesure de la concrétisation du moment où les histoires seront réalisées?

(Historiquement, lors de la planification, nous avons décomposé les histoires d'utilisateurs en éléments de travail qui ont ensuite été estimés individuellement en temps de travail réel , mais ce dont je parle ici sont les histoires d'utilisateurs dans le journal de dos qui n'auront pas ce niveau de détail ou de rupture -vers le bas.)

Mise à jour: Mon manager avait le pressentiment qu'il y avait une sorte de distribution de la courbe en cloche des heures passées par point d'histoire, mais les données que j'ai rassemblées et les graphiques qu'il a dessinés l'ont complètement désabusé de cette notion. :-)


1
En fait, je suis aussi curieux à ce sujet, car mon équipe est sur le point de passer à SP. Pourquoi le 2-SP est-il si volatil? Ne lui attribuez-vous pas 2-SP parce que vous estimez que la tâche est rapide? Si c'est le cas, la volatilité serait toujours là même si vous calculiez plutôt avec le temps. Sauf que vous pourriez passer deux semaines sur un billet où vous pensiez que cela prendrait 3 jours. C'est la même volatilité sur les deux mesures, non?
Alec

3
Si vous avez déjà priorisé et estimé les 27 prochaines histoires, vous pouvez dire dans quel sprint la 27e histoire devrait aller, n'est-ce pas? Et cela donnera une date de livraison estimée. Bien sûr, vous aurez tort, mais c'est votre estimation actuelle. Qu'est-ce que je rate?
Arrêtez de nuire à Monica le

4
C'est pourquoi ils les appellent des estimations et non des prédictions précises. Les techniques standard pour aider à sauver votre cul lorsque vous devez fournir des estimations s'appliquent. Et si vous appliquez une correction basée sur des preuves objectives que vos estimations ont une incertitude élevée et un biais systématique, cela ne compte même pas comme de la triche.
Arrêtez de nuire à Monica le

3
Peut-être que le 27e élément doit être déplacé vers la plus haute priorité?
Andy

1
@LewisPringle Disons que je veux faire une prédiction sur l'emplacement de Chuck Norris. Je pourrais dire "1600 Pennsylvania Avenue" et s'il est à la Maison Blanche, ce serait une prédiction assez précise et précise. Cependant, s'il ne l'est pas, alors c'est toujours précis, mais inexact. Je pourrais dire "continent américain". Beaucoup moins précis mais plus vraisemblable à un moment donné. Ou je pourrais dire "sur terre", ce qui est très probablement exact mais c'est tellement imprécis qu'il est effectivement inutile. Le résultat est que nous devons connaître la précision d'une estimation afin d'évaluer sa précision.
JimmyJames

Réponses:


16

Vous avez raison, il n'y a pas de formule pour convertir les points d'histoire en heures. Vous pouvez obtenir une conversion sans perte de mètres en pieds, et vice versa, mais vous ne pouvez pas dire qu'une histoire de 3 points prendra X heures, donc une histoire de 5 points prendra Y heures (résoudre pour Y).

HorusKol a abordé cette partie suivante. Votre vitesse de sprint en équipe peut vous aider avec les livrables à plus long terme. Supposons que votre équipe soit à 50 points par sprint, et chaque sprint est de 2 semaines. Donc, 50 points par sprint multipliés par 50 semaines dans une année (en supposant que les gens prennent 2 semaines de congé pour les vacances), votre équipe actuelle peut faire un maximum de 2500 points en 12 mois.

L'entreprise vous propose donc 170 points d'histoires et d'épopées. Divisez cela par la vitesse historique de l'équipe de 50 points (une moyenne de chaque sprint jusqu'à présent) et vous obtenez 3,4 sprints. Puisque nous faisons une estimation, arrondissez à 4 sprints: 8 semaines. Deux mois, en gros. J'aime aussi prendre les 3-4 derniers sprints et faire une autre estimation. Supposons que votre équipe au cours des 3 derniers sprints ait marqué respectivement 53, 67 et 55 points. Cela équivaut à 58 points, ce qui à ce rythme est de 2,9 sprints - donc en gros 3 sprints. On dirait que votre chronologie pour ces 170 points ressemble à 6 à 8 semaines.

Dites à l'entreprise 2 mois. Ne leur dites pas 6 à 8 semaines, car ils entendront simplement «6 semaines». Ne leur dites même pas 8 semaines, car la plupart des mois contiennent environ 4,5 semaines et lorsque les gens entendent «4 semaines», ils pensent instantanément «1 mois». Une fois qu'une estimation atteint environ 4 semaines, elle devient 1 mois. Ensuite, il suffit de travailler en mois. Si vous atteignez un an ou plus, alors honnêtement, n'évaluez pas ce travail. C'est inutile. Trop de choses peuvent changer en un an.

J'ai trouvé que c'était un moyen assez précis de convertir des points d'histoire en heures ... enfin du temps, de toute façon.

Vous obtiendrez un écart dans le temps nécessaire pour terminer des histoires individuelles. Certains développeurs travaillent plus rapidement que d'autres. Mettre tous les points d'histoire dans un bol et allumer le mélangeur pour travailler avec des moyennes aide à atténuer ces incohérences.

Oh, et n'oubliez pas la partie la plus importante:

Rassembler. Toujours.


Ce serait formidable si vous pouviez utiliser certaines connaissances en statistiques pour définir vos intervalles de confiance à 90%, 95% et 99%. Cela devrait fonctionner mieux que la vitesse moyenne, surtout lorsque les données historiques ne sont pas très nombreuses et que la variance est importante.
Hosam Aly

8

Vous avez probablement déjà une conversion inhérente des points d'histoire aux estimations de temps - comment décidez-vous que vous avez choisi suffisamment de travail pour votre sprint? Vous avez probablement dit quelque chose comme "l'équipe peut gérer 20 (ou 40 ou autre) points par semaine". Après quelques sprints, vous devriez être en mesure de réviser cela en fonction de l'achèvement - alors maintenant c'est 15 ou 25 (ou 35 ou 50 ou ...) points par sprint - c'est la vitesse de votre équipe .

Pour les user stories 1-SP, il y a bien sûr un fort biais en faveur de très courtes périodes (avec des explosions occasionnelles), mais surtout pour les stories 2-SP, elles sont partout: il y a un facteur de 20 entre les finitions "les plus rapides" et "les plus lentes". Pour les histoires à 3, 5 et 8 SP, l'écart est également plus qu'un facteur 2.

Une certaine variation dans le temps pour terminer des histoires spécifiques est acceptable dans les valeurs en points - la vitesse gère cette incertitude en étant une moyenne sur l'histoire récente.

Cependant, vous devrez peut-être examiner attentivement la façon dont vous attribuez des points, en particulier ces 2 pointeurs si vous obtenez une fluctuation aussi importante. Les tâches de niveau supérieur sont censées être incertaines (et doivent être ventilées) - mais les tâches aussi petites qu'un pointeur à 2 doivent être assez cohérentes.

Étant donné que toutes les tâches affectées à la même valeur de point doivent nécessiter des efforts similaires, il n'est pas logique qu'il y ait une telle plage de temps à terminer.

Alors, regardez le pointeur 2 qui a pris le plus de temps dans votre rétrospective. Pourquoi quelque chose qui aurait probablement dû être transformé en matinée de 10 jours? Aurait-on pu signaler quelque chose ce premier matin pour dire "cela doit devenir épique et divisé en tâches plus petites"? Dès que cela se produit, bien sûr, le travail supplémentaire nécessaire doit être mis dans l'arriéré et ne pas interférer avec le reste du sprint.

Aussi, essayez de voir comment l'équipe a sous-estimé cet élément - pourriez-vous faire mieux sur les éléments futurs après l'avoir examiné?

Oui, la date de livraison sera repoussée en conséquence, ou la liste des fonctionnalités d'une mise à jour pourrait être révisée afin que la livraison ne soit pas affectée. Mais l'objectif est d'améliorer les estimations ponctuelles futures, ainsi que d'obtenir une chronologie plus précise.


Oui, quelque chose ne va pas avec ces tâches 2-SP. J'allais dire que les développeurs mettent ces estimations quand ils voient une tâche difficile et prévisible. Mais pourquoi deviner si vous pouvez examiner ces tâches et en découvrir la raison
max630

3

C'est comme la météo: plus loin, moins fiable. C'est une analogie que tout le monde comprendrait. Les erreurs d'estimation s'additionnent.

Les ventes doivent apprendre à parler en termes Scrum aux clients. Scrum n'a pas de sens isolément, il est censé être appliqué verticalement dans toute l'entreprise et s'étend de préférence au domaine client.

En tant qu'équipe de développement, vous devez être ferme sur ce point. Vous pouvez leur donner des attentes et des suppositions, mais ne laissez pas les engagements prolonger un seul sprint.


5
"Les ventes doivent apprendre à parler en termes Scrum aux clients. Scrum n'a pas de sens de manière isolée, il est censé être appliqué verticalement dans toute l'entreprise et s'étend de préférence au domaine client." Cela semble agréable et faciliterait sans aucun doute le développement, mais les clients ont parfois de véritables contraintes qui les ancrent au calendrier. Ils peuvent avoir besoin d'un déploiement à temps pour une conférence importante, ou il peut y avoir une exigence législative pour avoir des systèmes mandatés en place à une date particulière.
Charles E. Grant

2
@Charles: Alors? Le mieux que vous puissiez faire dans un paramètre Scrum est de mettre ce (jeu de) fonctionnalité (s) dans un sprint avant leur date limite. Cela n'a pas de sens de dire "Oui, nous faisons de la mêlée, mais seulement tant que personne ne s'en soucie".
Martin Maat

Le but est-il de répondre aux exigences des clients ou d'adhérer fidèlement à une méthodologie de développement? Dans chaque entreprise où j'ai travaillé pour Scrum, c'est un moyen d'arriver à une fin, pas une fin en soi.
Charles E. Grant

1
@Charles Suggérez-vous que les chances de livrer à temps s'amélioreront en ne marquant pas ce que vous faites Scrum? Quoi qu'il en soit, un groupe de personnes s'engage dans une tâche. La seule différence est qu'il faut plus de temps pour reconnaître et communiquer que vous ne respecterez pas le délai de votre client, si tel devait être le résultat.
Martin Maat

1
@Charles - Les échéances de calendrier strictes sont un élément de ce qu'un Product Owner doit considérer en priorité de backlog. S'il y a une date de tombée, c'est au bon de commande de placer cette fonctionnalité dans le carnet de commandes dans une position où il est certain qu'elle peut être atteinte, ou repousser cette exigence.
Dan Ray

3

Je fais quelques choses quand je reçois des questions comme celle-ci.

Tout d'abord, je réponds aux questions sur l'avenir en décrivant le passé. Je dirais quelque chose comme Nous passons en revue environ deux de ces histoires par semaine. Donc, si rien ne change, nous nous attendons à en finir avec l'histoire 27 dans environ 14 semaines.

Deuxièmement, je veux que les clients face au client assument la responsabilité du calendrier de négociation par rapport au risque. Je dirais quelque chose comme Remember, l'équipe d'ingénierie travaille sur la base d'estimations 50/50. Si rien ne change, il y a 50% de chances que la fonction 27 soit prête en 14 semaines. Vraisemblablement, vous ne voulez pas signaler quelque chose avec ce niveau de risque à un client. Voulez-vous que j'établisse une estimation à laquelle nous avons, disons, une confiance de 90%? Vous devrez ensuite revoir vos preuves historiques et dire quelque chose comme: Il y a 90% de chances que l'histoire 27 se fasse en 25 semaines .

Enfin, rappelez à votre collègue qu'une fois qu'il a pris un engagement extérieur, l'entreprise est immobilisée. Faire des promesses externes sur l'histoire numéro 27 enlève toute l'agilité de l'entreprise. Vous seriez alors engagé dans une ligne de conduite particulière. Chaque fois que quelqu'un vient à vous avec une demande de changement, vous devez maintenant répondre Nous nous sommes engagés à terminer l'histoire 27 avant la date du x. Je ne peux effectuer cette modification que si vous contactez le client et lui dites que notre engagement n'est plus valable. Fondamentalement, prendre des engagements spécifiques pour un travail de plus d'un mois ou plus dans le futur pose de nombreux problèmes.


"Faire des promesses externes [...] enlève toute l'agilité de l'entreprise" - Oui, nous avons été frappés à quelques reprises par les vendeurs qui vendaient quelque chose qu'ils savaient que nous ne pouvions pas faire, et avons dû se démener pour y parvenir. Pas exactement idéal.
KlaymenDK

Dans cette situation, la clé est de clarifier les causes et les effets. Dites aux gens: nous ne pouvons pas travailler sur la tâche X ou corriger le bogue Y car nous nous engageons à respecter un délai de vente . Si la vente est suffisamment valable, alors brouiller l'équipe était la bonne décision. Si la vente a moins de valeur que d'autres travaux, expliquez clairement pourquoi le travail le plus précieux n'est pas effectué.
John_C

3

Vous avez déjà une conversion (très grossière): les
sprints Scrum durent (généralement) deux semaines.
Vous savez que vous pouvez terminer, disons, environ 20 points d'histoire de fonctionnalités au cours de ces deux semaines (ou comment déterminez-vous quoi et combien de fonctionnalités sont regroupées dans un seul sprint?) Et vos sprints précédents confirment cette estimation (disons vous avez terminé 18, 21, 23, 19 et 20 points d'histoire de fonctionnalités dans les cinq derniers sprints).

Disons que la fonctionnalité X (et toutes ses dépendances) a été estimée à 47 points d'histoire.
Vous pouvez donc estimer que si vous accordez la priorité à la mise en œuvre, vous devriez prendre environ 3 sprints, c'est-à-dire 6 semaines (mais assurez-vous que vos estimations tiennent compte de qui peut faire quoi - si 35 de ces points sont du travail DB et que vous n'avez que sur DB guy, vous devez réviser votre vitesse estimée pour en tenir compte).

Cela dit - communiquez fermement qu'il s'agit d'estimations brutes - il y a une raison pour laquelle les sprints sont de deux semaines et non de six. Plus votre prévision doit couvrir de choses, plus il y a d'incertitude et d'erreurs. Communiquez également fermement le coût - c'est-à-dire que cela signifierait de mettre la tâche en priorité, ce qui signifie qu'aucune autre tâche ne sera traitée. Sinon, vous pourriez rencontrer le scénario suivant:

"Quand la fonctionnalité Y sera-t-elle terminée?"
"Si nous nous concentrons là-dessus la prochaine fois ... 12 semaines"
" 12 semaines?!? Vous avez dit qu'il en faudrait 4."
"Oui, mais vous nous avez dit de prioriser la fonctionnalité X , dont nous vous avons dit qu'elle lierait toutes nos ressources et prendrait 8 semaines."
"Vous ne pouvez pas travailler sur la fonctionnalité X et la fonctionnalité Y en même temps?"
" gémir "


Au lieu de "gémir": "Bien sûr, nous pouvons. X prendra 16 semaines et Y prendra 8 semaines".
gnasher729

1

Le sprint est un temps défini, disons 2 semaines. Vous ne pouvez pas prédire qu'une histoire se fera plus de 2 sprints, comme vous avez votre sprint actuel et votre prochain sprint. Je suppose que vous avez préparé des histoires qui sont discutées avec l'équipe pour le prochain sprint et qui ont été priorisées par les entreprises. Donc, vous pouvez dire avec certitude que ce sont les 4 prochaines semaines de travail.

Tout ce qui dépasse 4 semaines est susceptible de changer et les entreprises peuvent créer une feuille de route qui n'est pas définie en heures. Cela devrait être planifié par sprint, disons une épopée1 (épopée comme dans un tas d'histoires groupées) et epic2 devrait être fait dans les sprints 47 et 48 et epic3 devrait être fait dans le sprint 49. Épopées que j'estime approximativement en heures par moi-même pour voir si un ou deux rentreront dans un sprint, la chronologie va glisser de toute façon. Si les fonctionnalités ne fonctionnent pas, les entreprises doivent réduire leur portée ou accepter des solutions non parfaites qui peuvent être améliorées plus tard si nécessaire (qui devraient être agiles, adopter la réalité au lieu de suivre le plan).

Vous pouvez faire un joli diagramme de Gantt (c'est ce que les entreprises aiment) avec de futurs sprints et des sujets / épopées principaux pour ceux-ci.

J'aime faire la sortie à chaque sprint et ensuite je prépare la sortie avec ce qui a été fini dans le sprint (ou des trucs qui ont été signés pour une sortie par les entreprises même si ce n'était pas parfait), les trucs inachevés vont au prochain sprint. De cette façon, j'ai une livraison prévisible dans un délai d'environ 2-3 semaines (une semaine pour d'éventuelles corrections sur la version candidate).

C'est mon expérience avec une petite équipe, une petite quantité de dépendances extérieures et ce que je crois être une entreprise raisonnable. Votre kilométrage peut varier.


0

Pour les nouvelles fonctionnalités, il est presque impossible d'estimer le temps requis.

L'expérience avec le développement logiciel montre que dans la plupart des cas, il y a des détails que vous ne pouvez pas voir avant de vraiment commencer le développement. Dans le meilleur des cas, ces détails peuvent nécessiter un certain temps supplémentaire, mais dans le pire des cas, le projet peut également échouer. La raison en est la complexité du développement logiciel lui-même.

C'est la raison pour laquelle SCRUM estime uniquement la complexité du problème (points d'histoire), mais pas le temps. La seule chance que vous avez est de diviser des fonctionnalités très complexes en plus petites. De cette façon, vous pouvez minimiser le risque.

Comme une estimation du temps est presque impossible, il n'y a pas de formule convertissant les points d'histoire en estimations de temps. La vitesse ne peut être qu'une estimation très grossière, pas plus.

Dans SCRUM, le propriétaire du produit peut modifier les priorités des éléments du backlog avant chaque sprint. Par conséquent, le maître SCRUM ne peut donner aucune estimation pour plus d'un sprint. Il ne sait pas quel élément du carnet de commandes pourrait devenir important lors du prochain sprint.

SCRUM n'est pas une méthode pour faire des choses impossibles (planifier l'imprévisible) ou accélérer le développement. Il s'agit d'un système d'alerte précoce si le développement manque de temps. Il permet de réagir rapidement aux nouvelles exigences.

Au poste initial:

Vous êtes déjà très bon si vous parvenez à diviser la plupart de vos tâches en 1 SP à 5 histoires SP. Les estimations de vitesse pourraient s'améliorer si les tâches sont similaires et que votre équipe est plus expérimentée. Mais s'il y a toujours de nouvelles pièces inconnues dans de nouveaux articles, vous devez vivre avec l'inexactitude.

Comme vos développeurs consacrent normalement du temps à des travaux non liés au développement (par exemple, des réunions), vous ne devez pas prévoir 8 heures de développement par jour, mais moins, par exemple 6 heures. Ensuite, vous obtenez une réserve pour d'autres tâches ou pour des éléments de travail prenant plus de temps.

Si vos collègues souhaitent obtenir des estimations précises (ce qui est une contradiction en soi), expliquez-leur les problèmes inhérents au développement de logiciels. Montrez-leur ensuite les avantages des méthodes agiles.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.