Anforderungen: Management
Anforderungen: Management Der Begriff der Anforderungsanalyse ist grundsätzlich vom Begriff des Anforderungsmanagements zu trennen, obwohl beide Konzepte in vie l- fältiger Weise zusammenhängen. Im Rahmen der Analyse werden im Normalfall Anforderungen für eine aktuell zu e rstellende Software strukturiert und aufbereitet. Sie betreffen Aufgaben, die in der G egenwart durch eine Sof t- wareunterstützung durchgeführt werden sollen, sind also mit G eschäftsprozessen in der Gegenwart verbunden. Das Management von Anforderungen bezieht sich d agegen vielmehr darauf, aktuelle und zukünftige Anforderungen zu sammeln, teilweise vorau szusehen und in zukünftigen Software-Projekten umzusetzen. Damit werden also G eschäftsprozesse, deren Bewä l- tigung in der Zukunft liegen, und die wenigstens teilweise ne uartige Aufgabestrukturen oder Arbeitsschritte enthalten, von ihrer Anforderungsseite her b etrachtet. Dies soll ermöglichen, dass langfristige Entwicklungen von Geschäftsprozessen und Teilaufgaben mit vorhandener Software durch Erweiterungen umgesetzt werden können oder dass völlig neuartige Software frühzeitig geplant und umgesetzt werden kann. Dieser Artikel gibt einen Überblick über die Grundsätze und Prinzipien des Anforderungsm anagements.
Einleitung Anforderungen zu strukturieren und zu sammeln hat verschiedene Facetten, die bei der Durchführung der zu Grunde liegenden Analyse zu berücksichtigen sind. Zu nennen sind die Dimensionen, in denen sich die Anforderungsanalyse abspielt, die beteiligten Akteure, die an diesem Prozess direkt in der Durchführung teilnehmen oder die indirekt als Betroffene berücksichtigt werden müssen, sowie allgemeine Grundlagen, die die Tätigkeit der Anforderungsanalyse, die sich ja durchaus nicht auf Software-Projekte allein beziehen muss, charakterisieren. Zeitorganisation bei der Anforderungserfassung Der Standardfall in der Softwareentwicklung ist in der nachfolgenden Abbildung aufgezeigt. Verschiedene Projekte werden zeitgleich oder auch zu unterschiedlichen Zeitpunkten durchgeführt. Sofern sie verschiedene Problembereiche in der realen Welt bearbeiten und softwaregestützte Lösungen anbieten wollen, ist es nur richtig, die Anforderungsanalyse getrennt und individuell für jedes Projekt durchzuführen. Berühren sie allerdings den gleichen Geschäftsprozess, bieten allerdings Lösungen für verschiedene Teilbereiche an, dann hängen die Anforderungen zu einem gewissen Teil zusammen. Dies können gemeinsame Ziele hinsichtlich des gesamten Geschäftsprozesses auf unternehmerischer Ebene genauso gut sein wie gleichartige technische Anforderungen, die sich ergeben, um beide Lösungen vergleichbar und einfach nutzbar zu machen. Hier ist allerdings die Gefahr vorhanden, dass die gleichen Anforderungen individuell für jedes Projekt erfasst werden, dass übergeordnete Anforderungen wie die erwähnten technischen Zusatzbedingungen überhaupt nicht berücksichtigt werden und dadurch keine integrierte Gesamtlösung entsteht. Individuelle Anforderungsanalyse bei getrennten Projekten Sofern eine Software-Lösung tatsächlich über einen längeren Zeitraum hin entwickelt wird, nimmt sich dieses Anforderungsmanagement besonders ungünstig aus. Die nachfolgende Abbildung platziert ein Projekt auf der gleichen Zeitachse mit seiner Erweiterung und seiner Umwandlung, die un-
terschiedlichen Umfang besitzen. Im Grunde genommen handelt es sich dabei zwar um die Durchführung von drei einzelnen Projekten, doch sie werden alle im Lebenszyklus einer einzigen Software durchgeführt. Vor diesem Hintergrund ist es verständlich, dass individuelle Phasen durchgeführt werden, um neue oder geänderte Anforderungen zu ermitteln und auf ihrer Basis die Erweiterung oder Umwandlung zu planen. Allerdings nutzt man gar nicht die vielen Fragen, Anforderungen, Fehlerhinweise oder Vorschläge, die während der Benutzung der Software permanent entstehen. Einige von ihnen, die kurz vor oder nach einer Anforderungsanalyse entstehen, werden noch in der nächsten Software-Version berücksichtigt. Sie sind tagesaktuell, weil bspw. bestimmte Probleme zeitlich passend mit dem neuen Projekt zusammen fallen. Andere dagegen sind längst vergessen worden, tauchen erst später nach dem nächsten Projekt wieder auf und müssen dann auf ihre Umsetzung warten oder werden nachträglich in Zwischenversionen eingebracht. Diese Situation ist nicht besonders förderlich, um wirklich alle Anforderungen zu erfassen oder wenigstens mit gutem Gewissen feststellen zu können, welche Anforderungen wichtig oder unwichtig sind. Auch ist bei einem solchen Muster nicht gesichert, dass tatsächlich eine gute Planung der Software über den gesamten Lebenszyklus stattfindet. Ungenutzte Anforderungen bei aufeinander folgenden Projekten Ganz anders sieht es dagegen aus, wenn ein kontinuierliches Anforderungsmanagement durchgeführt wird. Es wird in der nachfolgenden Abbildung schematisch dargestellt. Dabei erstreckt sich der Prozess der Anforderungsanalyse über den gesamten Lebenszyklus, wobei in der Abbildung eine gleich bleibende Intensität suggeriert wird, die im Normalfall nicht eingehalten wird. Wichtig ist vielmehr, dass die Anforderungen, welche erst während der Nutzung der Software bekannt werden, systematisch erfasst werden. Diese kontinuierliche Erfassung sorgt dafür, dass möglichst viele einzelne und unstrukturiert entstehende Anforderungen berücksichtigt, strukturiert, bewertet, gewichtet und schließlich auch tatsächlich geplant umgesetzt werden.
Kontinuierliche Anforderungsanalyse im Rahmen des Anforderungsmanagements Vorteile Die Software-Entwicklung bildet einen Prozess ab, der einen künstlichen Gegenstand mit geplanten Eigenschaften herstellt. Dieser Gegenstand in Form eines Software-Programms ist auf einen bestimmten Zweck hin ausgerichtet, von dem die Anforderungen, die an das geplante Programm gestellt werden, abgeleitet werden können. Dieser Zweck ist in einer bestimmten Umwelt, die im Fall von Software-Systemen oftmals als System-Landschaft oder sonstigen technisch-organisatorischen Bedingungen be- Konsistente und nachvollziehbare Verwaltung von Anforderungen über den gesamten Lebenszyklus einer Software und sogar über diesen Zyklus hinaus, wenn Anforderungen zu einer völlig neuen Software führen. Klar strukturierte Verantwortungsbereiche und Rollen im Rahmen der Anforderungsverwaltung Konzentration auf wesentliche Aspekte der Anforderungen aus verschiedenen Perspektiven für einen umfassenden Überblick über die Anforderungen schrieben werden kann, eingebettet, der zusätzliche Anforderungen, die man oft als Rahmenbedingungen oder auch je nach Art nicht funktionale Anforderungen beschreibt. Das Anforderungsmanagement führt nun auch noch eine ausgeprägte zeitliche Betrachtung und Berücksichtigung in die Durchführung des Prozesses ein.dabei kann man folgenden Nutzen sehen: Erreichen einer stabilen und vollständigen Liste an Anforderungen, die auch geprüft und abgenommen werden, um dadurch ihre Qualität und Vollständigkeit zu steigern Bearbeitung und Korrektur von unvollständigen oder sogar fehlerhaften Anforderungen, was zu Qualitätssteigerungen und teilweise sogar zu Kostensenkungen führen kann Beschleunigter Entwicklungszyklus durch kontinuierlich erfasste und frühzeitig bekannte Anforderungen, verbesserte Gesamtplanung von mittel- und langfristig eingesetzten Software-Lösungen
Dimensionen Es lassen sich drei Dimensionen unterscheiden, in denen sich das Anforderungsmanagement konkretisiert. Sie erfordern in speziellen Gebieten die Durchführung von neuen Aufgaben oder die Berücksichtigung von anderen Aspekten, die an eine Software zu stellen ist. Die nachfolgende Liste fasst diese drei Bereiche erklärend zusammen. Dimension Kunde: Aus Sicht des Kunden ist oftmals die technische Umsetzung einer Software viel weniger bedeutend als für den Softwaredienstleister. Kunden fokussieren sehr viel stärker und teilweise ausschließlich die Eigenschaften einer Software als ermöglichende Technologie, d.h. als Durchführungshilfe für Geschäftsprozesse oder wenigstens Teilaufgaben darin. Die Anforderungen konzentrieren sich daher im Wesentlichen auf die Problemlösung. Dies erfordert, dass im Rahmen des Anforderungsmanagements diese Ziele immer im Vordergrund stehen und gelöst werden. Die Software-Entwicklung soll nachhaltig und auf die Bereitstellung von Aufgabenlösungen ausgerichtet sein. Aufgaben aus den Geschäftsprozessen führen zu Anforderungen in der Software und müssen dort bestmöglich umgesetzt werden. Dimension Produkt: Das Produkt ist die Kristallisation der Kundenanforderungen in Form einer Lösung für bestehende Probleme bzw. für die Durchführung von Geschäftsprozessen. Anforderungen an ein Produkt, d.h. die konkrete Ausgestaltung der Software (Architektur, Aufbau, Technik) wird aus den Kundenanforderungen abgeleitet und erfährt so eine softwaretechnische Übersetzung. In diesem Sinne muss das Produkt-Anforderungsmanagement dafür Sorge tragen, dass die Entwicklung eines Software-Produkts nachhaltig und profitabel ist. Umwege, Fehlentwicklungen oder ungünstige Technik-Entscheidungen sollen hier vermieden werden. Kundenanforderungen, die erst in der Zukunft liegen, werden hier auch erst für zukünftige Versionen berücksichtigt, sodass Anforderungen entlang der Zeitschiene der Geschäftsprozessund teilweise sogar der Unternehmensentwicklung mit den Produktanforderungen bzw. der Produktentwicklung harmonisiert werden. Dimension Projekt: Ein Projekt stellt nach der Anforderungsanalyse für eine konkrete Software die Tätigkeit dar, welche über eine begrenzte Laufzeit zu einem vorgegebenen Ziel führen muss. Das Ziel ist dann die Bereitstellung eines Produkts, mit dem in der Gegenwart bestehende Geschäftsprozesse durchgeführt und Probleme gelöst werden können. In diesem Sinne hat dann das Produkt-Anforderungsmanagement die Aufgabe, die ermittelten Produkt- Anforderungen innerhalb der Projektrahmenbedingungen umzusetzen. Dies erfordert, entstehende Anforderungen, die sich aus der Projektdurchführung ergeben, zu berücksichtigen.
Zusammenfassung Das Anforderungsmanagement lässt sich also als kontinuierliche Erfassung, Bewertung und Prüfung von Anforderungen verstehen, welche in einzelnen Software-Lösungen bzw. Versionen einer Software umgesetzt werden. Der zentrale Unterschied zwischen einem kontinuierlichen Ermittlungsprozess und einer nur punktuell und auf ein konkretes Projekt bezogenen Anforderungsanalyse/- erfassung besteht darin, dass nahezu im Gleichklang mit der Entwicklung von Geschäftsprozessen und Aufgaben, welche durch eine Software unterstützt werden sollen, die zu Grunde liegenden Anforderungen ermittelt werden. Sie stehen dadurch frühzeitig bereit, sind durch die zeitlich vom Projekt fast losgelöste Erfassung und Bewertung von hoher Qualität und werden daher auch nicht fehleranfällig erst im Rahmen eines Projekts ermittelt.dadurch nutzt man die Vorteile, Fehler und inkonsistente Anforderungen zu vermeiden, Kunden-/Benutzerwünsche besser zu verstehen und auf Basis dieses Hintergrundwissens auch ihre Gewichtung besser zu kennen, benötigte Arbeitszeiten, Kosten sowie technische Herausforderungen frühzeitig und genauer zu kennen und schließlich auch Systemumgebung oder die Organisation, in der die Software-Lösung eingebettet sein soll, besser zu verstehen oder ggf. sogar ändern zu können.insgesamt soll durch den kontinuierlichen Prozess des Anforderungsmanagements eine erhöhte Qualität im Softwareentwicklungsprozess erreicht werden. Dies soll Kosten für Neben- und Zwischenlösungen verhindern und insbesondere die Entwicklung von Geschäftsprozessen und Softwarelösungen synchronisieren.