200, 300 oder noch mehr User Stories – wie soll ich da mein Produkt im Griff behalten? Woher weiß ich als Product Owner, ob die User Stories alle meine Anforderungen abdecken und wie ich die User Stories günstig schneide? Wie verstehe ich als Entwickler, was die User Story im Produkt bewirkt? Wie kann ich als Tester regressionsfähige Testfälle schreiben, ohne dass mir der Testaufwand explodiert? Diesen spannenden Fragen ist Accso in der Hood-Schulung zur Methode „Use Case 2.0“ auf den Grund gegangen.
Ein hochaktuelles Thema, wie wir beide – Christine Schmetzer und Renato Vinga-Martins – finden. Und obwohl wir das Konzept bereits vor knapp 2 Jahren im Rahmen des Hood-Themen-Breakfast (Use Case 2.0) kennen gelernt hatten, wollten wir noch mehr über den konkreten Einsatz und die Verzahnung mit Dokumentation und Testen lernen. Im Kreise erfahrener Kollegen – vielen Dank an Felix Feldmeier, Nikolaus Fröhlich, Thore Kleinschmidt, Martin Kronenburg, Petra Weilmünster und Helena Unger für den regen Erfahrungsaustausch – konnten wir unsere Vorstellungen praxistauglich machen.
Das Fazit vorneweg
Ohne zu viel vorwegzunehmen, hier unsere Meinung in zwei Sätzen:
- Ja, Use Case 2.0 ist auch in agilen Projekten ein gutes Werkzeug für Stabilität und Überblick.
- Nein, wir haben immer noch kein einsatzbereites Konzept für regressionsfähige Testfälle.
Der Einsatz von Use Case 2.0 lohnt sich. Die Methodik gibt uns ein Mittel zur Abwägung zwischen Flexibilität und Aufwand für kontinuierliche Anpassungen an die Hand.
Für alle, die an Details interessiert sind, eine Zusammenfassung der Inhalte:
Agile Projekte bestimmen unseren Alltag
Seit einigen Jahren gibt es viele agile Projekte und alle kennen Scrum. Das Backlog ist dabei das zentrale Artefakt für Anforderungen. Dort treffen sich alle Beteiligten, und es ist gängige Praxis, Backlog-Einträge als User Story nach dem Muster „Als <Rolle> möchte ich <Ziel/Ergebnis>, um <Nutzen> zu erreichen.“ zu formulieren. So weit, so charmant: Produktdekomposition in fachliche Features, im Wesentlichen nach Nutzwert priorisiert; das leuchtet ein, wenn wir in komplexen Projektumgebungen die Change-Request-Schlachten durch gemeinsames konstruktives Umpriorisieren ersetzen wollen. Sei willkommen, Veränderung. Doch die Praxis macht es uns nicht leicht, denn plötzlich ist alles so kleinteilig. Ich verliere den Überblick darüber, wo ich stehe, und bin gefühlt dauernd mit Testen beschäftigt. Es bleibt dem genialen Product Owner überlassen, seine Inhalte gemeinsam mit dem Team in passende User-Story-Häppchen zu schneiden, die Produktvision konsequent zu verfolgen und die Anforderungen allen Beteiligten zu vermitteln. Denn agile Rahmenwerke wie Scrum erheben keinen Anspruch auf eine bestimmte Formulierungs-, Modellierungs- oder Dokumentationsform.
Der Use Case: da gab es schon einmal ein Konzept
Aber halt! Die Älteren unter uns haben ein Déjà-vu. Da war doch was so vor 25 Jahren. Ivar Jacobson hatte der Verzettelung in funktionalen Anforderungen den Use Case im objektorientierten Entwurf entgegengesetzt. Der revolutionäre Gedanke war, die Anforderungen durch Interaktionsabläufe miteinander zu verknüpfen und auf diese Weise ein Systemverständnis aus Sicht der beteiligten Akteure zu erzeugen. Gleichzeitig diente der Use Case zur Anforderungsvalidierung, er ist also eine zusätzliche Sicht aufs System. Und als die Amigos dann die UML einführten, da waren auch die Use Cases mit dabei. Wir haben sie in unsere Spezifikationen, Konzepte und sogar Schätzverfahren übernommen. Und jetzt? Seit wir mit Anforderungen flexibel umgehen und klassische Spezifikationen als Vorgehensballast gelten, schreiben wir kaum noch Use Cases.