Eine große Story teilen
Kurz gesagt: Eine große Story wird vertikal geschnitten: Jedes Stück durchläuft alles, was es braucht, und gibt etwas, das jemand ausprobieren kann. Die Muster zeigen, wo man schneidet: nach Schritten, Regeln, Daten, Komplexität, Qualität oder Operationen. Eine Schicht (Frontend, Backend, Datenbank) ist keine Story.
Problem
Drei Wochen und nichts zu zeigen
Die Story lautet „Als Kunde möchte ich ein Produkt zurückgeben und mein Geld zurückbekommen.“ Sie ist groß, also teilt das Team sie auf: Einer baut den Bildschirm für Rückgaben, ein anderer die Datensätze in der Datenbank, ein Dritter die Erstattung.
Nach zwei Wochen ist der Bildschirm fertig, aber er tut nichts. Die Datenbank ist fertig, aber niemand kann sie sehen. Der Inhaber fragt „Kann ich eine Rückgabe sehen?“, und die Antwort ist „noch nicht“. In der dritten Woche ist alles verbunden, und genau dann findet QA, dass die 14 Tage ab der Bestellung gezählt werden, nicht ab Erhalt der Ware.
Die Stücke waren klein. Aber keines ließ sich allein ausprobieren.
Die Idee
Vertikal, nicht in Schichten
Stell dir die Story als Schichtkuchen vor: Bildschirm, Verarbeitung, Datenbank. Wer nach Schichten teilt, schneidet den Kuchen waagerecht. Du bekommst eine ganze Schicht Creme, und niemand kann sie als Kuchen essen.
Eine gute Teilung schneidet vertikal: Jedes Stück hat von jeder Schicht so viel, wie es braucht, und gibt etwas, das jemand ausprobieren kann. Bei Rückgaben ist das erste vertikale Stück „der Kunde beantragt innerhalb von 14 Tagen nach Erhalt der Ware eine Rückgabe“. Es ist klein. Aber der Inhaber kann es in der ersten Woche sehen, und QA kann sofort die Grenze von 14 Tagen prüfen.
Das heißt Story-Teilung (story splitting): Eine große Story wird in kleinere geschnitten, von denen jede nach INVEST noch eine Story ist.
Genauer, für Neugierige
Das Kuchenbild ist alt: Schon Bill Wake benutzt es in seinem Artikel über INVEST. Ein solches Stück heißt vertikale Scheibe (vertical slice), und das Teilen nennt man auch Slicing.
Die Idee
Wo man schneidet
Es gibt nicht den einen richtigen Schnitt, aber es gibt Muster, die immer wiederkehren. Hier sind sechs, mit dem Shop:
| Muster | Wann es passt | Im Shop |
|---|---|---|
| Nach Schritten des Ablaufs | die Story ist ein Prozess mit mehreren Schritten | Rückgabe: Antrag, Paket zurück, Lager, Geld |
| Nach Geschäftsregeln | eine Handlung, viele Regeln | die Endsumme: Lieferung, Gutscheincode, Treue, was gilt |
| Nach Datenvarianten | derselbe Weg, andere Daten | ein Produkt in einer Größe, dann mit Größe und Farbe |
| Erst der Hauptfall | es gibt einen Hauptfall und viele Komplikationen | Suche nach Name, dann Filter und Vorschläge |
| Erst funktionsfähig, dann die Qualität | eine Anforderung an Geschwindigkeit oder Last | die Zahlung, dann die Zahlung mit 2.000 Kunden gleichzeitig |
| Nach Operationen | „verwalten“ verbirgt mehrere Handlungen | Gutscheincodes: anlegen, ansehen, ändern, beenden |
Die erste Frage lautet: Warum ist die Story groß? Wegen der Schritte, der Regeln, der Daten? Die Antwort legt das Muster nahe.
Genauer, für Neugierige
Die Muster hier folgen der Liste, die in der Praxis am häufigsten zitiert wird: „Patterns for Splitting User Stories“ von Richard Lawrence (2009). Ein anderer bekannter Satz ist SPIDR von Mike Cohn: Spike, Paths, Interfaces, Data, Rules.
Das letzte Muster heißt oft CRUD, nach create, read, update, delete. Im Shop wird „delete“ zu „beenden“, und warum, siehst du in der Übung.
Probier es aus
Welches Muster?
Probier es aus
Teile die Rückgabe
Wähle das Muster und dann die Teile der Teilung in der Reihenfolge, in der sie gebaut werden.
Als Kunde möchte ich ein Produkt, das mir nicht gefällt, zurückgeben und mein Geld zurückbekommen.
Schritt 2: Welche Stücke und in welcher Reihenfolge?
Füge die Stücke hinzu, die die Aufteilung bilden, und ordne sie: Das erste wird zuerst gemacht.
Die Stücke
Die Aufteilung
Muster
- Nach Schritten des Ablaufs: Eine Rückgabe durchläuft mehrere Schritte: den Antrag, das Zurückschicken des Pakets, den Empfang im Lager, das Geld. Jeder lässt sich für sich bauen und dem Inhaber zeigen.
Die Musteraufteilung
- Der Kunde beantragt die Rückgabe einer zugestellten Bestellung innerhalb von 14 Tagen nach Erhalt
- Der Kunde bekommt eine Anleitung, wie er das Produkt zurückschickt
- Das Lager empfängt das Paket, und die Bestellung wird zurückgegeben
- Der Shop erstattet dem Kunden das Geld
Eine Rückgabe ist wegen der Schritte groß, nicht wegen der Regeln. Jeder Schritt ist eine Story: Nach dem ersten kann der Kunde schon eine Rückgabe beantragen, und der Inhaber sieht, wie viele das tun. Der Bildschirm und die Datenbank sind keine Stücke; sie sind Teile jedes Stücks.
Die Idee
Warum nicht nach Schichten
Das Teilen nach Schichten wirkt vernünftig, weil das Team so organisiert ist: Einer baut Bildschirme, ein anderer die Verarbeitung. Aber es kostet viel:
- Niemand kann es ausprobieren. Der Inhaber sieht erst etwas, wenn jede Schicht fertig ist. Ist die Story falsch, erfährt er es als Letzter.
- Es lässt sich nicht prüfen. Die Kriterien der Story („innerhalb von 14 Tagen nach Erhalt der Ware“) betreffen Verhalten, nicht einen Bildschirm oder eine Datenbank. QA wartet bis zum Ende.
- Das Risiko liegt am Ende. Die Schichten treffen sich am Ende, und dort zeigen sich die Unstimmigkeiten.
- Nach INVEST ist es nicht wertvoll. Kein Stück bringt jemandem außerhalb des Teams etwas.
Schichten sind Aufgaben innerhalb der Story. Entwickler bauen sie, aber die Story gilt als fertig, wenn das ganze vertikale Stück funktioniert.
Die Idee
Woran man eine gute Teilung erkennt
- Jedes Stück ist eine Story. Sie hat eine Rolle, ein Ziel und einen Nutzen und besteht INVEST.
- Das erste Stück bringt am meisten. Den meisten Wert oder das meiste Lernen. Ist das erste Stück „Vorbereitung“, schneidest du falsch.
- Die Stücke überschneiden sich nicht. Keines steckt in einem anderen.
- Zusammen decken sie die große Story ab. Oder zumindest das, was davon wirklich gebraucht wird.
Der letzte Punkt ist wichtig. Oft sagt der Inhaber nach ein paar Stücken „das genügt“. Die übrigen Stücke werden nie gebaut, und das ist kein Scheitern. So macht die Teilung ihre Arbeit.
Übung
Teile die Stories
1. Die Endsumme. Die Story über die Summe vor dem Bezahlen.
Wähle das Muster und dann die Teile der Teilung in der Reihenfolge, in der sie gebaut werden.
Als Kunde möchte ich vor dem Bezahlen die Endsumme mit Lieferung und Rabatten sehen, damit ich weiß, wie viel ich zahle.
Schritt 2: Welche Stücke und in welcher Reihenfolge?
Füge die Stücke hinzu, die die Aufteilung bilden, und ordne sie: Das erste wird zuerst gemacht.
Die Stücke
Die Aufteilung
Muster
- Nach Geschäftsregeln: Die Summe ist eine, aber die Regeln sind mehrere: die Lieferung, der Gutscheincode, die Treue und was gilt, wenn es zwei sind. Jede Regel lässt sich für sich bauen, zeigen und prüfen.
Die Musteraufteilung
- Die Summe mit Lieferung: kostenlos ab 50,00 €, sonst 4,90 €
- Die Summe mit Gutscheincode: 10 %, nicht für reduzierte Produkte
- Die Summe für einen Stammkunden: 5 %
- Gutscheincode und Treue zusammen: Der größere Rabatt gilt
Jede Regel ist eine Story, die sich für sich prüfen lässt: „ein Warenkorb von 50,00 €, die Lieferung ist kostenlos“. Die Regel „der größere gilt“ kommt zuletzt, weil sie erst Sinn ergibt, wenn beide Rabatte existieren. Die anderen drei können in beliebiger Reihenfolge kommen.
2. Die Gutscheincodes. Die Story des Marketings.
Wähle das Muster und dann die Teile der Teilung in der Reihenfolge, in der sie gebaut werden.
Als Mitarbeiterin im Marketing möchte ich die Gutscheincodes verwalten, damit ich Kampagnen ohne Entwickler starten und beenden kann.
Schritt 2: Welche Stücke und in welcher Reihenfolge?
Füge die Stücke hinzu, die die Aufteilung bilden, und ordne sie: Das erste wird zuerst gemacht.
Die Stücke
Die Aufteilung
Muster
- Nach Operationen: anlegen, ansehen, ändern, beenden: „Verwalten“ verbirgt mehrere getrennte Handlungen. Jede ist eine Story, die die Mitarbeiterin für sich ausprobieren kann.
Die Musteraufteilung
- Die Mitarbeiterin legt einen neuen Gutscheincode mit einem Gültigkeitszeitraum an
- Die Mitarbeiterin sieht die Codes und wie oft jeder verwendet wurde
- Die Mitarbeiterin beendet einen Code vor Ablauf seines Zeitraums
- Die Mitarbeiterin ändert den Gültigkeitszeitraum eines Codes
Das Anlegen kommt zuerst, denn ohne Code gibt es nichts anzusehen, zu ändern oder zu beenden. Das „delete“ von CRUD wird hier zu „beenden“: Ein verwendeter Code muss bleiben, weil die Buchhaltung die Rabatte pro Code abgleicht. Der Bedarf einer Interessengruppe hat das Muster verändert.
Test
Teste dich
Verwandte Lektionen
Abschnitt „Verwandte Lektionen“- Baut auf: Wer mitzureden hat · Wenn eine Tabelle klarer ist · Was eine Story ist · Die gute Story: INVEST
- Geht weiter in: Akzeptanzkriterien · Example Mapping: Regeln, Beispiele, Fragen · Gutscheincodes: von der Anfrage bis zur Freigabe
- Aufgaben zum Thema: Stories und Akzeptanzkriterien