Klassische Anforderungen agil erfasst

Bewertung

Nachdem nun die Muster Use Case und User Story vorgestellt wurden, soll geprüft werden, inwieweit sich diese mit den Ansätzen des Requirements Engineerings, die sich in die vier Teildisziplinen Erheben, Dokumentieren, Prüfen und Verwalten von Anforderungen [4] gliedern, vereinen lassen. Dass sich Use Cases und User Stories zum Erheben und Dokumentieren von Anforderungen eignen, liegt auf der Hand. Use Cases erlauben dafür sogar, wie weiter oben beschrieben wurde, ein methodisches Vorgehen. Allerdings ist es damit nicht getan, zumal sich diese beiden Konzepte vor allem für funktionale Anforderungen eignen. Nicht-funktionale Anforderungen gilt es somit, zusätzlich zu hinterfragen und in separater Form niederzuschreiben. Dies ist notwendig, obwohl agile Methoden das Ziel verfolgen, Applikationen schnellst möglichst an neue Bedürfnisse anpassen zu können, da es vor allem die nicht-funktionalen Anforderungen sind, die die grundlegende Architektur eines (Software-)Systems bestimmen – und diese ist trotz Testautomatisierung und Refactoring-Werkzeugen schwierig zu ändern.

Eine Möglichkeit, um Anforderungen zu prüfen ist das Vornehmen eines Perspektivenwechsels. Beim Modellieren werden Anforderungen beispielsweise aus einer formaleren Perspektive, die das Erkennen von Inkonsistenzen und Lücken erlaubt, betrachtet. Ein Perspektivenwechsel kann bei Use Cases erfolgen, indem diese aus der Sicht unterschiedlicher Akteure gelesen werden. Darüber hinaus werden die Anforderungen bereits im Zuge der Erhebung und Dokumentation auf Vollständigkeit geprüft, indem in einem Brainstorming nach Alternativen gesucht wird. Auch bei User Stories kommt es zu einem Perspektivenwechsel, und zwar dann, wenn Testfälle für diese, z. B. auf den Rückseiten der Story Cards, erfasst werden.

Zur Verwaltung von Anforderungen verwenden agile Methoden Backlogs. Es handelt sich dabei um eine Sammlung von Anforderungen. Unterschieden wird dabei zwischen dem Produkt Backlog und dem Iterations Backlog (in Scrum: Spring Backlog). Der Produkt Backlog beinhaltet sämtliche anstehenden Anforderungen; der Iteration Backlog jene Anforderungen, die sich das Team für die aktuelle Iteration vorgenommen hat. Die Anforderungen im Produkt Backlog dürfen sich ständig ändern, was vor allem bei einer Verwendung von User Stories aufgrund ihrer Leichtgewichtigkeit relativ einfach ist. Die sich gerade in Umsetzung befindlichen Anforderungen im Iterations Backlog dürfen hingegen nicht mehr geändert werden. Das Verwalten von Anforderungen sieht auch vor, dass diese für verschiedene Auswertungen mit Metadaten versehen werden. Im Grunde wird das bei der Verwendung von Story Cards auch häufig auf einfache Art und Weise praktiziert, indem diese um Informationen, aus denen z. B. der geschätzte Aufwand oder eine Priorität hervorgeht, erweitert und im Zuge einer gemeinsamen Planung sortiert werden.

Zur Unterstützung spricht allerdings auch nichts dagegen, klassische Werkzeuge des Requirements Engineerings, z. B. Kreativitätstechniken, Feldbeobachtungen oder Befragungstechniken für die Anforderungsermittlung oder Modellierung für die Dokumentation und Prüfung von Anforderungen einzusetzen. Vor einem agilen Hintergrund sind diese unter Berücksichtigung von Kosten und Nutzen jedoch mit Maß- und Ziel lediglich so formal wie nötig einzusetzen. Beispielsweise setzen agile Teams beim Modellieren vor allem auf Offlinemedien wie Flip-Charts oder Papier und Bleistift.

Zusammenfassung und Fazit

Wie mit diesem Artikel gezeigt wurde, adressieren die agilen Muster Use Case und User Story drei der vier Disziplinen des Requirements Engineerings: Erheben, Dokumentieren und Prüfen von Anforderungen. User Stories bieten darüber hinaus im Zusammenhang mit Story Cards auch noch eine rudimentäre Möglichkeit zum Verwalten von Anforderungen, da diese häufig mit Metadaten wie Aufwand oder Priorität versehen und im Zuge der gemeinsamen Planung durch das Team danach sortiert werden. Darüber hinaus unterstützt auch das Muster Backlog beim Verwalten von Anforderungen. Für Fälle, in denen dies nicht ausreichend ist, existieren leichtgewichtige Werkzeuge wie Agilo [5], die im Allgemeinen agile Prozesse unterstützten und im speziellen auch das Verwalten von Anforderungen erlauben. Darüber hinaus spricht auch nichts gegen den zusätzlichen Einsatz von klassischen Techniken des Requirements Engineerings, z. B. Kreativitätstechniken, Beobachtungstechniken, Abnahmekriterien oder Modellierung, sofern diese – gemäß dem agilen Mindset – lediglich so formal wie nötig angewandt werden.

Manfred Steyer (www.softwarearchitekt.at) ist verantwortlich für den Fachbereich „Software Engineering“ des Studiengangs „IT und IT-Marketing“ an der FH Campus02 (www.campus02.at) in Graz und hat unter anderem bei Microsoft Press über Data Mining und bei e.press über Agile Muster und Methoden geschrieben.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.