Dirk Schwammkrug, Business Unit Manager, Logica Switzerland AG Oftmals wird erst beim Akzeptanz-Test durch den Kunden festgestellt, ob die entwickelte Software den Bedarf der künftigen User trifft. Doch in den abschliessenden Tests kann Qualität nur noch gemessen werden - generiert wird sie hingegen zu Beginn und bewahrt werden muss sie über die gesamte Laufzeit eines Projekts. Studien belegen, dass bis zu 60 Prozent der Fehler in der Systementwicklung bereits in der Anfangsphase eines Projekts verursacht wurden. Die Erhebung und Verwaltung der Anforderungen an ein neues System – im Terminus Requirements Engineering gefasst - stellt sich somit als Achillesferse eines jeden Softwareprojektes heraus.
Requirements Engineering als solches ist nicht neu. Bereits in klassischen Entwicklungsmodellen steht die Spezifikation der Anforderungen am Anfang. Doch heutzutage müssen sich die meisten IT-Projekte in eine über Jahre gewachsene IT-Infrastruktur integrieren lassen, was technisch und organisatorisch anspruchsvoll ist, wenn für die Integration in die IT-Landschaft im Unternehmen abteilungsübergreifend entschieden werden muss. Zudem ist es für die meisten zukünftigen Nutzer eines neuen Systems sehr schwierig, im Voraus zu definieren, was genau sie für ihre Arbeit brauchen werden. Damit ergeben sich während der Projektlaufzeit neue Einsichten und daraus folgend neue oder geänderte Anforderungen.
Hohe Anforderungen an Requirements Engineer
Für die erfolgreiche Durchführung von IT-Projekten steigt damit auch die Bedeutung eines Requirements Engineerings, das den gesamten Projekt-Lebenszyklus begleitet. Neu und erfreulich ist, dass das Requirements Engineering zunehmend als eigenständige Disziplin ergänzend zu Business Analyse und Projektmanagement wahrgenommen wird. In der Schweiz gibt es vielfältige Aus- und Weiterbildungskurse, die durch die Swiss Association for Quality (SAQ) zertifiziert werden. Die Qualitätsstandards in der Ausbildung zum Certified Professional for Requirements Engineering (CPRE) werden durch das International Requirements Engineering Board (IREB) kontrolliert.
Die Anforderungen an den Requirements Engineer sind vielfältig. Aus der Idee, die am Anfang eines jeden Projektes steht und die aus einer definierten Road Map in der Produktentwicklung erwächst oder ein Problem lösen soll, müssen die Anspruchsgruppen und deren Bedürfnisse abgeklärt werden. Daraus lassen sich die Anforderungen an die künftige Lösung ermitteln und der Nutzen sowie der Anspruch an Funktionalität und Qualität spezifizieren. Zur Beschreibung der Eigenschaften sind die Kriterien Eindeutigkeit, Vollständigkeit, Machbarkeit, Prüfbarkeit und Notwendigkeit massgebend; dazu müssen die Requirements widerspruchsfrei zueinander sein.
Requirements werden nach ihrer Wichtigkeit und dem Aufwand ihrer Umsetzung in Muss-, Soll- und Kann-Anforderungen eingeteilt. Unverzichtbare Requirements ergeben sich aus gesetzlichen Vorgaben. Andere Anforderungen mögen durchaus sinnvoll sein, können aber beispielsweise auch erst in ein späteres Release einfliessen. Der Requirements Engineer muss nicht nur verschiedene Techniken der Dokumentation von Anforderungen beherrschen bis hin zur Modellierung mittels UML, sondern er muss auch zwischen den verschiedenen Anspruchsgruppen, insbesondere zwischen den fachlichen Vertretern und den Entwicklern, vermitteln können.
Zudem kommt dem Requirements Engineer die wichtige Aufgabe zu, die Anforderungen kontinuierlich über die gesamte Projektlaufzeit zu managen. Diese Aufgabe ist angesichts des langen Lebenszyklus’, die eine Anforderung vom mitunter unscharf formulierten Bedürfnis über ihr Design im System bis hin zu Implementation, Test und Inbetriebnahme durchläuft, keineswegs trivial. Hinzu kommt, dass bis zu 5 Prozent der Anforderungen pro Monat ändern! Insbesondere in der iterativen und agilen Softwareentwicklung ist Flexibilität bei gleichzeitiger Wahrung der Kontrolle über den Status und die Abhängigkeiten von Anforderungen untereinander eine ausserordentliche Herausforderung.
Gutes Requirements Engineering ist immer auch zu einem grossen Teil Business- und Prozess-Analyse. Mit seinem umfangreichen Repertoire an Techniken und seinem Wissen, dieses angemessen für die Priorisierung von Nutzen, Aufwänden, Kosten und Risiken der Anforderungen einzusetzen, ergänzt der Requirements Engineer das Team aus Projekt- und Qualitätsmanagern, Systemarchitekten und Entwicklern. Seine Rolle im Projektteam ist es, Zeit und Geld zu sparen, indem die wesentlichen Voraussetzungen für den Projekterfolg von Beginn weg geschaffen und bis zur Inbetriebnahme der Software bewahrt werden.