Ziel: Anforderungen in schlüssigen Einheiten
Wesentlich einfachere Anforderungsbeschreibungen als die Use Cases sind die sogenannten User Stories. Sie sollen in ihrer Darstellung der Kundenwünsche möglichst prägnant und eingängig sein. Wesensmerkmal einer Geschichte, der „Story“, ist es, dass es dort einen Spannungsbogen gibt. In jeder guten Geschichte gibt es einen Helden, der im Laufe der Geschichte eine Wandlung erfährt. In diesem Sinne sollten auch User Stories gute Geschichten sein. Schließlich will der Nutzer ja auch mit seinem Produkt etwas erreichen. Es gibt Vorlagen für die Struktur einer User Story, die typischerweise wie folgt aussehen:
Als X möchte ich Y damit Z.
Dabei ist
Beispiel: Für ein Abrechnungssystem könnte eine User Story so lauten:
„Als Mitarbeiter der Buchhaltung möchte ich alle offenen Rechnungen angezeigt bekommen, damit ich sehen kann, welche Rechnungen seit Längerem nicht bezahlt wurden.“
Insbesondere die Angabe des Ziels ist eine Stärke bei den User Stories. In vielen Projekten, bei denen mit anderen Formen der Anforderungsbeschreibung gearbeitet wird, bleibt das Ziel von Anforderungen für die Entwicklung unklar. Und genau dies ist eine der fatalsten Wissenslücken, auf der viele Missverständnisse und spätere Programmfehler basieren.
Bei der Sammlung von User Stories lohnt es sich, das Ziel ganz genau zu hinterfragen. Hierzu kann auch die sogenannte 5Why-Technik aus dem Managementsystem SixSigma hilfreich sein. Dabei hinterfragt man ein Ziel (in SixSigma ursprünglich ein Problem) mehrfach mit „Wozu möchtest du das?“. Es ist erstaunlich, wie sich das Verständnis für die Ziele und Prozesse der Kunden in der Praxis dadurch erhöhen kann. Übertragen auf das Beispiel oben, könnten die Fragen und Antworten wie folgt aussehen:
Bisweilen erarbeitet man sich durch solche Zielbeleuchtungen auch ein genaueres Verständnis dazu, wie das Produkt kundenfreundlicher gestaltet werden kann. Im Beispiel oben wäre sicher eine Sortierung nach den Rechnungsempfängern eine hilfreiche Funktion.
Es scheint zwar so, aber oft ist es gar nicht so einfach, den Nutzen einer Story zu beschreiben, ohne dabei die Lösung einzuschränken. Was damit gemeint ist, lässt sich an einem einfachen Beispiel aus dem Hausbau verdeutlichen.
Beispiel: Ein Bauherr hat bei seinem Architekten als Wunsch für einen Raum „große Fenster“ angegeben. Nach dem Hinterfragen des Wunsches kommt heraus, dass sein eigentliches Ziel darin besteht, bei Tageslicht lesen zu können. Dieses Ziel ließe sich vielleicht mit anderen Lösungen wie z. B. einer neuen Raumaufteilung besser oder kostengünstiger erreichen. Die voreilige Einschränkung der Lösung auf „große Fenster“ könnte also unnötig hohe Kosten verursachen.
Eine gute Geschichte veranlasst uns, mit dem Helden mitzufühlen. Genauso sollten User Stories es den Produktentwicklern ermöglichen, sich in die Bedürfnisse der Anwender des Produktes hineinzudenken.
Um das Verständnis zu erhöhen und die Testbarkeit sicherzustellen, werden User Stories im Allgemeinen mit Akzeptanzkriterien versehen. Dabei handelt es sich um kurze, einfach zu testende Zielbeschreibungen, die den Produktentwicklern helfen, die User Story genauer zu begreifen.
Beispiel: User Story
„Als Mitarbeiter der Buchhaltung möchte ich mir alle offenen Rechnungen anzeigen lassen, damit ich sehen kann, welche Rechnungen seit Längerem nicht bezahlt wurden.“
Hierfür könnten folgende Akzeptanzkriterien festgelegt werden:
Für jede Rechnung werden die Rechnungsnummer, der Kundenname, die Kundennummer, das Rechnungsdatum und das Saldo angezeigt.
Es kann ausgewählt werden, wie viele Rechnungen pro Seite angezeigt werden.
Es wird angezeigt, wie viele Rechnungen insgesamt gefunden wurden.
Die Akzeptanzkriterien präzisieren die User Story in den Anforderungen. Üblicherweise werden diese Kriterien nicht gleich zu Beginn eines Projektes festgelegt, sondern erst, bevor eine User Story in die Entwicklung kommt. Dadurch lässt sich unnötige Arbeit für diejenigen User Stories vermeiden, die sich im Laufe der agilen Entwicklung ändern oder sogar ganz wegfallen.
Das Entwickeln guter User Stories ist in der Praxis nicht so einfach, wie es in der Theorie auf den ersten Blick scheint. Zur Orientierung, was eine gute User Story ausmacht, hat sich das Akronym INVEST bewährt. Es stammt von Bill Wake, der es speziell für User Stories entwickelt hat.
Die einzelnen Buchstaben stehen für:
Außerhalb der Softwareentwicklung ist es nicht immer ganz so einfach, passende User Stories bzw. Anwendungsfälle zu bestimmen. Dort hat man häufig den Eindruck, dass es eigentlich nur ganz wenige oder sogar nur eine bestimmte Anwendungsmöglichkeit des Produktes seitens des Kunden gibt. Man benötigt aber eine ganze Reihe von User Stories, da diese ja die Basis für die Iterationsplanung bilden. Außerdem sollen sie die Basis für die Iterationsplanung bilden. Eine weitere Schwierigkeit beim Einsatz von User Stories im klassischen Projektumfeld besteht darin, dass nicht immer alle Anforderungen auf dieser recht hohen Abstraktionsebene hinreichend beschrieben werden können. In diesem Fall ist eine Kombination aus User Stories und klassischen Anforderungsbeschreibungen sinnvoll, also beispielsweise eine detaillierte Beschreibung einer Anforderung, die zusätzlich in einer passenden User Story zusammengefasst wird. Der Mehrwert der User Story besteht dann immer noch darin, dass der Kundennutzen dadurch prägnant hervorgehoben wird.