Wie können wir während der Sprint-Planung gültige Zeitschätzungen bereitstellen, ohne zu viel zu entwerfen?

9

Mein Team ist mit Scrum auf dem neuesten Stand, aber die meisten von uns kennen sich mit nicht agilen oder "pseudo" agilen Methoden besser aus. Der Teil, der für uns die größte Hürde darstellt, ist die Durchführung eines effizienten Sprint-Planungsmeetings, bei dem wir unsere Rückstandselemente in Aufgaben aufteilen und die Stunden schätzen. (Ich verwende die Terminologie aus der VS2010-Scrum-Vorlage. Ich entschuldige mich, wenn ich irgendwo das falsche Wort verwende.)

Wenn wir herausfinden möchten, wie lange eine Aufgabe dauern wird, geraten wir häufig in die Falle, die Funktion auf Codeebene - Tabellenlayout, Schnittstellen usw. - zu entwerfen, um herauszufinden, wie lange dies dauern wird .

Ich bin mir ziemlich sicher, dass dies nicht der richtige Ort ist, um diese Art von Design zu machen. Wir sollten während des Sprints Aufgaben für diese Designmeetings planen. Wir haben jedoch Probleme herauszufinden, wie wir sonst aussagekräftige Schätzungen für die Aufgaben erstellen können.

Gibt es irgendwelche praktischen Gewohnheiten / Techniken / etc. Um zu beurteilen, wie lange ein Feature dauern wird, ohne zu wissen, wie Sie es implementieren möchten? Wenn sich unsere Zeitschätzungen nach Fertigstellung des Entwurfs erheblich ändern werden, wie können wir unseren Sprint-Rückstand im Voraus richtig budgetieren?

BEARBEITEN:

Nur zur Klarstellung, da einige der Kommentare / Antworten sehr gültig sind, aber ich denke, die falsche Frage anzusprechen.

Wir wissen, dass das, was wir tun, nicht richtig ist und dass wir Zeit in den Sprint für dieses Design investieren sollten. Konzeptionell verstehen das alle Entwickler. Wir bringen auch ein Teammitglied mit Scrum-Erfahrung mit, um uns auf dem Laufenden zu halten, wenn wir anfangen, ins Unkraut zu gehen.

Das Problem ist, dass es ohne diesen Entwurfsprozess schwierig ist, konkrete Zeitschätzungen für irgendetwas bereitzustellen. Wir sagen ständig Dinge wie "Nun, wenn wir es so gestalten, kann es 8 Stunden dauern, aber wenn wir es stattdessen anders machen müssen, dauert das ungefähr 32, aber es ist vielleicht nicht so schlimm, wenn wir anfangen, es zu schreiben." ... ".

Ich gehe auch davon aus, dass dieser Prozess besser wird, sobald wir eine historische Geschwindigkeit haben, mit der wir arbeiten können, aber viele der Technologien und Architekturmuster, die wir verwenden, sind für uns neu. Aber wenn potenziell völlig falsche Schätzungen nur ein natürlicher Teil der Anpassung dieses Prozesses sind, müssen wir uns nur überholen, um dies zu akzeptieren :)

KutuluMike
quelle
Was meinst du mit "angemessen"?
Robert Harvey
Ich meine, ich denke nicht, dass das Team 25 bis 30 Minuten mit dem technischen Design eines Features während der
Sprintplanung
Du hast recht, Michael. Ich habe gerade an etwas anderes gedacht, das ich meiner Antwort unten hinzufügen werde. Wenn Sie eine Sprintplanung ohne einen Geschäftssponsor durchführen, wissen Sie im Wesentlichen nicht, was Sie priorisieren sollen. Mehr dazu weiter unten.
Ian
1
Sie haben zwei Möglichkeiten. Sie können die Länge der Entwurfsphase verlängern, um angemessene Schätzungen zu erhalten, oder Sie können innerhalb Ihrer selbst auferlegten Zeitbeschränkung leben und wilde Vermutungen akzeptieren. Sie können auch Zeit in die Sprints für das Design einbauen (was Sie sowieso tun müssen) und Ihre Arbeitsschätzungen ändern, wenn die Designphase abgeschlossen ist.
Robert Harvey
Ich denke, dass der Teil "Ändern Sie Ihre Arbeitsschätzungen" ein Kampf für uns ist. Einige Teammitglieder bestehen mehr als andere darauf, dass wir keine Stundenschätzungen geben, wenn wir nicht wissen, dass sie richtig sind. Ich hoffe und erwarte auch, dass wir mit der Zeit besser werden, aber klar, "alle anderen" schaffen das ganz gut, so dass ich das Gefühl habe, dass etwas Offensichtliches fehlt.
KutuluMike

Antworten:

14
  1. Planen Sie ein wiederkehrendes "Pflege" -Treffen, in dem Sie diese Designdiskussionen führen. Das Team, in dem ich bin, hat sie einmal pro Sprint am Tag vor der Planung. Das Ziel dort ist es, das Design so weit festzulegen, dass sich das Team auf die Zeitschätzungen für die gesamte Story einigen kann. Sie können in diesem Meeting eine Aufschlüsselung der Aufgaben in Betracht ziehen, sodass die Planung zu einer reinen Übung für die Entscheidung wird, wie viel abgeholt werden soll. Mit anderen Worten, Sie sollten das Design in den Sprints ausführen, bevor Sie mit der eigentlichen Arbeit beginnen.

  2. Erwägen Sie die Verwendung von Planungspoker , dh Punkte / Einheiten "Aufwand" anstelle von Manntagen, um Aufgaben zu schätzen. Versuchen Sie auch, die Geschichten so weit wie möglich aufzuschlüsseln. Je länger / komplexer eine Geschichte ist, desto weniger wahrscheinlich ist Ihre Schätzung.

  3. Bei der Planung sollte der Scrum Master die Planung auf Kurs halten, indem er alle Diskussionen stoppt, die zu weit in das "Lösen" gehen. Zu diesem Zeitpunkt müssen sich die Teammitglieder schnell auf die Schätzung einigen und in der Regel eine Obergrenze / einen Worst-Case-Wert angeben. Es ist viel einfacher, mehr Arbeit zu erledigen, wenn die Aufgaben einfacher sind als geplant, als Zeitpläne zu verschieben, da Aufgaben länger als geplant dauern und Geschichten in mehrere Sprints übertragen werden.

  4. Sprechen Sie darüber, wie sich die Schätzungen in der Retrospektive am Ende des Sprints ausgewirkt haben. Besonders wenn es welche gab, die bemerkenswert weit weg waren. Hat das Team etwas daraus gelernt, wie die Geschichte lief und wie sie es erwartet hatte? Der Scrum Master sollte sich weiterhin auf umsetzbare Änderungen konzentrieren, die an Ihrem Entwurfs- / Schätzprozess vorgenommen werden können.

Mongiesama
quelle
Ich habe dies als Antwort markiert, weil es die Wurzel unseres Problems zu sein scheint: Wir müssen vor dem Planungsmeeting mehr Vorarbeit leisten, damit wir die Rückstandselemente und die damit verbundenen Aufgaben besser verstehen, wenn wir dort ankommen.
KutuluMike
10

Ich denke, das Problem ist, dass Sie versuchen, die Zeit zu schätzen. Tu es nicht.

Schätzen Sie die Komplexität. Sehen Sie sich eine Anforderung an (hoffentlich eine User Story) und bewerten Sie, wie kompliziert das Team sein wird, um herauszufinden, wie sie erstellt und getestet werden kann, im Vergleich dazu, wie kompliziert andere Anforderungen oder User Stories sind. Manchmal liegen Sie falsch, aber oft bekommen Sie eine gute Vorstellung davon, wie schwer etwas sein wird. Sie werden auch feststellen, dass Elemente mit ungefähr der gleichen Komplexität in der Regel den gleichen Aufwand erfordern.

Komplexitäts-Rankings werden also zu den "Story-Punkten", die mit den User-Storys in Ihrem Produkt-Backlog verknüpft sind. Nachdem Sie einige Sprints durchgearbeitet haben, erhalten Sie eine Vorstellung davon, wie viele Story-Punkte Sie in einem Sprint erreichen können, und das ist Ihre Geschwindigkeit. An diesem Punkt haben Sie eine viel bessere Vorstellung davon, wie lange jeder Gegenstand dauern wird.

Ich kann Mike Cohns User Stories Applied nur empfehlen .

Matthew Flynn
quelle
Das macht Sinn, aber wir versuchen, der VS2010-Scrum-Vorlage zu folgen, basierend auf der Theorie, dass viele kluge Leute, die wissen, was sie tun, darauf gekommen sind. Wenn wir keine Stunden schätzen, wie können wir beispielsweise die verbleibende Arbeit an Aufgaben verfolgen oder ein Burndown-Diagramm erstellen?
KutuluMike
Sie verfolgen nicht die verbleibende Arbeit an Aufgaben. Entweder ist es fertig oder nicht. Zu Beginn eines Sprints verpflichtet sich das Team, eine bestimmte Anzahl von Geschichten zu erstellen, basierend auf ihrer Priorität, ihrer Komplexität und der besten Vermutung des Teams, mit wie viel Komplexität sie umgehen können. In der Sprint-Planungssitzung sollten sie entscheiden, welche Aufgaben erforderlich sind, um die Geschichten zu vervollständigen. Diese Aufgaben bilden den Sprint-Rückstand - Sie können einfach sagen, dass sie jeweils 1 Punkt für den Sprint sind. Sobald jeder abgeschlossen ist, können sie als erledigt abgehakt werden.
Matthew Flynn
Es muss keine Beziehung zwischen den Komplexitätspunkten im Product Backlog und den Task Points im Sprint Backlog bestehen. Sie aktualisieren das Sprint-Backlog täglich und markieren Aufgaben. Sie aktualisieren das Produkt-Backlog am Ende des Sprints, wenn Sie gezeigt haben, dass vollständige Storys fertig sind.
Matthew Flynn
Hm, dann machen wir wirklich etwas falsch. Ich weiß, dass es mehr als eine Möglichkeit gibt, Scrum auszuführen, aber dies ist die Anleitung, die wir verwenden, um die verbleibende Arbeit an einer Aufgabe zu verfolgen: msdn.microsoft.com/en-us/library/ff731574.aspx . Ist das nicht richtig?
KutuluMike
3
Ahhhhh. Aha. Es ist als solches nicht falsch, aber offensichtlich ist es für Sie nicht besonders hilfreich. Im Scrum-Handbuch heißt es: "Wenn die Arbeit ausgeführt oder abgeschlossen wird, wird die geschätzte verbleibende Arbeit aktualisiert." Daher ist die MS-Vorlage sinnvoll. Wie ich bereits sagte, ist dies jedoch keine wirklich nützliche Messgröße - niemand kann die verbleibende Arbeit für eine Aufgabe jemals gut abschätzen, und Sie verschwenden Zeit damit, dies zu versuchen. Machen Sie Ihre Aufgaben klein und binär (0 = erledigt oder 1 = nicht), und Sie haben ein Maß dafür, was erledigt ist und was noch übrig ist, und Sie müssen nicht darüber nachdenken.
Matthew Flynn
6

Ich weiß, dass es bei Ihrer Frage speziell darum geht, Design bei der Planung zu vermeiden. Aber das ist eine Art XY-Problem .

Ich war wo du bist. Anstatt Ihnen etwas zu geben, das eine schrittweise Verbesserung bewirken kann, möchte ich Ihnen helfen, einige dieser Zwischenzustände zu überspringen.

Hier sind drei Dinge, die unser Team speziell im Zusammenhang mit der Planung und Ausführung von Arbeiten tut. Dies hat uns geholfen, Design-Thrashing zu vermeiden und ungenauen Zeitschätzungen zu entgehen.

Automatisierbare Akzeptanzkriterien

Unsere Geschichten werden durch ihre Anzahl von automatisierbaren Akzeptanzkriterien aufgezeigt . Das heißt, wenn wir automatisierte Tests schreiben würden, um zu bestätigen, dass die Geschichte fertig ist, welche wären das?

Beispiel: "Wenn der Benutzer auf einem iPad mit iOS 6+ auf" Abspielen "klickt, wird das Video abgespielt." Es mag schwierig sein, diesen Test tatsächlich zu automatisieren, aber es ist ein Akzeptanzkriterium (AC) der Geschichte und trägt einen Punkt bei.

Wir verwenden die Fibonacci-Skala und runden immer auf. Wenn eine Story vier automatisierbare Akzeptanzkriterien hat, handelt es sich um eine Fünf-Punkte-Story.

Unsere maximale Story-Point-Größe beträgt acht Punkte, aber wir haben diese selten. Wenn eine Story mehr als fünf automatisierbare Akzeptanzkriterien hat, finden wir einen Weg, sie aufzuteilen.

Vorpflege

Wir haben am Montag ein Kickoff-Meeting, aber in unseren Pflege-Meetings findet die Teamplanung statt. Vor der Pflege werden die Teammitglieder eine Geschichte vorbereiten, indem sie das Ergebnis beschreiben und die automatisierbaren Akzeptanzkriterien ausprobieren.

Die Pflege bringt das Fachwissen des Teams in die vorgefertigten Geschichten ein, um nicht spezifizierte Anforderungen zu ermitteln, Geschichten aufzubrechen usw.

Wir listen manchmal Aufgaben zusätzlich zu den Akzeptanzkriterien auf, aber diese sind nicht zeitlich geschätzt. Wir schätzen niemals die Zeit. Aufgaben sind nur Aussagen über die Arbeit, die zur Unterstützung der Kriterien ausgeführt werden müssen.

Begrenzung der laufenden Arbeiten

Traditionelle gedränge Versuche , die zur Begrenzung der Zeit der Arbeit an den Sprint Dauer. Wir fanden heraus, dass dies künstlich dazu führte, dass wir uns beeilten, die Sprintfristen einzuhalten, und unsere Wochenenden töteten, weil der Sprint am Freitag endet.

Ein anderer Ansatz besteht darin, die laufenden Arbeiten zu einem bestimmten Zeitpunkt zu begrenzen . Wir sind auf Letzteres umgestiegen und waren wesentlich glücklicher darüber.

Sobald eine Geschichte vom Rückstand in die laufende Arbeit übergeht, charakterisieren wir sie als in einem von mehreren Zuständen:

  • In der Warteschleife - Teamarbeit kann nicht stattfinden, da wir auf Aktivitäten außerhalb des Teams warten
  • In der Entwicklung - Arbeiten an der Erreichung der Akzeptanzkriterien
  • Needs Test - Wir glauben, wir haben den AC getroffen und warten darauf, dass jemand anderes dies überprüft
  • Im Test - Die Geschichte wird gegen den Wechselstrom ausgewertet, Fehler werden behoben
  • Bereit zur Bereitstellung - bei der nächsten verfügbaren Gelegenheit wird es live geschaltet

Wir verwenden dann die Anzahl der Geschichten in jedem Bundesstaat, um den Fokus des Teams zu lenken. Zum Beispiel kann ein Entwickler verfügbar sein, um eine neue Story aufzunehmen. Wenn wir jedoch viele Storys im Test haben, ist es besser, wenn er bei vorhandenen Storys hilft.

Jimbo
quelle
3

Erkennen Sie zunächst, dass genaue Schätzungen unter diesen Umständen nicht möglich sind. Machen Sie keinen Stress, wenn Sie etwas falsch machen. Sie benötigen jedoch noch eine grobe Idee, um planen zu können. Die einzige Möglichkeit, die vollständige Unsicherheit zu berücksichtigen, besteht darin, Ihrer Schätzung weitere Story-Punkte hinzuzufügen. Wenn Sie nicht wissen, ob es eine 5 oder eine 13 ist, verwenden Sie die 13.

Es ist auch hilfreich, Geschichten so klein wie möglich aufzuschlüsseln. Wir haben oft eine Forschungs- / Design-Story mit dem alleinigen Zweck, genug Arbeit zu leisten, um eine bessere Vorstellung davon zu haben, wie das Feature ausgeführt wird. Dann geht die Feature-Story selbst in einen nachfolgenden Sprint über. Überlegen Sie, warum dies funktioniert. Selbst wenn Sie keine Ahnung haben, wie schwer etwas sein wird, wissen Sie normalerweise aus früheren Erfahrungen ziemlich genau, wie lange es dauern wird, es herauszufinden.

Karl Bielefeldt
quelle
2

Hier können Sie zwei Dinge tun.

Lassen Sie zuerst eine Art Scrum-Master die Diskussion überwachen und sagen Sie "Hey, Sie entwerfen wieder", wenn Sie es sind. Es ist schwieriger als es scheint, die Leute Tag für Tag dazu zu bringen und anfangs jeder zum Scrum Master zu machen, damit sich jeder melden kann.

Zweitens müssen Sie beim Entwerfen während der Sprintplanung unterscheiden können, ob Sie nicht genug wissen, um die Dauer einer Aufgabe abzurufen, oder ob Sie nur entwerfen, weil es mehr Spaß macht.

Auch hier sollte der Scrum Master hier einspringen und Ihnen sagen, dass Sie den Artikel wieder in die Warteschleife stellen sollen, bis Sie genug wissen, um ihn zu planen, oder dass Sie aufhören sollen, die ursprüngliche Frage zu entwerfen und zu beantworten (wie lange wird es dauern).

Wenn Sie also eine Sprint-Planung durchführen, ist es sinnvoll, einen Geschäftssponsor zu haben, der den Rückstand mit Ihnen bespricht und die Prioritäten für die Aufgaben festlegt, die zuerst erledigt werden sollen. Wenn Sie dies tun, werden Sie feststellen, dass es schwieriger ist, während der Sitzung zu entwerfen, da sie unruhig werden und schließlich nicht kommen möchten.

Ian
quelle
Wir fügen tatsächlich einen Scrum-Master hinzu (jemand mit Scrum-Erfahrung, der diese Rolle für uns übernehmen soll), damit dies hoffentlich hilft. Aber wir alle erkennen, dass dies ein Problem ist. Ich habe Probleme damit, es besser zu machen .
KutuluMike
Nun, Sie haben das Problem identifiziert. Sie gestalten in der Besprechung. Wenn Sie beim nächsten Treffen etwas entwerfen, hören Sie auf und sagen Sie "Wir wissen nicht genug" oder "Wir wissen genug". Wenn Sie nicht genug wissen, halten Sie es in der Warteschleife, bis Sie weitere Informationen haben (Entwurfssitzung außerhalb des Planungsmeetings). Wenn Sie genügend Informationen haben, planen Sie diese (oder nicht) und fahren Sie fort.
Ian
Ein weiterer Kommentar sollte ich hinzufügen. Seien Sie vorsichtig, wenn Sie einen Scrum Master einstellen. Bei allen agilen Methoden ist es wichtig, flexibel zu sein. Übernehmen Sie, was funktioniert, ändern Sie, was nicht funktioniert. Dies ist eine große Veränderung für Unternehmen, die Verfahren dokumentieren und planen möchten.
Ian
0

Wir haben auf der Grundlage der Schätzung der Geschichte "kalt" während der Sprintplanung mit nur einer begrenzten Diskussion gearbeitet. Die Schätzungen sind wirklich ziemlich ungenau, trotz der Aufstellung von Teams mit einem relativ engen Fokus ... hauptsächlich aufgrund des Vorhandenseins einer Menge undokumentierten, unkommentierten Legacy-Codes ohne wirkliche Vorstellung davon, was tatsächlich passieren soll und a Personal, das sich seit dem Schreiben des Originals stark verändert hat.

Was wir jetzt versuchen, ist, einige Zeit vor der Planung der Untersuchung jeder Geschichte zu verbringen - und hier wird nur ein Entwickler eine Geschichte untersuchen ... Wir hoffen, dass dies bedeutet, dass der Entwickler, der untersucht hat, in der Lage sein wird, einige Erklärungen und Einblicke zu geben helfen die Schätzung. Bisher hat dies bei den Gelegenheiten geholfen, bei denen es versucht wurde.

Ich bin noch nicht davon überzeugt, dass die zusätzliche Untersuchung die Schätzungen wirklich genauer genug macht, um die Kosten zu rechtfertigen, aber wir werden es versuchen, um ein paar Sprints zu sehen.

Dave
quelle