Konzept: Anforderungsmanagement
Anforderungsmanagement ist ein systematischer Ansatz für das Ermitteln, Dokumentieren, Organisieren und Verfolgen von sich ändernden Anforderungen an ein System.
Beziehungen
Hauptbeschreibung

Was ist Anforderungsmanagement?

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:

Problemanalyse

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.

Stakeholder-Bedürfnisse verstehen

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.

System definieren

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.

Umfang des Projekts verwalten

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.

Systemdefinition präzisieren

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.

Anforderungsänderungen verwalten

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

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