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 :)
Antworten:
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.
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.
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.
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.
quelle
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 .
quelle
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:
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.
quelle
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.
quelle
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.
quelle
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.
quelle