Anforderungen als Gesprächsanstöße, nicht als umfassende Spezifikationen.
User Stories sind keine Anforderungsdokumente. Sie sind Platzhalter für Gespräche.
Ron Jeffries hat dies als die „3 Cs" zusammengefasst:
Card: Eine kurze Beschreibung, die auf eine Karteikarte passt. „Als Benutzer möchte ich mein Passwort zurücksetzen, damit ich wieder Zugriff auf mein Konto erhalte."
Conversation: Der Dialog zwischen Entwicklern und Kunden, der die Details ausarbeitet. Was bedeutet „zurücksetzen"? E-Mail-Link? SMS-Code? Sicherheitsfragen?
Confirmation: Die Akzeptanzkriterien, die Ihnen sagen, wann die Story fertig ist. „Gegeben eine gültige E-Mail, wenn ich auf ‚Passwort zurücksetzen' klicke, dann erhalte ich innerhalb von 1 Minute eine E-Mail mit einem Reset-Link."
Die Karte ist nicht die Anforderung. Das Gespräch ist die Anforderung. Die Karte ist nur eine Erinnerung, das Gespräch zu führen.
Warum Karteikarten?
Karteikarten erzwingen Kürze. Man kann kein Anforderungsdokument auf eine Karte packen. Das ist beabsichtigt – die Details sollten durch Gespräche entstehen, nicht durch Dokumentation.
Das klassische Story-Format lautet:
Als [Benutzertyp] möchte ich [eine Fähigkeit] damit [geschäftlicher Wert]
Zum Beispiel:
Die „damit"-Klausel ist entscheidend. Sie erklärt, warum die Funktion wichtig ist. Das hilft Entwicklern, gute Entscheidungen über die Implementierung zu treffen, und hilft Product Ownern bei der Priorisierung.
Schlechte Stories lassen das Warum weg:
Gute Stories verbinden Funktionen mit Wert:
Das INVEST-Akronym beschreibt Qualitäten guter Stories:
Independent (Unabhängig): Stories können in beliebiger Reihenfolge entwickelt werden. Keine Abhängigkeiten zwischen Stories.
Negotiable (Verhandelbar): Der Umfang ist flexibel. Details werden durch Gespräche ausgehandelt.
Valuable (Wertvoll): Jede Story liefert Wert für Benutzer. Keine „technischen Stories" ohne Benutzernutzen.
Estimable (Schätzbar): Das Team kann einschätzen, wie groß sie ist. Falls nicht, braucht die Story Klärung oder Aufteilung.
Small (Klein): Eine Story sollte weniger als eine Woche Arbeit bedeuten. Idealerweise ein paar Tage.
Testable (Testbar): Es gibt klare Akzeptanzkriterien. Man kann überprüfen, wann sie fertig ist.
Wenn eine Story gegen INVEST verstößt, beheben Sie es:
Als Kunde möchte ich nach der Bestellung eine E-Mail-Bestätigung erhalten, damit ich einen Nachweis meines Kaufs habe. Akzeptanz: E-Mail kommt innerhalb von 5 Minuten an, enthält Bestellnummer und Artikel, hat Abmeldelink.
Das Benutzerverwaltungssystem implementieren. (Nicht unabhängig – zu groß. Nicht testbar – keine klaren Kriterien. Nicht klein – könnte Monate dauern.)
Große Stories müssen aufgeteilt werden. Aber wie?
Nach Workflow-Schritt aufteilen: „Benutzer kann Checkout abschließen" →
Nach Datenvariation aufteilen: „Benutzer kann für Bestellung bezahlen" →
Nach Operation aufteilen: „Benutzer kann sein Profil verwalten" →
Nach Performance aufteilen: „Suche liefert Ergebnisse schnell" →
Jede aufgeteilte Story sollte unabhängig auslieferbar sein. Wenn Sie keine teilweise Kreditkartenunterstützung ausliefern können (nur Visa, nicht Mastercard), ist das trotzdem eine Aufteilung – Sie liefern Wert inkrementell.
Fragen Sie beim Aufteilen immer: „Was ist das Kleinste, das Benutzerwert liefert?" Teilen Sie auf, bis jedes Teil klein und wertvoll ist.
Das ist es wert, wiederholt zu werden: Stories sind keine Spezifikationen.
Traditionelle Anforderungsdokumente versuchen, jedes Detail im Voraus zu spezifizieren. Das scheitert, weil:
Stories akzeptieren Unsicherheit. Die Karte erfasst die Absicht. Das Gespräch füllt Details genau rechtzeitig aus. Die Bestätigung verifiziert das Verständnis.
Der Kunde bleibt die ganze Zeit involviert. Wenn Entwickler Fragen haben, fragen sie den Kunden – nicht das Dokument. Das hält das Team ausgerichtet und passt sich dem Lernen an.
Stories fördern auch das Aufschieben von Entscheidungen. Man muss nicht jeden Grenzfall im Voraus entscheiden. Behandeln Sie zuerst den Hauptpfad. Wenn Sie auf einen Grenzfall stoßen, führen Sie dann ein Gespräch.
Das ist XPs Ansatz für Anforderungen: gerade genug, genau rechtzeitig, durch Gespräche.