Dies ist ein komplexes Thema, und es gibt häufige Debatten zu diesem Thema. Ich mag das Konzept der "kanonischen" Meinung dazu nicht: Es gibt verschiedene Meinungen mit Wert. Es gibt jedoch unterstützende Werte, Prinzipien und Praktiken, die den Ansatz leiten sollten.
Das Folgende basiert auf meinen eigenen Meinungen, die ich seit über 10 Jahren mit Scrum-Teams zusammenarbeite. Aber es ist nur meine Meinung.
Story Points als Prognosemethode Die ursprüngliche Absicht von Story Points bestand darin, eine schnelle Methode zur Schätzung des Aufwands zu finden, um vorherzusagen, was ein Team in einem bestimmten Zeitraum leisten kann. Einige der "Leuchten" geben an, dass Punkte nur zur Vorhersage des längerfristigen Umfangs (z. B. über eine Version) und nicht zur Bestimmung der Kapazität auf Sprint-Ebene verwendet werden. Darüber hinaus besteht das Konzept darin, dass Teams "relative Größen" basierend auf historischen Werten anwenden (Aufwand X ähnelt Aufwand B, der 3 Punkte betrug). Dies beschleunigt den Schätzprozess, sodass Teams zukünftige Arbeiten nicht in detaillierte Arbeitspakete aufteilen und Stunden auf alle Aufgaben anwenden müssen. Hochleistungsteams bemühen sich, alle technischen Mitarbeiter zu sehr kompetenten Mitgliedern mit ähnlichen Fähigkeiten zu entwickeln. (Dieses Konzept wird in Punkt 4 näher erläutert.) Wenn dies erreicht ist, ist die individuelle Fähigkeitsstufe wirklich keine Variable bei der Größenbestimmung. ABER: Normalerweise dauert es ziemlich lange und es sind konzertierte Anstrengungen erforderlich, um dieses Ziel zu erreichen. SO ... was machen wir, bevor wir dort ankommen?
Arbeitsstunden bestimmen die Sprintkapazität: Laut denselben "Leuchten", die angeben, dass Punkte für Langzeitprognosen verwendet werden, schlagen sie auch vor, dass Arbeitsstunden zur Bestimmung der Sprintkapazität anstelle von Punkten verwendet werden. Meiner Meinung nach ist das in Ordnung, aber ich werde sagen, dass, wenn ich Trainerteams zu "High-Performance" verholfen habe, ihre ausgereiften Fähigkeiten so gemittelt wurden, dass sie genau bestimmen konnten, was sie in einem Sprint nur mit Story Points erreichen konnten . Auch dies kann ein Ziel sein, das wir anstreben, aber neuere Teams sind dafür nicht bereit. Daher finden Sie in einem einzelnen Sprint möglicherweise eine Story mit 2 Punkten, die 12 Arbeitsstunden und eine weitere mit 25 Stunden Aufwand umfasst. Also, was machst du? Einige Leute, die ich "agile Puristen" nenne, werden angeben, dass die Größe der Story (in Punkten) unabhängig von der Dauer sein sollte. Andere sind anderer Meinung. Lesen Sie die Logik zu Punkt 3 durch und sehen Sie, was Sie denken.
- Story-Pointing im Konsens: Anwenden von Volumen, Unbekanntem, Komplexität, Wissen
Die Teams sehen sich also eine Arbeit an und müssen sich auf die Punkte einigen, die als Stellvertreter für das Maß an Aufwand dienen. Richtig? Unter der Annahme, dass alle Fähigkeiten gleich sind, ist ein Konsens leicht zu erreichen. Aber oft haben Teams einen Mann, der ein Java-Guru ist, einen anderen, der nicht so gut in Java ist (vielleicht war sie eine C # - oder .Net- oder Cobol-Person und lernt Java). Aufgabe X für Bob ist also sehr einfach. Für Jane ist es schwieriger.
Agile Teams versuchen, den Besitz von kollektivem Code zu fördern und das Fachwissen zu erweitern. Daher weisen wir Menschen normalerweise keine Geschichten aufgrund ihres Fachwissens zu: Wir bevorzugen Teams, die gemeinsam an Geschichten arbeiten und gemeinsam lernen. Dies entspricht dem Konzept "Verlangsamen, um zu beschleunigen": Wenn wir uns die Zeit nehmen, Jane Erfahrung mit Java zu vermitteln, während dies uns zunächst verlangsamen kann, werden wir später kompetentere Java-Entwickler haben. Wenn wir nur EINEN Java-Experten haben und jeder an seinen eigenen Fachgebieten arbeitet, schaffen wir eine Situation mit mehreren potenziellen "Fehlerquellen". Was passiert im Sprint, wenn 90% der Arbeit Java ist, Bob (unser Java-Experte) jedoch krank ist oder Urlaub macht? Durch die Erweiterung unserer Fähigkeiten beseitigen wir potenzielle Engpässe und reduzieren das Risiko. In diesem Sinne: Wenn sich das Team eine Geschichte ansieht, sollte es bei der Dimensionierung verschiedene Konzepte berücksichtigen. Sie können sich das Akronym VUCK vorstellen, um sich daran zu erinnern.
Volumen: Einige Bemühungen sind recht einfach, erfordern jedoch eine große Anzahl wiederholter Aufgaben. (Ich hatte einen Mann, der mehr als 50 Tabellen kopieren und neu formatieren musste, der sagte, es sei 1 Punkt, weil es einfach war. Aber nach Überlegungen stellte das Team fest, dass es zwar einfach, aber zeitaufwändig und mit einer großen Anzahl von Tabellen verbunden war bewegt und optimiert werden. Deshalb mussten wir die Punkte aufgrund des Arbeitsvolumens neu einstellen.)
Unbekannte: Manchmal DENKEN wir, wir wissen, was zu tun ist, aber wir identifizieren auch einige Unbekannte - diese repräsentieren RISIKEN . Dies bedeutet, dass wir möglicherweise auf unerwartete Probleme stoßen, die wir lösen, neu gestalten oder eine andere Lösung ausprobieren müssen.
Komplexität: Dieser ist ziemlich offensichtlich. Einige Lösungen sind technisch komplex. Wir wissen genau, was zu tun ist, aber es erfordert technisches Fachwissen. Komplexität birgt auch ein gewisses Risiko, nicht wahr? Selbst wenn wir alle die gleichen Fähigkeiten haben, impliziert die technische Komplexität, dass wir möglicherweise auf unvorhergesehene Herausforderungen stoßen. Also könnten wir diese Geschichte größer machen.
Wissen: Wissen wir WIRKLICH, was wir lösen? Manchmal sind sich die Kunden nicht ganz sicher, welche Lösung sie wollen, und wir experimentieren ein bisschen. Oder vielleicht hat noch niemand diese Lösung implementiert (neue Technologie, die noch nie zuvor verwendet wurde) und wir wissen nicht, was wir nicht wissen.
Meiner Meinung nach ist jede dieser Überlegungen tatsächlich ein Stellvertreter für eine längere Dauer. Einfache Geschichte, viel Volumen? Es wird länger dauern, oder wir müssen die Geschichte teilen. Unbekannte? Zusätzliches Risiko, Forschung, Experimentieren, es kann länger dauern oder wir müssen die Geschichte teilen. Komplex? Zusätzliches Risiko, Behebung von Fehlern, Neugestaltung usw., sodass es möglicherweise länger dauert. Sie wissen nicht, ob wir das erforderliche Wissen haben? Wir haben ein zusätzliches Risiko, müssen möglicherweise experimentieren usw., daher kann es länger dauern ...
Sehen Sie, wohin das führt? Während das Konzept der Story Points uns davon abhält, bei der Schätzung über die Dauer nachzudenken, wäre es andererseits unlogisch, eine 1-Punkt-Story zu haben, die wir in 4 Stunden fertigstellen können, und eine weitere 1-Punkt-Story, die einfach ist, aber dauern wird 2 Wochen.
- Leistungsstarke Teams eliminieren Silos und Engpässe: Da Teams versuchen, alle Mitglieder zu verbessern, stellen sich manchmal weniger erfahrene Mitglieder neuen Herausforderungen oder sie koppeln Code, um Wissen auszutauschen und sich als Team zu verbessern. Wie bereits erwähnt, ist dies eine Voraussetzung, wenn das Team jemals echte High-Performance-Level erreichen wird.
Also, wenn Jane sich freiwillig bereit erklärt, diese Java-Anstrengung zu übernehmen, und das würde die Anstrengung 2x oder 3x der Dauer derselben Anstrengung machen, wenn Bob es tun würde, was machst du dann? Im Laufe der Zeit entschieden sich meine Teams für die Dimensionierung von Geschichten basierend auf dem Aufwand (LOE) / VUCK für die Personen, die an dem Aufwand arbeiten. Für Bob, den Team-Guru, macht es keinen Sinn, "das ist eine 1" zu sagen, wenn es für Jane nicht einfach ist und eine Woche dauert, bis sie abgeschlossen ist. Außerdem benötigt Bob etwas Zeit für die Paarcodierung und Codeüberprüfung. Daher haben wir diese Punkte erhöht, um den tatsächlichen LOE widerzuspiegeln. Das nächste Mal, als eine ähnliche Geschichte kam, wurde aus einer 8 für Jane zuvor eine 5. Schließlich waren sich alle einig, dass es eine einfache 3 war. Zu diesem Zeitpunkt wussten wir, dass wir als Team wachsen würden.