Früher haben wir Projekte durchgeführt, die ein Start und ein Ende hatten. Zu Beginn stand eine umfangreiche Analyse- und Design-Phase, in der die Wünsche des/der Kunden – oder besser Stakeholder – von Business Analysten oder Requirements Engineeren in Form von Anforderungen aufgenommen, niedergeschrieben, analysiert und konsolidiert wurden. Ergebnisse dieser Phase waren Fach- und IT-Konzepte. Auf deren Grundlage fand in der nächsten Phase die Entwicklung statt; anschließend umfangreiche Tests. Am Projektende dieses wasserfall-artigen Prozesses war die zu implementierende Software fertig oder wurde als fertig definiert und erfüllte mehr oder minder die Anforderungen der Kunden bzw. Stakeholder.
Heute arbeiten wir in der Softwareentwicklung an Produkten. Die Wünsche der Stakeholder werden von Product Ownern in Form von User Stories erst in Product Backlogs und anschließend in Sprint Backlogs geschrieben. Die Inhalte der Sprint Backlogs werden dann vom Entwicklungsteams in zwei- bis vier-wöchigen Sprints implementiert, getestet und am Ende der Sprints dem Product Owner und die Stakeholdern präsentiert. Rückmeldungen aus der Präsentation fließen in das Product Backlog ein. Das Ganze wird fortwährend iteriert, sodass der Funktionsumfang der Software bzw. des Produkts mit jedem Sprint wächst.
Aus Sicht des Requirements Engineering könnte ein erster oberflächlicher Versuch Parallelen zwischen früher und heute zu ziehen, wie folgt aussehen:
Im Mittelpunkt stehen die Anforderungen bzw. die User Stories und die Art und Weise, wie diese beschrieben und dokumentiert werden. Im Falle der Anforderungen haben sich folgende Kriterien bei deren Erfassung etabliert:
Das Ergebnis dieses Kriterienkataloges war folgende Schablone zur Formulierung von Anforderungen:
[System] - MUSS/KANN/SOLL - [Akteur] die Möglichkeit bieten/FÄHIG SEIN – [Objekt] – [Prozesswort]
Ein Beispiel könnte sein: „Das Zeiterfassungssystem muss dem Mitarbeiter die Möglichkeit bieten, seine Arbeitszeit projektbezogen zu erfassen.“
Bei der Suche nach etwas Vergleichbaren für User Stories weiß das Internet auch schnell Rat. So sollen User Stories nach den INVEST Kriterien formuliert werden:
Analog zur Anforderungsschablone gibt es auch eine für User Stories:
Als [Rolle] möchte ich [Ziel/Wunsch], um [Nutzen]
Das obige Beispiel ließe sich als User Story wie folgt formulieren: „Als Mitarbeiter möchte ich das Zeiterfassungssystem nutze, um meine Arbeitszeit projektbezogen zu erfassen.“
Die Parallelen sowohl zwischen den Kriterien als auch bei den Schablonen lassen schnell den Eindruck entstehen, dass lediglich eine kleine Anpassung in der Formulierung der Kundenwünsche erforderlich ist, um agil und auf dem Stand der Zeit zu sein. Sollten dann eine oder mehrere User Stories für die Erfassung der Kundewünschen nicht ausreichen, können zum Glück noch die Akzeptanzkriterien der Stories, sowie die Definition of Ready und die Definition of Done herhalten, um weitere Details zu beschreiben. – Und schon entsteht ganz schnell auch in agilen Projekten eine umfangreiche Dokumentation, die es leicht mit einem Fach- oder IT-Konzept aus der „alten“ Zeit aufnehmen kann.
War das die Idee hinter dem Konzept der User Stories? – Nein! Denn sobald ein Team bei dem oben skizzierten Vorgehen angekommen ist, ist es der Gruppe der „Template Zombies“ (vgl. Tom DeMarco et al.) beigetreten. Es lässt sich bei der Arbeit von Templates (Schablonen u.ä.) steuern, statt vom Denkprozess, der nötig ist, um gute Produkte abzuliefern.
Der Begriff „Story“ drückt aus, wie wir diese benutzen (sollen), nicht was wir aufschreiben „sollen). Ziel ist es, eine gute Geschichte zu erzählen und eine Konversation zu starten, die das Team mitnimmt und begeistert. Dabei sollen der Story-Gedanke und die Art der Formulierung helfen, den Fokus auf den Kunden zu legen und die Wünsche aus seiner Perspektive zu sehen. Um das zu gewährleisten, kann auch jedes andere Konstrukt als Basis für die gemeinsame Konversation genommen werden. In diesem Gespräch entsteht nach und nach ein gemeinsames Bild der Welt. Im Vordergrund steht, gemeinsam die besten Lösung für ein Problem zu finden, das alle Beteiligten verstanden haben. Hierbei gilt: Der Weg ist das Ziel. – Die in der Konversation gemachten Erkenntnisse sind das wichtigste an der „Story“ – nicht die Story selbst. Daher ist es sinnvoll, diese erlangten Erkenntnisse in geeigneter Form zu dokumentieren, damit das Wissen darüber nicht verloren geht.
Sinnvolle Inhalte einer Story-Konversation sind:
Wichtig ist, dass in der Konversation keine Diskussionen und Vereinbarungen von Anforderungen stattfinden, sondern ein Gespräch über Probleme und Lösungen geführt wird. Der Fokus liegt auf dem Wesentlichen! Das hat bereits Antoine de Saint-Exupéry Anfang des 20. Jahrhunderts erkannt: Perfektion ist nicht dann erreicht, wenn es nichts mehr hinzuzufügen gibt, sondern wenn es nichts mehr wegzulassen gibt.