- Agilität (94)
- Allgemein (10)
- Ankündigungen (29)
- Buchtipp (13)
- Crystal (7)
- Konferenzen (23)
- Kunden (5)
- Lean Software Development (1)
- Management (36)
- Planung (20)
- Politik (14)
- Praktiken (7)
- Refactoring (11)
- Scrum (15)
- Software Design (10)
- Surftipp (28)
- Testgetriebene Entwicklung (8)
- Werkzeuge (7)
- Zitate (8)
- 21.1.2010: it-agile und Coldewey Consulting gehen zusammen
- 11.12.2009: Aufspalten einer User Story
- 6.11.2009: Vortrag auf der W-Jax zu langfristiger agiler Planung
- 2.10.2009: Alistair Cockburns Keynote "I come to bury Agile, not to praise it" als Video
- 22.9.2009: Apple und die Macht einer Vision
- 21.9.2009: Pair Programming in der New York Times
- 10.9.2009: Neue XING-Gruppe zu Lean Software Development
- 9.9.2009: CSM+Crystal Kurse mit Alistair Cockburn
- 7.8.2009: Alistair Cockburn gibt CSM-Kurs in Deutschland im November
- 21.7.2009: Folien der Karlsruher Entwicklertage online
- Januar 2010
- Dezember 2009
- November 2009
- Oktober 2009
- September 2009
- August 2009
- Juli 2009
- Juni 2009
- Mai 2009
- April 2009
- März 2009
- Februar 2009
- Januar 2009
- Dezember 2008
- November 2008
- Oktober 2008
- September 2008
- Juli 2008
- Juni 2008
- Mai 2008
- April 2008
- März 2008
- Februar 2008
- Januar 2008
- Dezember 2007
- November 2007
Methodik: Use Cases, User Stories und Akzeptanztests
Was ist eigentlich der methodische Unterschied zwischen Use Cases und User Stories? Ich habe mich selbst nicht sonderlich intensiv mit Use Cases beschäftigt, kann hier also nur wiedergeben, was ich von Alistair Cockburns Erklärung verstanden habe: Eine User Story ist letztlich die Überschrift eines Szenarios, möglicherweise zusammen mit einem Beispiel. Mehrere Szenarien ergeben gemeinsam einen Use Case.
Darf man als Agilist nun Use Cases verwenden, oder nicht? Die Frage ist in dieser Form natürlich Unsinn, weil es bei agiler Entwicklung nicht darum geht, was man “darf” und was nicht, sondern wie man ein Ziel erreicht. Das Ziel ist in diesem Fall ein adäquates Verständnis der Art und Weise, wie das System eingesetzt wird.
Ich selbst sehe Use Cases gerne als fachliches Design. Wie auch beim technischen Design gibt es hier zwei Möglichkeiten: Man kann das Design vor der Umsetzung zumindest in groben Zügen festlegen, oder es während der Umsetzung “emergent” entstehen lassen. Sie können also vor der Umsetzung eine “echte” Use Case Analyse machen, oder sie inkrementell durchführen.
Letzlich wird das Ergebnis der Analyse aber (in ausführbarer Form) vorliegen müssen. Wenn Sie XP betreiben, ist das in der Regel in Form von Akzeptanztests, meistens mit Hilfe des FIT Frameworks. Diese sollten alle relevanten User Stories abdecken, mithin alle releventen Szenarien eines Use Cases. Zur Notation der einzelnen Tests hat Brain Marick einige lesenswerte Gedanken in seinem Blog beschrieben, die sich mit ein wenig gutem Willen und Geschick auch mit FIT bzw. FitNesse umsetzen lassen.
Wie viel Analyse im Vorfeld notwendig ist - mithin wieviel Use Case Analyse - hängt unter anderem davon ab, wie gut die Akzeptanztest-Schreiber die Fachlichkeit überblicken und mit welchen Techniken sie sich wohl fühlen. Auch sollten man bedenken, dass es oft sehr viel schwieriger ist, Akzeptanztests zu refaktorisieren, als “richtigen” Code emergent zu entwickeln.
In keinem Fall bedeutet Analyse im Vorfeld aber die Rückkehr der tausendseitigen Fachkonzepte. Auch hier gilt, so viel wie nötig, so wenig, wie möglich. Viele meiner Kunden waren aber durchaus glücklich mit fünf- bis zehnseitigen Analysedokumenten, deren Kern oft von Use Cases getrieben war. Auf dieser Basis wurden dann die einzelnen User Stories definiert und priorisiert, die Akzeptanztests geschrieben und der Code umgesetzt. Der Zusatzaufwand war selten mehr, als eine Woche. Andere Teams haben lieber von unten nach oben gearbeitet, hatten aber am Ende auch die User Stories nach Use Cases gruppiert (die Struktur aber oft anfangs auf dem Whiteboard entworfen). Ich selbst habe noch keinen Grund gefunden, mich vehement für die eine oder die andere Seite einzusetzen, solange das Ergebnis stimmt.
PS: Thank you Alistair for the review!
16.1.2008 bei 03:06
Nice summary, Jens - I like your description of user story as the “title/heading” of a scenario. I have always said, “A reminder for a conversation”, except that begs the question “about what?” … which is answered by, “about the scenario for which this is the title!”
The two points to draw from your well-phrased sentence are:
- the user story covers ONE scenario; the use case covers MULTIPLE scenarios
- the user story describes the title only, rarely not the scenario itself; the use case describes each scenario (abstractly).
More importantly, the reason I keep introducing use cases to people is that I keep running across project suffering from three things:
1. No notion of “what is the size of this thing we’re building” (missing any concept of “completeness”)
2. No context for each story
3. No look-ahead as to what needs early research to get answers in good time.
Use cases answer these 3 problems in a way that nothing around user stories or features or product backlog items do. So I find myself re-introducing use cases to agile teams to save them from these problems. This is written up in more detail at http://alistair.cockburn.us/index.php/Why_I_still_use_use_cases
Nice posting, thanks,
Alistair