Anforderungsmanagement ist ein systematischer Ansatz für das Ermitteln, Dokumentieren, Organisieren und Verfolgen von
sich ändernden Anforderungen an ein System.
RUP definiert eine Anforderung
folgendermaßen:
Eine Bedingung oder Fähigkeit, die das System erfüllen bzw. erbringen muss.
Die formale Definition beschreibt das Anforderungsmanagement als systematischen Ansatz für die Bewältigung folgender
Aufgaben:
-
Sondieren, Organisieren und Dokumentieren der Anforderungen an das System.
-
Erreichen und Aufrechterhalten einer Einigung zwischen Kunden und Projektteam bezüglich der sich ändernden
Anforderungen an das System.
Zu den Schlüsseln für ein effektives Anforderungsmanagement gehören eine klare Beschreibung der Anforderungen, der entsprechenden Attribute für jeden Anforderungstyp und der Rückverfolgbarkeit zu anderen Anforderungen und anderen Arbeitsergebnissen des
Projekts.
Das Zusammenstellen von Anforderungen hört sich vielleicht wie eine überschaubare Aufgabe an. In echten Projekten
treten jedoch Schwierigkeiten auf, weil
-
die Anforderungen sind nicht immer offensichtlich sind und von unterschiedlichen Quellen stammen können.
-
die Anforderungen sich nicht immer einfach und klar in Worten ausdrücken lassen.
-
es viele unterschiedliche Arten von Anforderungen auf unterschiedlichen Detailstufen gibt.
-
die Anzahl der Anforderungen so stark zunimmt, dass eine Verwaltung nicht mehr möglich ist, wenn die Anforderungen
nicht kontrolliert werden.
-
die Anforderungen miteinander und mit anderen Arbeitsergebnissen im Software-Engineering-Prozess in Zusammenhang
stehen.
-
die Anforderungen eindeutige Merkmale oder Merkmalwerte haben. Beispielsweise haben sie nicht zwangsläufig dieselbe
Bedeutung, noch können sie alle problemlos erfüllt werden.
-
Es gibt viele interessierte Parteien, d. h. die Anforderungen müssen durch funktionsübergreifende Personengruppen
verwaltet werden.
-
Änderungen ändern sich.
Welches Know-how müssen Sie ihn Ihrer Organisation also aufbauen, um diese Schwierigkeiten zu überwinden? Die Erfahrung
hat gezeigt, dass die folgenden Aufgaben unbedingt beherrscht werden müssen:
Die Problemanalyse wird durchgeführt, um Probleme und anfängliche Stakeholder-Bedürfnisse zu verstehen und
problemorientierte Lösungen vorzuschlagen. Bei der Problemanalyse wird diskutiert und analysiert, um das "Problem zu
finden, das hinter dem Problem steckt". Während der Problemanalyse wird eine Einigung über die echten Probleme erzielt
und herausgefunden, wer die Stakeholder sind. Außerdem definieren Sie aus einer Geschäftsperspektive heraus die Grenzen
der Lösung sowie die Geschäftsvorgaben für die Lösung. Darüber hinaus sollten Sie den Geschäftsfall für das Projekt
analysiert haben, um ein fundiertes Verständnis davon zu haben, welcher Ertrag von der Investition in das zu
erstellende System erwartet wird.
Weitere Informationen finden Sie unter Aktivität: Problem analysieren.
Anforderungen kommen von vielen Quellen. Beispiele hierfür sind Kunden, Partner, Benutzer und Fachleute. Sie müssen
wissen, wie Sie die Quellen am besten herausfinden, den Kontakt zu diesen Quellen herstellen und die Informationen von
ihnen erhalten. Die Hauptquellen für diese Informationen werden im Projekt als Stakeholder bezeichnet. Wenn Sie ein
Informationssystem entwickeln, das intern in Ihrem Unternehmen eingesetzt werden soll, können Sie Personen mit
Erfahrung im Kundenumgang und Erfahrung im Geschäftsbereich in Ihrem Entwicklungsteam einsetzen. Sehr häufig beginnen
die Diskussionen auf Geschäftsmodellebene und nicht auf Systemebene. Wenn Sie ein Produkt entwickeln, das auf den Markt
gebracht werden soll, müssen Sie unter Umständen Ihre Vertriebsleute ausführlich befragen, um die Bedürfnisse der
Kunden in diesem Markt besser zu verstehen.
Für die Sondierungsaktivitäten können Techniken wie Interviews, Gedankenaustausch, konzeptionelle Prototyperstellung
und Mitbewerberanalyse eingesetzt werden. Das Ergebnis der Sondierung ist eine Liste mit Anfragen oder Bedürfnissen,
die in Text- und grafischer Form beschrieben sind, nach Priorität sortiert.
Weitere Informationen finden Sie in Aktivität: Stakeholder-Bedürfnisse
verstehen.
Definition des Systems bedeutet, das Verständnis der Stakeholder-Bedürfnisse in eine aussagefähige Beschreibung des zu
erstellenden Systems zu übersetzen und zu organisieren. In einem frühen Stadium der Systemdefinition werden die
folgenden Entscheidungen getroffen: was ist eine Anforderung, Dokumentationsformat, Sprachformalität, Grad der
Anforderungsspezifik (wie viel und was im Detail), Priorität der Anfrage und geschätzter Aufwand (zwei sehr
unterschiedliche Bewertungen, die normalerweise von unterschiedlichen Personen in unterschiedlichen Aktivitäten
zugeordnet werden), technische und Managementrisiken und erster Umfang. Teil dieser Aktivität kann die Erstellung
früher Prototypen und Designmodelle sein, die sich direkt auf die wichtigsten Stakeholder-Anfragen beziehen. Das
Resultat der Systemdefinition ist eine Beschreibung des Systems in Text- und grafischer Form.
Weitere Informationen finden Sie in Aktivität: System definieren.
Um ein Projekt effizient durchführen zu können, müssen Sie die Anforderungen basierend auf den Eingaben aller
Stakeholder nach Priorität sortieren und ihren Umfang verwalten. Zu viele Projekte leiden unter Entwicklern, die an so
genannten "Ostereiern" (Features, die Entwickler interessant und herausfordernd finden) arbeiten, anstatt sich früh auf
Aufgaben zu konzentrieren, die ein Projektrisiko mindern oder die Architektur der Anwendung stabilisieren. Um
sicherzustellen, dass Risiken in einem Projekt so früh wie möglich beseitigt oder gemindert werden, sollten Sie ihr
System inkrementell erstellen und die Anforderungen für jeden Schritt sorgfältig auswählen, damit bekannte Risiken im
Projekt gemindert werden. Dazu müssen Sie den Umfang (jeder Iteration) mit den Stakeholdern des Projekts vereinbaren.
Dies erfordert gewöhnlich ein ausgeprägtes Geschick, Erwartungen in das Ergebnis des Projekts in seinen
unterschiedlichen Phasen verwalten zu können. Außerdem müssen Sie die Quellen der Anforderungen, den Stand der
Arbeitsergebnisse des Projekts und den Entwicklungsprozess selbst kontrollieren.
Weitere Informationen finden Sie in Aktivität: Umfang des Systems
verwalten.
Die detaillierte Definition des Systems muss zu präsentiert werden, dass Ihre Stakeholder sie verstehen, ihr zustimmen
und sie abnehmen. Sie muss nicht nur die Funktionalität abdecken, sondern auch alle gesetzlichen oder behördlichen
Anforderungen, Benutzerfreundlichkeit, Zuverlässigkeit, Leistung, Servicefreundlichkeit und Wartungsfreundlichkeit. Ein
Fehler, der häufig begangen wird, ist zu glauben, dass das, was Sie für schwierig zu erstellen halten, auch eine
komplexe Definition haben muss. Dies führt zu Schwierigkeiten, wenn Sie den Zweck des Projekts und des Systems
erläutern müssen. Die Leute werden möglicherweise beeindruckt sein, aber ihnen keinen tauglichen Input liefern, weil
sie Sie nicht verstehen. Sie müssen viel Arbeit darauf verwenden, Ihrem Publikum die Dokumente, die Sie zur
Beschreibung des Systems erstellen, verständlich zu machen. Es kann sein, dass Sie unterschiedliche Arten von
Beschreibungen für unterschiedliche Zielgruppen erstellen müssen.
Die Erfahrung hat gezeigt, dass die Anwendungsfallmethodik, häufig in Kombination mit einfachen visuellen Prototypen
eine sehr effektive Methode ist, um den Zweck des Systems zu kommunizieren und die Details des Systems zu definieren.
Anwendungsfälle helfen, die Anforderungen in einen Kontext zu stellen. Sie erzählen praktisch, wie das System verwendet
wird.
Eine weitere Komponente der detaillierten Definition des Systems ist zu beschreiben, wie das System getestet werden
soll. Testpläne und Definitionen der auszuführenden Tests zeigen auf, welche Systemfunktionen geprüft werden.
Weitere Informationen finden Sie in Aktivität: Systemdefinition
präzisieren.
Egal wie sorgfältig Sie Ihre Anforderungen definiert haben, es gibt immer Dinge, die sich ändern. Was die Verwaltung
von Änderungen von Anforderungen so kompliziert macht, ist nicht allein die Tatsache, dass eine geänderte Anforderung
bedeutet, dass Zeit für die Implementierung eines bestimmten neuen Features aufgebracht werden muss, sondern auch, dass
die Änderung einer Anforderung Auswirkungen auf andere Anforderungen haben kann. Sie müssen Ihren Anforderungen eine
Struktur geben, die änderungstolerant ist, und Rückverfolgbarkeitsverbindungen verwenden, um Abhängigkeiten zwischen
Anforderungen und anderen Arbeitsergebnissen des Entwicklungszyklus darzustellen. Zur Verwaltung von Änderungen gehören
Aktivitäten wie das Erstellen einer Referenzversion, das Bestimmen der Abhängigkeiten, die unbedingt verfolgt werden
müssen, das Einrichten der Rückverfolgbarkeit zwischen zusammengehörigen Elementen und die Änderungssteuerung.
Weitere Informationen finden Sie in Aktivität: Anforderungsänderungen verwalten.
Weitere Informationen zu diesem Thema finden Sie in den folgenden Quellen:
Konzept: Anforderungen
Konzept: Anforderungstypen
Konzept: Rückverfolgbarkeit
Whitepaper: Applying Requirements Management with Use Cases
|