Anforderungsmanagement. Das Fundament erfolgreicher Projekte.
Was bedeutet Anforderungsmanagement? Wie führt man es durch? Und wie kann man dabei agil vorgehen?
Anforderungen beschreiben ein gewünschtes Produkt. Je präziser Anforderungen formuliert werden, desto besser können sie erfüllt werden. Aber nicht immer gelingt es, alle Wünsche vor der Entwicklung zu konkretisieren. Dann muss man iterativ-inkrementell vorgehen.
Der Informationsaustausch an der Schnittstelle zwischen Stakeholdern und Entwicklern ist die Kernaufgabe des Anforderungsmanagement.
Je präziser, eindeutiger, vollständiger, verständlicher und nachvollziehbarer Anforderungen sind, desto einfacher ist es für die Entwicklung, sie zu erfüllen und die richtigen Ergebnisse zu liefern.
Das Anforderungsmanagement spielt eine entscheidende Rolle für Projekte aller Art, denn Anforderungen definieren, was entwickelt werden soll. Zum Management gehört die Steuerung, Kontrolle und Verwaltung von Anforderungen über deren gesamten Lebenszyklus. Dazu zählt auch das Risikomanagement, Änderungsmanagement sowie das Management der Anforderungsrealisierung.
Qua Definition ist das Anforderungsmanagement ein Bestandteil des Requirements Engineering (RE) und der Business Analyse (BA). Anforderungsdefinition, Anforderungsanalyse, Anforderungsdokumentation und Anforderungsvalidierung werden als weitere Disziplinen und nicht als Bestandteil des Anforderungsmanagements verstanden.
Weil sich Anforderungen schnell und oft ändern können, besteht die besondere Herausforderung beim Anforderungsmanagement darin, Nachvollziehbarkeit und eine Kollaboration ohne Informationsverlust herzustellen.
Anforderungsmanagement ist der Prozess der Verwaltung bestehender Anforderungen und anforderungsbezogener Arbeitsprodukte, einschließlich der Speicherung, Änderung und Verfolgung von Anforderungen.
Klassisches Anforderungsmanagement
Der klassische Anforderungsmanagement-Prozess folgt einem Phasen- oder Wasserfallmodell:
Zuerst werden Stakeholder und Anforderungen ermittelt und erfasst. Ein oder mehrere Requirements Engineers analysieren, modellieren, strukturieren und verfeinern infolgedessen sämtliche Anforderungen. Die Ergebnisse der Anforderungsanalyse werden schließlich dokumentiert in Form von Lastenheften (von Auftraggeber-Seite) und/oder Pflichtenheften (von Auftragnehmer-Seite). Diese Dokumente dienen der genauen Spezifikation vor dem Start der Entwicklung. Erst wenn die Anforderungen verifiziert sind, wird mit der Realisierung begonnen. Ist die Entwicklung abgeschlossen, folgen eine oder mehrere Teststufen (Validierung) und bei erfüllten Anforderungen die Abnahme. Für die Wartung der Entwicklung müssen die Anforderungen über den ganzen Lebenszyklus der Entwicklung weiterhin sicher verwaltet werden.
Werden Änderungen an Anforderungen gewünscht, müssen Änderungsanträge (Change Requests) gestellt werden. Die von den Änderungen betroffenen Anforderungen werden daraufhin identifiziert und unter Berücksichtigung aller Abhängigkeiten überarbeitet.
Anforderungsmanagement ist in allen Phasen gefragt, weil es die Verwaltung der Arbeitsprodukte zur Aufgabe hat. Produkte sind sowohl einfache Anforderungen als auch ganze Spezifikationen. Zur Verwaltung gehört eine sinnvolle Attribuierung, Filterung, Priorisierung und Versionierung. Und vor allem die Sicherung der Nachvollziehbarkeit. Die Arbeitsprodukte müssen so aufbereitet werden, dass alle, die sie bearbeiten, realisieren und testen, effizient zusammenarbeiten können.
Ein linearer Anforderungsmanagement-Prozess wird zur Sicherung von Qualität und zur Einhaltung von Normen gefordert, eignet sich aber nicht besonders gut, wenn Anforderungen zu Beginn sehr vage sind, wenn Innovation entstehen oder schnell und direkt auf Stakeholder Feedback reagiert werden soll.
Anforderungsmanagement ist die Planung, Ausführung, Überwachung und Steuerung aller oder eines Teils der Arbeiten, die mit der Anforderungserhebung, mit der Zusammenarbeit, mit der Anforderungsanalyse und dem Entwurf sowie dem Management des Anforderungslebenszyklus verbunden sind.
Agiles Anforderungsmanagement
Bei agilem Vorgehen wird der eine große Prozess in viele kleinere Einheiten (Iterationen) heruntergebrochen. Fest steht die Taktlänge und Frequenz der Iterationen. Die Ermittlung, Analyse, Spezifikation und Verifikation der Anforderungen ist nie abgeschlossen, sondern eine fortlaufende Tätigkeit:
Es gibt eine übergeordnete Anforderungsquelle: das Product Backlog. Leitmotiv für die Anforderungen darin ist das Product Goal, das Ziel der Entwicklung. Ein Product Owner ist dafür verantwortlich, dass Inhalte, sogenannte Product Backlog Items, sortiert, klar und abgestimmt sind. Seine/ihre Aufgabe ist es, das Product Backlog so zu pflegen, dass maximaler Wert geschaffen werden kann. Das Product Backlog ist anders als eine Spezifikation aber nie abgeschlossen. Änderungen sind jederzeit möglich, sofern sie wertstiftend sind.
Zur Realisierung innerhalb einer Iteration (eines Sprints mit einer Laufzeit von 2 – 4 Wochen) werden beim Sprint Planning Meeting Items aus dem Product Backlog in ein Sprint Backlog übernommen. Außerdem wird für die Iteration ein Sprint Goal (Ziel) definiert. Auch während des Sprints können die Entwickler das Sprint Backlog verändern, um das Sprint Ziel zu erreichen. Das Entwicklerteam managt sich schließlich selbst und ist ergebnisverantwortlich. Damit Entwicklungsergebnisse immer wieder zwischendurch überprüft werden, gibt es am Ende jedes Sprints ein Sprint Review, bei dem Feedback von Stakeholdern eingeholt werden kann. Die Ergebnisse dieses Kontroll-Meetings fließen sofort wieder ins Backlog ein.
Um den Arbeitsprozess weiter zu verbessern, findet außerdem eine Retrospektive innerhalb des Scrum Teams statt. Durch die deutlich kürzere Feedback-Schleife können Fehlentwicklungen früher erkannt und auf Veränderung viel schneller reagiert werden. Doch das sorgt auch für Dynamik innerhalb des Product Backlogs, weshalb es fortlaufend aktualisiert, gepflegt, priorisiert und verfeinert werden muss.
Der Product Owner ist dennoch nicht alleine für die Anforderungen zuständig, sondern alle Beteiligten sind verantwortlich dafür, durch die Realisierung der Anforderungen Werte zu schaffen. Um Arbeitsprodukte (z.B. User Stories) zu standardisieren, werden oft Satzschablonen, Qualitätsmerkmale (wie SMART, INVEST) und Akzeptanzkriterien festgelegt, deren Anwendung für alle im Team verbindlich ist. Die Pflege des Product Backlogs, des zentralen Speichers aller Anforderungen, ist jedoch eine Aufgabe mit großer Verantwortung. Agile Methoden geben vor, dass bei allen Einträgen ins Product Backlog der Geschäftswert hinterfragt werden müsse. Dadurch ist der Product Owner sogar ins strategische Management eingebunden. Man könnte daher sagen, dass Product Ownership noch mehr Verantwortung bedeutet als klassisches Anforderungsmanagement.
Definition Anforderungsmanagement laut Glossar der ISO/IEC/IEEE 24765:2017 Systems and Software Engineering
Aktivitäten, die sicherstellen, dass Anforderungen während des gesamten Lebenszyklus eines Systems, Produkts oder einer Dienstleistung ermittelt, dokumentiert, gepflegt, kommuniziert und nachverfolgt werden.
Werkzeuge für das Anforderungsmanagement
In vielen Unternehmen werden Anforderungen noch in Excel-Listen verwaltet. Wenn aber viele Mitarbeiter arbeitsteilig mit und an diesen Listen arbeiten, wird die eindeutige Versionsverwaltung schon zum Problem. Für gutes Anforderungsmanagement braucht man Versionierung, Konfigurationsmanagement, Baselining und einen Single Point of Information. Wikis können helfen, ein gemeinsames Glossar aufzubauen und dadurch Begriffe eindeutig für alle Beteiligten zu definieren. Abhängigkeiten, Abläufe oder Verfeinerungen lassen sich mit Mindmaps visualisieren, doch oft nicht versionieren. Für die Kollaboration kommt Groupware zum Einsatz oder separate Projektmanagement-Software. In speziellen Testmanagement-Tools wird die Validierung verwaltet. Diesen Flickenteppich aus verschiedenen Werkzeugen findet man vielerorts, aber spezielle Requirements Engineering Tools bieten eindeutige Vorteile, wie:
Verwaltung von Arbeitsprodukten mit Attributen (inkl. Filtern und Abfragen)
Organisation von Arbeitsprodukten (mit hierarchischen Strukturen)
Konfigurations- und Versionsmanagement auf Arbeitsproduktebene
Definition von Anforderungsbasislinien (Baselining)
Mehrbenutzerzugriff und -verwaltung (Rollen und Rechtekonzepte)
Sicherung der Nachvollziehbarkeit (Traceability Management)
Review-Management der Arbeitsprodukte
Änderungsmanagement (Workflows für Zustandsübergänge)
Professionelles Requirements Engineering in der Praxis
Erfahren Sie hier mehr zu Requirements Engineering mit objectiF RPM oder objectiF RM »