Warum rät Pivotal Tracker davon ab, Punkte für Bugs und Aufgaben zu schätzen?

Pivotal Tracker rät dringend davon ab, Velocity-Punkte für Bugs und Aufgaben zu schätzen – Sie müssen eine Einstellung ändern und eine Warnung akzeptieren, um dies tun zu können.

Sie erklären hier warum , aber ich verstehe es einfach nicht. Hier ein Auszug:

Indem die Geschwindigkeit nur in Bezug auf Funktionen gemessen wird, kann Tracker abschätzen, wie viel echte, geschäftlich wertvolle Arbeit in zukünftigen Iterationen erledigt werden kann, sodass Sie vorhersagen können, wann Projektmeilensteine ​​​​erreicht werden könnten

Aufgaben und Bugs brauchen Zeit. Wie kann es Ihnen helfen , wenn Sie dies ignorieren , um vorherzusagen, wann ein Meilenstein erreicht wird?

Angenommen, Sie müssen drei weitere Funktionen abschließen, um zum nächsten Meilenstein zu gelangen, und Sie müssen auch eine Aufgabe abschließen (weil eine der Funktionen nicht gestartet werden kann, bis diese Aufgabe erledigt ist) ... Wie könnte die dafür benötigte Zeit abgezinst werden? hilft Ihnen die Aufgabe einzuschätzen , wann der Meilenstein erreicht wird?

Ich denke, es ist ähnlich wie Joel Spolskys Kommentar zur Schätzung der Produktivität: joelonsoftware.com/items/2007/10/26.html Die Idee ist, dass Sie Ihre Produktivität erfolgreich messen können, selbst wenn Sie Fehler / Aufgaben (oder Unterbrechungen / Telefonanrufe), da Sie davon ausgehen können, dass diese über einen langen Zeitraum in etwa gleich häufig auftreten.

Antworten (4)

Ich weiß, dass dieser Thread jetzt etwas alt ist, aber als Entwickler bei Pivotal stimme ich keiner der vorhandenen Antworten vollständig zu.

Die Philosophie hinter dem Nichtschätzen von Fehlern ist nicht, dass das Beheben von Fehlern keinen geschäftlichen Nutzen bringt, sondern dass das Einführen eines Fehlers in die App und das anschließende Beheben keine Netto-Fortschrittsdynamik darstellt.

Stellen wir uns beispielsweise vor, dass zwei Teams denselben Funktionssatz auf iOS und Android implementieren. Das iOS-Team hat die Fehler-/Aufgabenschätzung deaktiviert, während das Android-Team sie aktiviert hat.

Die iOS- und Android-Teams schätzen beide die gleiche Geschichte auf 2 Punkte. Beide beenden die Geschichte in der gleichen Zeit, aber in der nächsten Iteration stellt sich heraus, dass die beiden Teams Fehler bei ihrer Implementierung eingeführt haben.

Das iOS-Team hat nur einen Fehler eingeführt. Sie reparieren es in einer Stunde.

Das Android-Team hat drei Bugs eingebracht und weist ihnen jeweils einen Punkt zu. Sie brauchen anderthalb Tage, um sie zu reparieren.

Das iOS-Team bewegt sich schneller als das Android-Team, aber die Geschwindigkeit von Android ist jetzt höher. Dies wirft die Planung zukünftiger Iterationen durcheinander und lässt den Anschein erwecken, als ob sich das Android-Team schneller auf eine brauchbare Veröffentlichung zubewegt, obwohl sie in Wirklichkeit Fehler schneller in ihre Implementierung einführen als das iOS-Team und daher ihre Umsetzung erreichen Ziele langsamer.

Manchmal gibt es jedoch Mängel, die nicht von Ihrem Team eingebracht wurden. Vielleicht ist es eine Legacy-Codebasis, und der Fehler ist so alt wie die Hügel. In diesem Fall macht es keinen Sinn, dass diese Geschichte Ihre Geschwindigkeit verringert, und Sie sollten sie wahrscheinlich als neues Feature und nicht als Fehler in Tracker eintragen.

Natürlich liegt es letztendlich an Ihnen, wie Sie die Story-Schätzung durchführen möchten. Ich habe mit einigen Teams zusammengearbeitet, die die Fehler-/Aufgabenschätzung aktiviert hatten, obwohl ich persönlich es vorziehe, sie deaktiviert zu haben. Tracker wird Sie nicht beurteilen!

Wenn das Android-Team diese drei Fehler sowie alle anderen für den Sprint geplanten Aufgaben behoben hat, ist der Geschwindigkeitsschub nicht korrekt? Schließlich waren sie in der Lage, das Äquivalent einer höheren Schätzung des Aufwands/der Komplexität zu vervollständigen, und diese höhere Zahl sollte bei der Entscheidung, wie viel Arbeit in zukünftigen Sprints übernommen werden soll, anwendbar sein.
Auf der anderen Seite, wenn sie die Bugs im selben Sprint annehmen und nicht alle anderen Aufgaben erledigen, dient die Schätzung der Bugs dazu, während des aktiven Sprints „Scope Creep“ zu etablieren, und die Stories, die nicht abgeschlossen wurden, sind es genau in diesem Sprint „fehlgeschlagen“ und zum nächsten verschoben, und die Anzahl der verbleibenden Sprints zum Leeren des Rückstands steigt. All dies ist genau und hält die Wahrheit der Dinge sichtbar.
Der grundlegende Fehler dabei ist, dass Story Points (und damit Velocity) teamübergreifend nicht genau gemessen werden können. Einige Frameworks wie SAFe versuchen, die Definition eines Story Points teamübergreifend zu standardisieren, aber es gibt viele Praktiker, die dies für eine erstaunlich schlechte Idee halten. Es schafft eine falsche Äquivalenz und missbraucht eine Kapazitätsmetrik als Produktivitätsmetrik . Die Geschwindigkeit ist kein Maß für die Produktivität und sollte es auch nie sein.
Dem stimme ich eigentlich voll und ganz zu, CodeGnome! Der einzige Grund, warum ich in meinem etwas idealisierten Gedankenexperiment zwei Teams eingesetzt habe, die parallel arbeiteten, war, die relativen Auswirkungen der Fehler-/Aufgabenschätzung auf jedes Team zu vergleichen. In der Praxis ist der Vergleich der Geschwindigkeit zwischen Teams als Maß für die „Produktivität“ eine wirklich schlechte Idee, und das ist wahrscheinlich wichtiger, als ob Sie Fehler und Aufgaben schätzen oder nicht.
Hey @RyanMcLeod, gilt die gleiche Logik für Hausarbeiten? Das heißt, sollte eine Aufgabe zu einem Feature gemacht werden, wenn sie auf neuer Arbeit basiert, die von außerhalb des Projektumfangs stammt?
Die Logik hier ist oberflächlich (nicht nur, weil davon ausgegangen wird, dass separate Teams eine gemeinsame Standarddefinition von „Story Point“ haben), weil das Hauptziel der Pokerplanung darin besteht, die Komplexität zu messen . Im Laufe der Zeit werden Story Points zu einer großartigen Möglichkeit, die interne, instinktive, aber gemeinsame Vorstellung eines Teams von „Komplexität“ zu mitteln, sodass das Team sagen kann: „Nun, in den letzten 3 Monaten haben wir im Durchschnitt alle 8-Punkte-Tickets geliefert 7 Tage" - nicht mehr und nicht weniger. Es gibt absolut keinen Grund, den ich sehe, dass ein Team dies nicht auch für verschiedene Arten von Arbeiten (dh Aufgaben und Fehler) tun möchte.

"Funktionsgeschwindigkeit" vs. kapazitätsbasierte Planung

Pivotal Labs trifft mit dieser Designentscheidung eine Marketingentscheidung. Indem sie sich auf den „Geschäftswert“ als Schlüsselkennzahl berufen, vernachlässigen sie implizit die Bedeutung der Verfolgung der Teamkapazität oder der Projektplanung im weiteren Sinne.

Eine andere Sichtweise ist, dass sie versuchen, ein Dashboard für Managementziele zu verkaufen, anstatt Iterationsplanung. Die Pivotal Tracker FAQ sagt (Hervorhebung von mir):

Indem die Geschwindigkeit nur in Bezug auf Funktionen gemessen wird, kann Tracker abschätzen, wie viel echte, geschäftlich wertvolle Arbeit in zukünftigen Iterationen erledigt werden kann, sodass Sie vorhersagen können, wann Projektmeilensteine ​​​​erreicht werden könnten[.]

Ihre Idee ist also, dass Bugs und Hausarbeiten keine "echte" Arbeit sind und keinen Mehrwert bringen. Ich bin anderer Meinung, aber das ist der Punkt, den sie mit ihrer Zielgruppe ansprechen. Sie scheinen auch die Vorstellung abzulehnen, dass Bugs und Aufgaben die Teamkapazität verbrauchen, und gehen davon aus, dass sich die Kosten dieser nicht wertvollen Aufgaben im Laufe der Zeit amortisieren können, sodass sich das Management auf die Festlegung von Zielen für Meilensteine ​​konzentrieren kann.

Sie sagen auch:

Im Gegensatz zu Funktionen treten Bugs und Aufgaben im Laufe der Zeit auf, und obwohl sie ein notwendiger Teil Ihres Projekts sind, können sie als ständige Belastung für den geschäftlich wertvollen Output angesehen werden – als laufende Kosten für die Geschäftstätigkeit.

Mit anderen Worten, anstatt die Kosten von Fehlern und Aufgaben für das Projekt explizit sichtbar zu machen, werden sie nicht berücksichtigt, um ein Management-Dashboard bereitzustellen, das sich mehr auf die Bereitstellung von Funktionen als auf eine kapazitätsbasierte Planung konzentriert. Meiner Meinung nach verhindert dies eine ordnungsgemäße Kontrolle des Projektbudgets und der Teamressourcenbeschränkungen, aber es gibt eindeutig Leute, die anderer Meinung sind.

Aktivieren von Punkten für Bugs/Hausarbeiten

Um Pivotal Labs gegenüber fair zu sein, erlauben sie Ihnen , diese Fehlfunktion zu deaktivieren. Sie können Fehlern und Hausarbeiten Punkte zuweisen, mit dem Vorbehalt (drohende Warnung?), dass dies eine unumkehrbare Entscheidung für das Projekt ist.

Obwohl davon abgeraten wird, ist es möglich, die Schätzung für Fehler und Aufgaben in den Projekteinstellungen zu aktivieren. Es ist jedoch nicht möglich, diese Einstellung rückgängig zu machen, sobald Ihr Projekt geschätzte Fehler oder Aufgaben aufweist.

Ich persönlich empfehle generell, alle Aufgaben, die gegen das Budget eines Projekts verrechnet werden oder die Teamkapazität verbrauchen, gut sichtbar zu machen und ordnungsgemäß zu verbuchen. Mit Pivotal Tracker haben Sie die Wahl.

Siehe auch

Anstatt die genauen Zitate und Links oben für ungültig zu erklären (Sie können wahrscheinlich immer noch das Original in verschiedenen Internetarchiven finden), sind hier die aktualisierten Pivotal Tracker-Links, die mehr oder weniger die gleichen Konzepte enthalten, aber mit unterschiedlichen Formulierungen und aktualisierten Anweisungen zum Ändern des Systems verhält sich von seinen Voreinstellungen.

Als Produktmanager denke ich, dass sie Recht haben. Mein Team schätzt Bugs und es geht in Richtung der Team-Velocity. Wenn wir uns auf der Zielgeraden in Richtung einer Veröffentlichung befinden und auch die kritischen Fehler geschätzt wurden, können wir genauer feststellen, wie viel Arbeit noch übrig ist. Auf der anderen Seite sieht es so aus, als würde das Team immer noch mit der gleichen Geschwindigkeit „produzieren“, obwohl es in Wirklichkeit weniger Funktionen und mehr Fehlerbehebungen einführt. Dies ist unvermeidlich, aber ich kann das Argument für die Geschwindigkeit sehen, die diese verringerte Leistung zeigt. Es könnte dem Team und dem Management die Auswirkungen von fehlerhaftem Code noch deutlicher machen.
@Holly Das ist interessant ... Aber PT sagt, dass Punkte Aufwand darstellen, nicht Wert. In diesem Fall wäre es falsch, die Geschwindigkeitszahl als „wie viel Geschäftswert das Team derzeit produziert“ zu lesen, da eine Funktion mit geringem Aufwand einen großen Wert bieten kann und umgekehrt.
@callum Ich habe wirklich nur über den Wert von Fehlerbehebungen gesprochen, das Gleiche würde nicht für Funktionen gelten. Punkte könnten nicht "wie viel geschäftlicher Wert" sein, ich sage nur, dass Sie eine Geschichte auf 5 Punkte geschätzt haben und dann nach dem Schließen 2 Fehler gefunden haben, von denen jeder auf einen zu behebenden Punkt geschätzt wird, aber wenn Sie Wenn Sie diese während des Sprints gefunden hätten, hätten Sie sie gerade behoben, könnte es auf dieser Seite einen gewissen Wert haben, diese 2 Punkte der späten Fehlerbehebungsarbeit nicht als Teil der Geschwindigkeit zu zählen. Übrigens, ich weiß nicht, ob ich mich selbst dafür einsetzen würde, ich denke nur darüber nach.

Sie sollten Fehler und nicht funktionale Anforderungen abschätzen

Ich kenne Pivotal Tracker nicht. Sieht jedoch so aus, als wäre Ihre Frage allgemeiner:

  • Sollte ich Fehler nicht schätzen?
  • Sollte ich technische Schulden oder nicht funktionale Anforderungen nicht schätzen? Ich denke, das ist das, was Sie als "Aufgabe" bezeichnen.

Meiner Meinung nach sollten Sie diese schätzen. Pivotal Tracker scheint die Ansicht zu vertreten, dass nur "Features" den Kunden einen Mehrwert bieten. Ich würde argumentieren, dass das Beheben von Fehlern in der Produktion die Benutzererfahrung verbessert und einen Mehrwert liefert. Siehe hier für mehr. Die Ausnahme hiervon ist, wenn Fehler in abgeschlossenen Geschichten in den Funktions-/Regressionstests oder sogar in den Post-Release-Phasen gefunden werden, sollten sie von den Entwicklern behoben werden, die sie eingeführt haben, ohne dass dafür Punkte gutgeschrieben werden.

Wenn Sie die Leistung, Stabilität oder Sicherheit verbessern, verbessert dies auch die Benutzererfahrung und liefert einen Mehrwert. Siehe hier für mehr.

Indem Sie diese nicht schätzen, kehren Sie sie unter den Teppich und laufen Gefahr, Bugs und technische Schulden anzuhäufen.

+1 Fehler und Hausarbeiten erfordern Ressourcen wie Zeit, Geld oder Arbeit und sollten daher sichtbare Kosten für das Projekt darstellen.

Ein weiterer interessanter Punkt ist, dass Sie, um einen Fehler einzuschätzen, verstehen müssen, warum er nicht funktioniert, und das ist normalerweise die längste Arbeit.

Es kann also viel Zeit und Spekulation für die Schätzung in Anspruch nehmen.

Was wir ohne Pivotal Tracker gemacht haben, war das Berechnen und "Durchschnittswert" (basierend auf der Zeit, die zum Beheben des Fehlers benötigt wurde, umgewandelt in Punkte), also würden wir diesen Wert immer Fehlern geben (und manchmal große Unterschiede zur Realität haben, aber Sie kompensieren sich mit der Zeit, da wir den Fehlerwert bei jedem Sprint neu anpassen.

Ich denke, diese Antwort ist off-base. Das Schätzen von Fehlern ist eine Funktion Ihrer technischen Schuld: Wenn Sie gute Unit-Tests und CI oder auch nur gut geschriebenen Code haben, sollten Sie in der Lage sein, den Aufwand abzuschätzen , der erforderlich ist, um zumindest bei einigen die Quelle eines Fehlers zu untersuchen Richtigkeit. Mit anderen Worten, es ist nur eine anfängliche Zeitbox. Alle Schätzungen können falsch sein – das kann angepasst werden – aber wenn dem Team nicht genügend Sichtbarkeit oder Wissen fehlt, um die relative Größe eines Problems zu erfassen … nun, das ist meiner Meinung nach ein ziemlich großes Fehlerberichts- oder Entwicklungsteam-Prozessproblem .