22 September 2013

In meinem aktuellen Projekt sollen Story Points eingeführt werden, um von den „idealen Tagen“ (8 Stunden Vollzeit für das Projekt) wegzukommen.

Die theoretische Einführung war dabei komplizierter als die tatsächliche Anwendung. Denn in der Theorie sollen Story Points ein Maß für die Komplexität einer Aufgabe sein.
Für mich war die Komplexität einer Aufgabe allerdings nicht so einfach zu bestimmen. Nach meinem bisherigen Verständnis hat Komplexität nichts mit der Anzahl an notwendigen Wiederholungen bei der Lösung einer Aufgabe zu tun. Angenommen die Aufgabe besteht darin, Kies von A nach B zu bringen, dann könnte die Lösung darin liegen, eine Schaufel zu nehmen, Kies drauf zu packen und von A nach B zu bringen. Wenn zur Aufgabe dann noch eine weitere Informationen dazu kommt, wird die Aufgabe durch die Anzahl der Informationen zwar komplexer, aber deren Umsetzung muss dadurch nicht komplexer werden.
Im genannten Kies-Beispiel könnte die zusätzliche Information sein, dass eine Tonne Kies von A nach B zu bringen. Dann könnte die Lösung darin liegen, den Kies mit einer Schaufel zu transportieren. Die Lösung der Aufgabe ist dann ebenso komplex wie die Lösung ohne zusätzliche Information.
Da Sprints aber nicht unendlich lange dauern, könnte die Lösung mit der Schaufel allerdings nicht zielführend sein. Dadurch kommt aber eine weitere Information zur Aufgabe hinzu. Dies führt zu einer weiteren Erhöhung der Komplexität der Aufgabe. Es muss also eine andere Lösung gefunden werden. Die Lösung könnte ein Radlader sein, dessen Schaufel mit Kies an A befüllt und an B entleert wird. Die Lösung der Aufgabe wird dadurch komplexer, da man jemanden haben muss, der das Gerät fahren kann. Wenn man sojemanden im Team nicht hat, ist die Lösung der Aufgabe für das Team sehr komplex, da die Lösung für das Team unter Umständen etwas noch nie Dagewesenes darstellt. Eine Alternative zur genannten Lösung kann natürlich sein, dass man weiterhin die Schaufel nimmt und die Aufgabe auf mehere Sprints verteilt.

Aber warum ist es überhaupt relevant, was man mit Story Points misst? Eigentlich geht es bei Story Points doch nur um eine abstrakte Größe, die man in Relation setzen kann. Irgendwie möchte ich bestimmen, ob Aufgabe B komplexer ist als Aufgabe A. Nach meinem Verständnis ist es aber irrelevant, wie komplex eine Aufgabe ist. Es geht allein um den Schwierigkeitsgrad der Lösung.
Bei der Sprintplanung muss das Team sich also grob auf eine Lösung der Aufgabe einigen und diese in Relation zu den Lösungen anderer Aufgaben setzen.

Story Points sagen also nichts über die Komplexität einer Aufgabe aus, sondern sie beziehen sich auf die Lösung der Aufgabe. Die Relation der Lösungen zueinander ist von Team zu Team unterschiedlich, da jedes Team unterschiedliche Erfahrung hat, um die Lösungen in Relation zu setzen.

Das Konzept hinter Story Points ist aus meiner Sicht das Entscheidende: Der Aufwand zu einer Aufgabe wird abgeleitet und nicht geschätzt. Wie groß, schwer oder komplex die Lösung der Aufgabe ist, liegt am Verständnis des Teams. Dies muss sich nur bei den Referenz-Lösungen einig sein.