Wenn eine Story so groß ist, dass sie erst nach mehreren Sprints abgenommen werden kann, lief etwas falsch: das Splitting der User Story. Es kann sein, dass die Story einfach zu groß ist, oder innerhalb des Sprints zuwenig Zeit für die Story bleibt, obwohl diese kleiner als der Sprint ist.
User Story nach Daten unterteilen
Wenn ein Formular für den Verkauf einer Immobilie erstellt werden muss, kann die Story bei den Daten Basisdaten, Preis & Finanzierung, Detailinformationen usw. unterteilt werden.
User Story nach Verarbeitungsart unterteilen
Die Daten für die Immobilie müssen zuerst gespeichert werden, dann können Sie gelesen, editiert und gelöscht werden. Dies nennt man CRUD Vorgänge. Create – Read – Update – Delete. Die User Story kann für diese Vorgänge aufgeteilt werden.
User Story nach Vertikal-Komponenten unterteilen
Sobald sich der Benutzer für das Erfassen einer Immobilie einloggen muss, fallen Vertikal-Komponenten zur Umsetzung an – Sicherheit, Logging, Errorhandling. Die User Story kann nun zweigeteilt werden, einmal ohne diese Komponenten, später mit diesen Komponenten.
User Story nach funktionalen und nichtfunktionalen Aspekten unterteilen
Wenn nun schon viele Immobilien erfasst wurden und eine Liste angezeigt werden soll, die alle Immobilien enthält, kann es sein, dass ein Caching-Mechanismus implementiert werden muss, damit die Liste schneller aufgebaut wird. Die User Story kann so unterteilt werden, dass der eine Teil die Präsentation der Liste enthält (funktional) und der andere Teil den Aufbau des Caching-Mechanismus enthält (nichtfunktional).
User Story nach Prioritäten unterteilen
Bei Verwalten der Immobilien sollen nun zuerst die Dinge umgesetzt werden, die einen hohen Business Value haben. So kann die User Story lauten „Als Benutzer will ich meine Immobilien verwalten können“. Darin findet sich nun beispielsweise die Story „Als Benutzer will ich Immobilien für den Verkauf aktiv setzen können“, dies hätte eine hohe Priorität, die Story „Als Benutzer will ich eine Liste meiner Immobilien exportieren“ hätte aber eine niedrige Priorität. Ein weiteres Beispiel kann sein, dass Validierungen, ob die Immobilie wirklich aktiv gesetzt werden darf (Validierung), in einem ersten Schritt weggelassen werden.
Vermeiden: User Story nach Einzelarbeitsschritte unterteilen
Auch wenn es manchmal nicht anders möglich aussieht, soll die Story „Als Benutzer will ich eine Immobilie erfassen können“ trotzdem nicht in die Arbeitsschritte „Formular erstellen“, „Zugriffsschicht erstellen“ und „Datenbank aufsetzen“ unterteilt werden. Es empfiehlt sich, einen Durchstich anzustreben, bei dem ein kleines Formular (wenige Felder) nur Erstellend (das C aus CRUD) ohne Validierung eine Immobilie auf die Datenbank (ohne Überprüfung der Datenintegrität) schreibt.
Vermeiden: der nun kleinen User Story mehr Arbeit hinzufügen
Wenn die Story nun implementiert wird, könnte doch noch schnell dies und das links und rechts erledigt werden – nein! Der Story soll nichts hinzugefügt werden. Ausnahme: die Änderungen müssen mindestens die gleiche Priorität wie die aktuelle Story haben, dann können diese unter Berücksichtigung des Zeitplanes umgesetzt werden.
Es ist nun aber nicht die Meinung, dass die Stories so klein wie möglich gemacht werden sollen. Eine gute Größe für Stories ist 2 – 5 Tage – dies hält den Fluss der Arbeit aufrecht.
Es bietet sich an, User Stories nicht nur zu unterteilen, sondern diese auch, wenn sie zu klein sind, zu kombinieren. So können zum Beispiel Bugs zu einer Story zusammengefasst werden. Es wird dann auch diese kombinierte Story geschätzt und nicht jeder Bug einzeln.