Story Points für Fehlerbehebungsaufgaben: Ist es für Scrum geeignet?

50

Ich frage mich nur, ob wir Fehlerbehebungsaufgaben Story-Punkte zuweisen sollen oder nicht. JIRA, unsere Issues-Tracking-Software, hat kein Story-Point-Feld für Bug- Type-Issues (nur für Storys und Epics ).

Sollten wir das Hinzufügen Bug Problem Art der anwendbaren Ausgabe Typen der Story Points Feld? Was sind die Vor- und Nachteile? Wäre es für Scrum geeignet?

Palacsint
quelle
1
Zu Ihrer Information, obwohl Fehler nicht standardmäßig angezeigt werden können , kann dies in Jira geändert werden .
doub1ejack

Antworten:

55

Idealerweise sollte Ihre Software nach jeder Iteration fehlerfrei sein und das Beheben von Fehlern sollte Teil jedes Sprints sein. Daher sollte die zum Beheben von Fehlern erforderliche Arbeit beim Zuweisen von Story-Punkten berücksichtigt werden (dh eine Aufgabe, die mit größerer Wahrscheinlichkeit Fehler verursacht) mehr Story-Punkte vergeben).

In der Realität treten jedoch immer wieder Fehler nach der Bereitstellung auf, unabhängig davon, wie streng Ihre Tests sind. In diesem Fall ist das Entfernen des Fehlers nur eine weitere Änderung, eine Funktion, wenn Sie so wollen. In diesem Zusammenhang besteht kein grundlegender Unterschied zwischen einem Fehlerbericht und einer Funktionsanforderung: In beiden Fällen zeigt die Anwendung ein bestimmtes Verhalten, und der Benutzer (oder ein anderer Stakeholder) möchte, dass es geändert wird.

Aus betriebswirtschaftlicher Sicht sind Bugfixes und Funktionen auch wirklich gleich: Entweder Sie tun es (Szenario B) oder Sie tun es nicht (Szenario A); Mit beiden Szenarien sind Kosten und Nutzen verbunden, und ein anständiger Unternehmer wird sie nur abwägen und mit dem verhandeln, was ihm mehr Gewinn einbringt (langfristig oder kurzfristig, abhängig von der Geschäftsstrategie).

Also ja, ordnen Sie den Bugs auf jeden Fall Story-Punkte zu. Wie können Sie Bugs gegenüber Features und Bugs gegen Bugs priorisieren? Für beide ist ein gewisses Maß an Entwicklungsaufwand erforderlich, und es sollte besser vergleichbar sein.

Das größte Problem dabei ist, dass Bugfixes oft schwerer abzuschätzen sind: 90% oder mehr des tatsächlichen Aufwands liegt darin, die Ursache zu finden; Sobald Sie es gefunden haben, können Sie eine genaue Schätzung abgeben, aber es ist fast unmöglich zu beurteilen, wie lange die Suche dauern wird. Ich habe sogar eine ganze Reihe von Fehlern gesehen, bei denen die meiste Zeit nur damit verbracht wurde, den Fehler zu reproduzieren . Andererseits ist es abhängig von der Art des Fehlers oft möglich, die Suche mit minimaler Recherche einzugrenzen, bevor eine Schätzung vorgenommen wird.

tdammers
quelle
3
Ich war gerade dabei, eine Antwort zu schreiben, die fast mit Ihrer identisch war. Ihre Erklärung gefällt mir besser.
maple_shaft
13
Das einzige Problem, das ich habe, ist Ihre vierte Passage. Sie priorisieren nicht basierend auf Story-Punkten (zumindest habe ich das noch nie gesehen, und es scheint ziemlich dumm zu sein). Sie priorisieren basierend auf dem geschäftlichen Mehrwert und verwenden Story Points, um zu bestimmen, wie viele der Storys Sie in Ihrer zeitgesteuerten Iteration abschließen können. Es ist durchaus möglich, eine weniger priorisierte Story in eine frühere Iteration zu übernehmen, da die darüber liegenden zu groß sind, um in die projizierte Geschwindigkeit zu passen.
Thomas Owens
6
@ThomasOwens: OK, lassen Sie mich das umformulieren. Was ich damit gemeint habe, ist, dass Story Points erforderlich sind, um den Nutzen einer Änderung im Vergleich zu ihrem Entwicklungsaufwand zu beurteilen. Natürlich ist der Nutzen bei der Priorisierung genauso wichtig wie der Aufwand.
Tdammers
Ich mag die allgemeine Vorstellung von Ihrer Antwort. Wir haben das Problem mit der Priorisierung / Rangfolge gelöst, indem wir Fehler in einen separaten Rückstand aufgeteilt und ein Verhältnis (regulärer Rückstand zu Fehlerrückstand) erstellt haben, um mit dem fertig zu werden, was Sie in den letzten beiden Absätzen beschrieben haben. Ihr letzter Absatz beschreibt das Problem der Fehlerbehebung recht gut. Dies ist auch der Grund, warum wir keine Story-Point-Schätzung für Bugs durchführen. Ich habe in meiner Antwort erläutert, warum Ihr Lösungsansatz für uns fehlgeschlagen ist und wie wir daraus hervorgegangen sind.
Malte
19

Das Abschätzen von Fehlern mit Punkten ist von Natur aus schwierig, wie bereits in anderen Antworten erwähnt, und ja, die ideale Lösung ist, dass Fehler, die in einem Feature gefunden wurden, nachdem der Sprint akzeptiert wurde, als neue Features betrachtet werden sollten .

Diese Schwierigkeit bei der Punktschätzung für Fehler ist jedoch einer der vielen Gründe, warum mit Agile PM-Softwarepaketen Aufgaben und Fehler in Stunden geschätzt werden können, da es Sorgfalt und Erfahrung erfordert, sich mit der Punktschätzung vertraut zu machen. Bei vielen Projekten treten erhebliche Probleme bei der Ermittlung der Geschwindigkeit auf. Daher verwenden viele Agile-Projekte Punkte, um zu bestimmen, welche Storys in den Sprint gelangen. Bei der Berechnung des Burndown-Diagramms werden jedoch Stunden benötigt .

Es scheint kontraintuitiv, aber handhabbar zu sein, solange die Stundenschätzung nicht als Faktor für die Bestimmung des Sprint-Engagements herangezogen wird. Überbeanspruchung führt natürlich zu fehlenden oder unvollständigen Funktionen oder Überstunden, sodass alle Beteiligten im Laufe der Zeit gezwungen sind, die Punktschätzung zu verbessern. Dann wird die Stundenschätzung für Aufgaben und Fehler langsam zu einer bedeutungslosen Messgröße.

maple_shaft
quelle
Für mich sind "Stunden" = "menschliche Anstrengung". Wenn Story Points Bereiche von Stunden darstellen, gibt es auf den ersten Blick keinen Unterschied zwischen der Verwendung von Story Points und der Verwendung von Stundenschätzungen. Darüber hinaus ist die Verwendung von Stundenschätzungen sowohl konzeptionell als auch nach meiner Erfahrung in jedem Fall kontraproduktiv, da sie Variablen, die nur sehr ungenau bekannt sind, hohe Genauigkeitswerte verleiht.
JBeck,
19

Sie sollten der Fehlerbehebung keine Punkte geben. Bedenken Sie, dass der Fehler aus einer Story stammt, in der die Entwickler bereits Punkte für die Vervollständigung der Story gesammelt haben . Es sollte keine Punkte mehr erhalten, bei denen es eigentlich nicht die Punkte hätte verdienen sollen .

Die Fehlerbehebung sollte sich negativ auf die Geschwindigkeit auswirken . Andernfalls wird die fallende Qualität mit einer unbeeinträchtigten oder sogar erhöhten Geschwindigkeit belohnt!

Vielleicht ein nützlicher Link:

http://www.infoq.com/news/2011/01/story-points-to-bugs

Joppe
quelle
1
Ich verstehe Ihre Argumente zur Schaffung einer positiven Umgebung für Entwickler, um fehlerhaften Code zu schreiben und eine bedeutungslose Geschwindigkeit zu haben, aber denken Sie daran, dass Fehler, die in einem Feature nach der Annahme des Sprints gefunden wurden, dazu führen, dass die Tester einen Fehler gemacht haben, diese Fehler nicht vor der Annahme abzufangen . Darüber hinaus sollte das Abschließen von User Stories nicht zu Beginn ein Rennen sein. Wenn ein Entwickler in einem Sprint viel mehr User Stories abschließt als geplant, bedeutet dies, dass er den Story-Aufwand in Punkten nicht sehr gut einschätzt. Mit dieser Metrik sehen Entwickler gut aus, wenn sie die ganze Zeit überbewerten.
maple_shaft
4
Die Geschwindigkeit (gemessen in Story Points pro Sprint) misst, wie viel Material das Team in einem Sprint umsetzen kann. Ich bin sicher, jeder Produktbesitzer verfolgt und interessiert sich viel mehr dafür, wie viel Geschäftswert das Team produziert. Der geschäftliche Wert wird nicht durch die Vergabe von Story-Punkten für Fehlerkorrekturen erhöht.
Buhb
4
@buhb Geschichte Punkte sagen nichts über den geschäftlichen Wert. Eine 5-Punkte-Story könnte einen Unternehmenswert von 100 haben. Eine 100-Punkte-Story könnte 1 Geschäftswert haben. Es drückt Anstrengung aus, nicht Geschäftswert.
Joppe
3
@Tungano: Genau. Das ist der Grund, warum das Zuweisen von Punkten zu Fehlerkorrekturen keinen starken Anreiz darstellt, fehlerhafte Software zu erstellen.
Buhb
4
Die erhöhte Geschwindigkeit durch das Einbeziehen von Fehlerkorrekturen verursacht ein weiteres Problem: Sie können die Geschwindigkeit nicht mehr für die Projektion in die Zukunft verwenden. Die Geschwindigkeit sollte ein Maß dafür sein, wie schnell das Team die geplante Arbeit erledigen kann, nicht ein Maß dafür, wie viel Arbeit es tatsächlich war.
Chris Pitman
8

Ich würde empfehlen, den Bug als User Story zu behandeln und ihm eine Reihe von Punkten zuzuweisen. Ich würde es nicht unbedingt im Format "Als X möchte ich Y, damit Z" schreiben, wie es bei User Stories üblich ist - ich würde es eher als "Als X, wenn IY, Z, aber" schreiben Z 'ist das erwartete Verhalten ".

Dies hat den Vorteil, dass Sie Fehlerbehebungen neben Anforderungen für neue Funktionen priorisieren können. Die Wahrheit ist, dass manchmal eine neue Funktion wichtiger ist als die Behebung eines Fehlers. Es ermöglicht Ihnen jedoch auch, die erforderliche Arbeit richtig zu dimensionieren, sodass Sie sie in einen Sprint einfügen können, wenn Sie dazu in der Lage sind.

Beachten Sie, dass es schwierig sein kann, den Aufwand für die Behebung eines Fehlers abzuschätzen. Dies kann mehrere Komponenten umfassen, die miteinander interagieren, sodass sich jemand mit den Interaktionen großer Teile des Systems vertraut machen muss oder mehrere Personen an der Problembehebung arbeiten müssen.

Thomas Owens
quelle
5

Das Abschätzen von Geschichten basiert auf der Vorstellung, dass ein Team mit der Zeit Erfahrung bei der Lösung dieser Probleme sammelt. Dadurch wird die Genauigkeit verbessert und die Geschwindigkeit kann festgelegt werden, um die Geschwindigkeit eines Teams zu messen. Eine perfekte Methode, um verlässliche Prognosen für zukünftige Sprints zu erstellen.

Fehler sind für ein Softwareentwicklungsunternehmen eine Tatsache. Ich stimme zwar zu, dass alle Fehler während der Entwicklung einer Story entdeckt werden sollten, aber zu akzeptieren, dass dies nicht immer erreicht werden kann, sollte für jedes Team geplant werden. Anstatt hartnäckig zu denken, dass der Prozess das Team regieren sollte, sollte es umgekehrt sein.

Natürlich, Fehler oder Geschichte, von der Geschäftsseite aus ist es egal, mit was das Team es zu tun hat. Beide können für den Produktbesitzer den gleichen Wert erzeugen.

In unserem Team haben wir mit einigen Techniken zum Schätzen von Fehlern experimentiert:

  1. Schätzung völlig unbekannter Fehler
  2. Es werden nur Fehler geschätzt, die bereits analysiert wurden
  3. Planen Sie Zeit für die Fehlerbehebung ein und schätzen Sie die Fehler nicht ein, sondern ordnen Sie sie stattdessen ausschließlich nach dem Geschäftswert

Mit 1. sind wir miserabel gescheitert. Bei den meisten Fehlern haben wir festgestellt, dass 90% der Zeit für die Fehleranalyse aufgewendet wird. Danach kann die Fehlerbehebung wie eine Geschichte geschätzt werden. Durch die Planung der Fehler in einem Sprint haben wir den Fehler gemacht, dass der unbekannte Bereich die Auflösung der Story bis zu dem Punkt beeinflusst hat, an dem fast jeder Sprint, den wir auf diese Weise ausgeführt haben, fehlgeschlagen ist.

Basierend auf der Schätzmethode 90/10 (Analyse zu Fehlerbehebung) bedeutete Option 2, dass wir eine Analyse planen mussten, die für die Sprintplanung nicht abgedeckt war (wir hatten aus Option 1 gelernt, aber keine echte Lösung gefunden) Wie geht es weiter mit analysierten Bugs? Das Ergebnis war, dass die Fehleranalyse nicht durchgeführt wurde, da sich ein Sprint stattdessen auf die geplanten Elemente konzentrierte. Das Team hatte keine Zeit, sich auf Fehler aus dem Rückstand zu konzentrieren. Also wurden sie schließlich auch nicht fertig.

Durch die Berücksichtigung der Unsicherheit haben wir uns nun für Option 3 entschieden. Wir haben den Produktstau in einen regulären Story- / Aufgabenteil aufgeteilt, der vom Team anhand von Story-Punkten und einem Bug-Backlog geschätzt werden kann. Im Bug-Backlog ordnet der Product Owner Bugs basierend auf dem Geschäftswert und der sehr groben Beurteilung durch das Team ein. Das Team kann während eines Sprints einen Teil der Zeit darauf verwenden, sich auf Fehler zu konzentrieren. Der Product Owner kennt das genaue Ergebnis nicht, da dies ohnehin vorher nicht geplant werden konnte. Das Verhältnis von Bug-Backlog zu regulärem Backlog kann für jeden Sprint abhängig vom aktuellen Status jedes Backlogs und der Wichtigkeit und dem geschäftlichen Wert des Inhalts angepasst werden.

Indem die Unsicherheit beseitigt wurde, wurde das Team wieder frei. Sprints wurden durch unbekannte Bugs nicht beeinträchtigt. Indem wir die Fehler in einen anderen Rückstand aufteilen, haben wir sowohl den Fokus des Teams auf den regulären Sprint erhöht als auch Fehler behoben, die auch einen signifikanten geschäftlichen Wert hatten.

Es kommt also darauf an, ob Story Points für Sie geeignet sind. Ich würde versuchen, Fehler zuerst mit Hilfe von Story-Punkten abzuschätzen. Wenn dies fehlschlägt, probieren Sie meine Option 3 aus. Dadurch hat sich unser (über 30 Jahre altes) Team wieder auf ältere Bugs konzentriert, die einen hohen geschäftlichen Nutzen haben. Es hat uns auch von dem Versuch befreit, etwas zu liefern, das das Team einfach nicht einschätzen kann. Es war das Annehmen des Unbekannten, das uns der Realität näher brachte und unsere Sprints wieder erfolgreich machte, während wir durch Fehlerkorrekturen einen großen Teil (basierend auf dem Verhältnis von Fehler zu Story) des Geschäftswerts erzielten. Das Verhältnis, das wir kürzlich verwendeten, war 50/50.

malte
quelle
4

Ich muss mit der Top-Antwort nicht einverstanden sein, dass Bugs Story-Punkte zugewiesen werden. Story-Punkte sollten für einen neuen Wert geliefert werden. Wenn Sie Produktwert- und Nicht-Wert-Artikeln Punkte zuweisen, können Sie auch einfach die Stunden schätzen und nachverfolgen.

Bugs sind der Overhead dessen, was Sie gestern gemacht haben, und geben keinen Hinweis auf die Geschwindigkeit der Produktfertigstellung, und sie erzeugen auch keinen neuen Produktwert (denken Sie darüber nach). Bugs sind so etwas wie Interrupts und all die anderen Kuhkuchen, mit denen Sie wöchentlich fertig werden müssen. Die ganze Idee von Story Points besteht darin, zu verfolgen / abzuschätzen, wann wir das Produkt (oder den Funktionsumfang) liefern werden. Story-Punkte sind willkürlich und auf diese Weise wird der gesamte nicht werthaltige Overhead aus der Schätzung entfernt. Im Allgemeinen ist die wertlose Arbeit von Woche zu Woche konstant, sodass sie in die Teamgeschwindigkeit integriert ist. Das Team wird schneller, wenn es diese wertlose Arbeit entfernt oder reduziert.

Anders ausgedrückt, warum sogar Punkte auf Bugs verfolgen? Damit Sie am Ende des Tages wissen, wie viel "Arbeit" jedes Mitglied getan hat? Hör auf damit! Schlechter Manager! :) Messen Sie die Mannschaft, nicht den Spieler. Ermutigen Sie das Team, sich selbst zu verwalten, wenn eine Person nicht ihr Gewicht zieht. Viel effektiver. Das Ausführen von Story Point-Aufgaben sollte nicht dazu führen, dass sich ein Einzelner besser fühlt, aber das Team als Ganzes sollte sich besser fühlen, wenn sie sich am Ende des Sprints engagieren. Ist das Ziel im Sport gut für die Mannschaft oder für den Einzelnen? Wenn der Einzelne für sich spielt, verliert die Mannschaft auf lange Sicht.

Sie wissen, irgendwann möchten Sie überhaupt keine Punkte mehr verwenden. Die Schätzung ist die Zeit, die der realen Arbeit genommen wird. Wenn ein Team das Maximum an Chi erreicht, verwendet es überhaupt keine Punkte, weiß jedoch genau, wie viele Gegenstände es in einen Sprint ziehen kann. Sie beherrschen die Kunst, Arbeitseinheiten aufzubrechen, bei denen es sich bei der Schätzung um Prozessabfall handelt.

guru_florida
quelle
3

Einige Aufgaben sind abschätzbar, andere nicht. Verwenden Sie für Dinge, die nicht geschätzt werden können, ein Budget.

Die Behebung eines Defekts ist keine leicht abzuschätzende Aufgabe, da mehrere unbekannte Komponenten vorhanden sind. Was ist die Ursache für den Defekt? Wie kann die Ursache behoben werden, sobald sie verstanden wurde? Welche Auswirkungen hat diese Änderung auf den Rest des Systems? Wie viele neue Fehler haben Sie injiziert, um diesen Fehler zu beheben?

Bedenken Sie, dass die Ursache eines Fehlers an jedem Punkt im Software-Lebenszyklus liegen kann - missverstandene oder falsch kommunizierte Anforderungen, mangelhaftes Design oder falsche Annahmen, mangelhafte Codierung, mangelhafte Tests, neues Wissen über das Problem auf der Grundlage der Informationen aus der aktuellen Version ...

Es gibt verschiedene Möglichkeiten, ein Budget für Fehlerbehebungsaufgaben zu erstellen. Hier sind einige Ideen, die ich effektiv verwendet habe:

  • Verwenden Sie Verlaufsdaten (z. B. aus einer früheren Iteration), um zu verstehen, wie viel Zeit für die Fehlerbehebung zur Verfügung steht.
  • Fügen Sie "Fehlerbehebungsblöcke" (sagen wir 5 Punkte oder 20 Stunden) in Ihren Rückstand ein und lassen Sie den Kunden dies anstelle von Geschichten auswählen.
  • Fordern Sie von jedem Mitglied Ihres Teams, eine bestimmte Zeit für die Behebung von Fehlern in jeder Iteration zu verwenden.

Ihr Ziel ist es dann, so viele Mängel wie möglich innerhalb des zugewiesenen Budgets zu beheben. Besprechen Sie mit Ihren Kunden Strategien zur Priorisierung gemeldeter Mängel. Sortieren Sie zum Beispiel Fehler nach Kritikalität und dann nach Priorität? Strenge Priorität? Sollten Sie zuerst "tief hängende Früchte" angreifen? UI Bugs zuerst?

Das Beheben von Fehlern ist ebenfalls nicht wertvoll. Reparaturfehler sind Abfall. Sie haben bereits Wert auf diese Funktion gelegt, sodass Sie keine "Bonuspunkte" für die Behebung von Fehlern erhalten sollten.

Ein Budget hilft bei der Planung und gibt Ihnen dennoch ein genaues Bild von der Geschwindigkeit. Planen Sie eine bestimmte Anzahl von Punkten für die Fehlerbehebung ein, geben Sie dem Budget eine ungefähre Zeitspanne basierend auf Ihren historischen Daten und drücken Sie dann so viele Fehler wie möglich in der geplanten Zeit aus!

Michael
quelle
2

Ich finde es besser, mich auf die Bereitstellung von Funktionen für den Kunden zu konzentrieren, anstatt mich auf Geschichten und Bugs und Aufgaben und die jeweiligen Punkte zu konzentrieren.

Kunden erwarten, dass die Software funktioniert, und geben der Entwicklung, den Verbesserungen und den neuen Funktionen nur dann einen echten Mehrwert, wenn diese das Geschäft vorantreiben.

Fehlerbehebungen, so wichtig sie auch sein mögen, treiben das Geschäft nicht in neue Bereiche und neue Kunden (tangential und schließlich vielleicht ja, aber nicht sofort, was das Management misst).

Punkte werden also am besten unter dem Gesichtspunkt der höheren Geschwindigkeit betrachtet und wie viele Punkte pro Woche in der Vergangenheit für ähnlich bewertete Geschichten erzielt wurden.

Dies kann dazu führen, dass die Erfolgsgeschichte des Managements ermittelt wird, anstatt die dringende Notwendigkeit zu betonen, dass die Geschichten dieser Woche vollständig sind und häufig festgestellt werden, dass dies nicht der Fall ist. Der Verlust der direkten Kontrolle und das damit verbundene erhöhte Vertrauen werden jedoch dazu führen, dass einige Manager entsetzt zur Tür rennen.

Ich benutze Pivotal Tracker (ich habe nur JIRA, Trak, Trello und andere) und Pivotal Tracker macht auch keine Punkte für Aufgaben oder Fehler. Dies geschieht aus den oben genannten guten Gründen, die es auch in JIRA so machen, wie Sie sich selbst sehen.

Michael Durrant
quelle