"Über das Ziel hinausschießen ist ebenso schlimm, wie nicht anzukommen." Dieser Satz wird Konfuzius zugeschrieben. Und er beschreibt präzise, was passieren kann, wenn dem Requirements Engineering (RE) in Entwicklungsprojekten nicht genügend Aufmerksamkeit gewidmet wird. Obwohl die Relevanz von RE für das Gelingen von Projekten seit langem bekannt ist, scheint es Nachholbedarf bei der konsequenten Umsetzung zu geben. In dieser Artikelserie geben wir einen Überblick über grundlegende Konzepte für RE im Kontext eines durchgängigen Lebenszyklus von Entwicklungsprojekten.
Es mag paradox erscheinen, mit dem Ergebnis zu beginnen, aber ohne die Festlegung eines Projektzieles wird man im Verlauf des Projektes viele teure Umwege machen.
„Nicht anzukommen“, also geforderte Eigenschaften eines Produktes nicht implementiert zu haben, kann fatale Folgen haben. Gleiches gilt für „über das Ziel hinausschießen“, also Implementierung von Features, die nicht verlangt wurden. Die möglichen negativen Folgen reichen von rein wirtschaftlichen Schäden aufgrund ausbleibender Umsätze oder hoher Kosten durch die Implementierung unverlangter Eigenschaften („gold-plating“) bis zur Gefährdung von Leib und Leben, wenn sicherheitskritische Eigenschaften fehlen oder durch „gold-plating“ ohne Not Fehlerquellen eingebaut wurden.
Anmerkung: In dieser Artikelserie verwenden wir den englischen Begriff „Requirements Engineering“ oder kurz „RE“ als Bezeichnung für den Prozess der durchgängigen Entwicklung im Einklang mit den Anforderungen. Dazu zählen die Ermittlung, Gewichtung, Auswahl, Spezifikation, Anpassung, Verifikation, Validierung und Management von Anforderungen. Hier finden Sie eine Definition.
Natürlich wird in der Regel vor der Entscheidung, ein bestimmtes Projekt anzugehen, geklärt, was das Ziel ist und welche wirtschaftlichen Rahmenbedingungen angenommen werden. Im Verlauf der Durchführung kann sich dieser Kontext jedoch ändern, und in vielen Projekten wird das auch passieren. Oft stellt man fest, dass am Ende mehr Entwicklungskosten aufgelaufen sind als ursprünglich geplant. Mögliche Ursachen sind Missverständnisse an Schnittstellen, „doppelte“ Arbeit, weil Vorgaben falsch interpretiert wurden, technische Komplikationen aufgetreten sind, Aufwände falsch geschätzt wurden oder weil sich kleine Änderungen eingeschlichen haben, die im Verlauf des Projektes zu gravierenden Abweichungen von der Zielvorgabe geführt haben. All das sind typische Anzeichen, dass es beim Requirements Engineering (Definition siehe Kasten) möglicherweise Potenzial zur Verbesserung gibt.
Requirements Engineering (RE) ist wohl die meistunterschätzte Disziplin in der System- und Softwareentwicklung. Und dabei geht es nicht nur darum, zu Beginn eines Projektes mit allen relevanten Stakeholdern gemeinsam Klarheit über das angestrebte Ergebnis zu gewinnen. Die Herausforderung liegt im durchgängigen Requirements Engineering, also dem kontinuierlichen Abgleich der Anforderungen mit den entstehenden Engineering-Artefakten, einschließlich Feedbackschleifen und ggfs. Korrektur sowohl der Anforderungen als auch der Artefakte, je nach Notwendigkeit. Diese Synchronisation über den gesamten Entwicklungsprozess zu ermöglichen und durchzuführen, ist eine der wichtigsten Aufgaben im Requirements Engineering. Ja nach Branche und Projekt können viele unterschiedliche Disziplinen in den RE-Prozess integriert sein, die jeweils eine ganz eigene Sicht auf das zu entwickelnde System haben (siehe Abb. 1). Die Einbeziehung aller relevanten Spezialisten in einen durchgängigen RE-Prozess ist eine wichtige Voraussetzung dafür, dass das Projektergebnis die Erwartungen erfüllt (siehe Abb. 2).
Abb. 1 – Die Spezialisten der beteiligten Disziplinen haben jeder einen anderen Blick auf das entstehende System (hier am Beispiel der Rollen in einem typischen RE-Prozess für Embedded Systeme)
Typische Fragen, die für die Planung und Durchführung von Projekten geklärt werden sollten, sind beispielsweise:
Und das betrifft nur die „handwerklichen“ Aspekte des RE, die man mit entsprechenden Abläufen, Prozessen und Tools in den Griff bekommt.
Abb. 2 – Requirements Engineering sorgt dafür, dass am Ende das gewünschte Produkt unter Beteiligung der erforderlichen Spezialisten entsteht.
Ein weiterer oft unterschätzter Faktor ist die Qualität der Anforderungen. Darum wird es in Teil 2 dieser Serie gehen. Falls Sie in der Zwischenzeit weitere Informationen zum Thema Requirements Engineering suchen, ist dies ein guter Ausgangspunkt: https://www.sodiuswillert.com/de/loesungen/anforderungsmanagement