7. Januar 2025 von Sarah Kluge
Requirements Engineering meets agility
Im klassischen Requirements Engineering (RE) werden Anforderungen zu Beginn eines Projekts detailliert identifiziert, dokumentiert und validiert, bevor die Softwareimplementierung startet. Diese Herangehensweise funktioniert in vielen klassischen Projekten gut, stösst jedoch bei agilen Methoden wie Scrum oder Kanban an ihre Grenzen. Requirements Engineering in agilen Projekten erfordert eine dynamischere und anpassungsfähigere Herangehensweise, die auf die kontinuierliche Weiterentwicklung und das Feedback des Teams sowie der Stakeholder ausgelegt ist.
Agile Methoden, die auf iterativen Entwicklungszyklen und enger Zusammenarbeit zwischen Team und Stakeholdern beruhen, definieren Anforderungen oft weniger detailliert als klassische Projekte. Statt umfassende Anforderungsspezifikationen zu erstellen, konzentriert sich das Requirements Engineering (RE) hier auf die Sammlung und Priorisierung von User Stories. Dementsprechend ist die RE-Aktivität in agilen Projekten keine vorgelagerte Phase, sondern eine kontinuierliche Aktivität, die parallel zum Entwicklungsprozess verläuft.
Best Practices und Herausforderungen
1.
Gesamtüberblick nicht verlieren: eine zentrale Herausforderung im agilen Requirements Engineering ist das fehlende, detaillierte und langfristige Anforderungsdokument. In einem klassischen Projekt würde ein detailliertes Pflichtenheft als Referenz dienen, während im agilen Umfeld die Anforderungen „lebendig“ sind und sich regelmässig ändern können. Dabei ist es eine Challenge, während der Spezifikation von komplexen Anforderungen das „Big Picture“ nicht aus den Augen zu verlieren. Hilfreiche Techniken sind hier das Definieren einer Produktvision sowie das Gliedern der Anforderungen in EPICs, Stories und das Visualisieren von Abhängigkeiten und Beziehungen zwischen Anforderungen.
2.
Engagement der Stakeholder: ein agiles Projekt erfordert eine kontinuierliche Kommunikation mit den Stakeholdern. Dies bedeutet regelmässige Meetings wie Sprint Reviews, in denen das Team Feedback zu den entwickelten Funktionen erhält und die Anforderungen basierend auf den neuesten Erkenntnissen angepasst werden können.
3.
Priorisierung und Iteration: Anforderungen werden in Form von User Stories gesammelt und nach ihrer Wichtigkeit bzw. ihrem Wert priorisiert. Methoden wie das MoSCoW-Prinzip (Must have, Should have, Could have, Won’t have) helfen dabei, die am meisten benötigten Funktionen zuerst zu entwickeln, was in agilen Iterationen entscheidend ist.
4.
User Stories und Akzeptanzkriterien: die Verwendung von User Stories mit klar definierten Akzeptanzkriterien ist eine bewährte Methode, um Anforderungen so zu formulieren, dass sie sowohl den Bedürfnissen der Stakeholder als auch den praktischen Umsetzungsanforderungen gerecht werden. Die Herausforderung besteht darin, Anforderungen in einem angemessenen Detaillierungsgrad zum benötigten Zeitpunkt verständlich aufzubereiten.
5.
Backlog Refinement: ein regelmässiges „Backlog Refinement“ stellt sicher, dass das Product Backlog stets aktuelle, klare und gut priorisierte Anforderungen enthält, die für die nächsten Sprints bereit sind. Dieser kontinuierliche Anpassungsprozess verhindert, dass das Projekt auf veraltete Anforderungen stösst. Dabei werden jedoch nur die Anforderungen detailliert ausgearbeitet, die den höchsten Mehrwert (Value) bieten und daher eine hohe Priorität haben. Da auch das Spezifizieren der Anforderungen ein integrativer Prozess ist, werden weniger wertstiftende Anforderungen bewusst in groben Zügen belassen, bis ihre Umsetzung näher rückt und mehr Details sinnvoll sind.
6.
Flexibles Reagieren auf Veränderungen: durch das kontinuierliche Anforderungsmanagement in agilen Projekten ist auch das flexible Reagieren auf Changes ein wichtiger Bestandteil. Statt einen Change Prozess zu durchlaufen, wie in klassischen Projekten, kann in agilen Projekten flexibel und schnell auf einen Change reagiert werden. Dabei wird teilweise auch in einem aktiven Sprint der Scope geändert und der Sprint neu geplant, um den Change schnellstmöglich zu integrieren.
Wie die vier Kernaktivitäten eines RE in agilen Projekten gelebt werden
Im klassischen RE spricht man von den folgenden vier Aktivitäten: Anforderungsermittlung, -dokumentation, -validierung und -management. Diese bilden die Grundlage für den erfolgreichen Umgang mit komplexen Anforderungen. In agilen Projekten unterscheiden sich jedoch die Ausprägungen dieser Aktivitäten von klassischen Ansätzen, da auch hier eine Anpassung an die iterative und flexible Arbeitsweise von Nöten ist.
- Anforderungsermittlung
In agilen Projekten erfolgt die Anforderungsermittlung kontinuierlich und iterativ. Statt umfassender Workshops oder Interviews zu Beginn des Projekts werden Anforderungen häufig während regelmässiger Meetings wie Sprint Plannings, Backlog Refinements oder durch direkten Austausch mit Stakeholdern identifiziert. Weiterhin ermöglichen auch die Produktinkremente und Sprint Reviews schnelles Feedback und können neue Ideen für das Product Backlog liefern. Bei dieser Aktivität liegt der Fokus auf der Sammlung von User Stories, die flexibel ergänzt oder angepasst werden können, um neuen Erkenntnissen Rechnung zu tragen.
- Anforderungsdokumentation
Anstelle eines ausführlichen Lasten- oder Pflichtenhefts setzen agile Projekte auf minimalistische und leicht anpassbare Dokumentationsformen. User Stories, EPICs und Akzeptanzkriterien dienen als Hauptmittel zur Beschreibung der Anforderungen. Tools wie Jira unterstützen dabei, die Dokumentation aktuell und für alle Beteiligten zugänglich zu halten. Der Fokus liegt darauf, die Dokumentation so schlank wie möglich und gleichzeitig ausreichend präzise zu halten. Durch das Arbeiten in Sprints ist es ebenfalls wichtig, die Anforderungen so zu schneiden, dass eine User Story nicht mehr beinhaltet als in einem Sprint umsetzbar ist, sie muss also noch weiter in kleinere Stories zerlegt werden, falls dies nötig ist.
- Anforderungsvalidierung
Die Validierung von Anforderungen geschieht in agilen Projekten iterativ und eng mit der Entwicklung verzahnt. Sprint Reviews und automatisierte Tests (z. B. Akzeptanztests) spielen eine zentrale Rolle, um sicherzustellen, dass die Anforderungen korrekt und vollständig umgesetzt werden. Stakeholder-Feedback ist hierbei essenziell, um ggf. frühzeitig Anpassungen vorzunehmen und sicherzustellen, dass die entwickelten Funktionen die tatsächlichen Bedürfnisse erfüllen.
- Anforderungsmanagement
In agilen Projekten bezieht sich das Verwalten der Anforderungen hauptsächlich auf das Backlog Management. Dieses ist eine fortlaufende Aktivität, bei der das Product Backlog gepflegt und regelmäßig aktualisiert wird. Für das Sprint Backlog gilt dasselbe, da es den tatsächlichen Stand der Arbeiten im aktuellen Sprint widerspiegeln soll. Im Gegensatz zum Product Backlog, für das der Product Owner verantwortlich ist, liegt die Verantwortung für das Sprint Backlog jedoch beim Team selbst.
Ein weiterer Bestandteil des Anforderungsmanagements, sowohl in klassischen als auch in agilen Projekten, ist das Attributmanagement. Dabei werden Anforderungen mit zusätzlichen Informationen wie bspw. Status, Schätzungen, Prioritäten und Verantwortlichkeiten angereichert. Auch Verknüpfungen zu widersprüchlichen oder abhängigen Anforderungen werden dokumentiert, um Konflikte frühzeitig zu erkennen und effizient zu lösen. In agilen Projekten unterstützt das Attributmanagement zudem die Nachverfolgbarkeit und erleichtert die dynamische Anpassung von Anforderungen im Entwicklungsprozess.
Requirements Engineering im agilen Kontext erfordert eine flexiblere, iterativere Herangehensweise als in traditionellen Projekten. Durch die Konzentration auf die Dokumentation anhand User Stories, regelmässiges Feedback und eine enge Zusammenarbeit mit den Stakeholdern können Anforderungen effizient erfasst, priorisiert und kontinuierlich angepasst werden. Trotz der Herausforderungen, die durch die fehlende detaillierte Dokumentation entstehen, kann ein gut implementiertes Requirements Engineering dazu beitragen, Projekte erfolgreich und zeitgemäss umzusetzen. Dabei ist wichtig, dass alle Teammitglieder und Stakeholder in den agilen Prozess eingebunden sind, um sicherzustellen, dass die Anforderungen stets den tatsächlichen Bedürfnissen entsprechen.
Wichtig ist allerdings, dass es durchaus auch Gründe gibt, Requirements Engineering als vorgelagerte Aktivität mit einem vollumfänglichen Anforderungskatalog zu praktizieren. Dadurch können Umfang und Budget besser abgeschätzt werden. Es lässt sich nicht pauschal festlegen, welcher Ansatz im Requirements Engineering vorzuziehen ist. Vielmehr sollten die eingesetzten RE-Techniken und Arbeitsweisen stets an die spezifischen Gegebenheiten des Projekts angepasst und individuell bewertet werden.