Requirements Engineering als eigenständige Disziplin in der Softwareentwicklung

31. Januar 2011, 10:09
  • technologien
  • gastbeitrag
image

Plädoyer für ein neues Berufsbild in der Informatik. Ein Gastbeitrag von Dirk Schwammkrug von Logica Switzerland.

Die Kriterien, die über Erfolg oder Misserfolg eines Softwareprojekts entscheiden, sind vielfältig. Gängigerweise werden die Kundenzufriedenheit einerseits und die Einhaltung von Zeit- und Kosten-Budgets andererseits als Messgrössen für den Erfolg angewendet. Die hohe Kunst besteht darin, beides gleichermassen zu erreichen.
Die Kundenzufriedenheit wird aber zumeist erst gegen Ende des Projekts, nicht selten erst beim Akzeptanz-Test durch den Kunden ermittelt. Iterative und agile Entwicklungsmethoden, die sich in der jüngeren Vergangenheit gegenüber den klassischen "Wasserfall"- und V-Modellen mehr und mehr durchgesetzt haben, können dafür sorgen, dass Diskrepanzen früher entdeckt und mit einer höheren Frequenz korrigiert werden können. Dennoch haben diese und andere Initiativen nichts daran geändert, dass viele Manager das Freigeben eines IT-Projekts als Lotteriespiel empfinden. Denn die fortwährende Optimierung der Software-Entwicklungsprozesse kann eines nicht ändern: Es ist relativ unerheblich, wie gut Software entwickelt wird, wenn sie nicht den Bedarf der Nutzer trifft. Optimierungen am Entwicklungsprozess allein reichen also nicht aus.
Die Erhebung und Verwaltung der Anforderungen an das neue System – genau dies wird im Ausdruck "Requirements Engineering" zusammengefasst - stellt sich oft als Achillesferse eines jeden Softwareprojektes heraus. Denn in den abschliessenden Tests kann Qualität nur noch gemessen werden – generiert wird sie zu Beginn. Studien belegen, dass bis zu 60 Prozent der Fehler in der Systementwicklung bereits im Requirements Engineering verursacht wurden. Fehler in der Analyse sind somit eine der Hauptursachen für Fehlschläge in der Software- und Systementwicklung. Hier liegt ein beachtliches Einsparpotential.
Die Geburt eines neuen Berufsbildes
Die Tätigkeit des Requirements Engineering als solche ist nicht neu. Bereits im klassischen Wasserfall- und V-Modell stehen am Anfang eines jeden Projekts jeweils die Definition der Anforderungen und die Spezifikation. Diese durchaus etablierten Modelle kranken jedoch häufig am strikt sequentiellen Entwicklungsablauf, der den Beginn einer neuen Phase erst nach Abschluss der vorhergehenden erlaubt. Das bedeutet, dass im Prinzip sämtliche Anforderungen bereits zu Beginn aufgenommen, analysiert und gegebenenfalls modelliert werden und dann als Ganzes an das Design und die Entwicklung übergehen sollten. In der Praxis lässt sich jedoch häufig beobachten, dass die initial erhobenen Anforderungen im Laufe des Projekts korrigiert werden müssen.
Warum ist das so? Zum einen entstehen die meisten IT-Projekte heute nicht mehr auf der grünen Wiese, sondern müssen sich in eine über Jahre gewachsene IT-Infrastruktur integrieren lassen. Dies erzeugt technische Komplexität. Die viel grössere Herausforderung ist aber oftmals die organisatorische Komplexität, wenn für die Integration in die angetroffene IT-Landschaft im Unternehmen abteilungsübergreifend entschieden werden muss oder sich die IT-Landschaft während der Projektlaufzeit ändert. Zudem ist es für die meisten zukünftigen Benutzer eines neuen Systems sehr schwierig, im Voraus zu definieren, was genau sie für ihre Arbeit brauchen werden. Was dazu führt, dass sich während der Projektlaufzeit neue Einsichten ergeben und daraus folgend neue oder geänderte Anforderungen.
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 neben und ergänzend zu Business-Analyse und Projektmanagement wahrgenommen wird. Auch für diese beiden Bereiche setzt man Spezialisten ein. Warum also nicht für das Requirements Engineering?
Das Berufsbild des Requirements Engineers ist mittlerweile bereits am Entstehen. In der Schweiz bieten schon mehrere Anbieter Aus- und Weiterbildungskurse an, die mit einer Zertifizierungsprüfung durch die Swiss Association for Quality (SAQ) kontrolliert.
Die Expertise eines Requirement Engineers im modernen Entwicklungsumfeld
Die Anforderungen an den/die Requirements EngineerIn sind vielfältig. Aus der Idee, die am Anfang eines jeden Projektes steht und die entweder aus einer definierten Roadmap 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. Diese Anforderungen sind zu beschreiben und zu dokumentieren. Für die weitere Spezifikation ist es erforderlich, den Nutzen der Requirements und die funktionalen wie auch qualitativen Anforderungen im Detail zu analysieren und daraus eine Priorisierung abzuleiten. Zur Beschreibung der Eigenschaften sind die Kriterien Eindeutigkeit, Vollständigkeit, Machbarkeit, Prüfbarkeit und Notwendigkeit massgebend. Ausserdem müssen die Requirements untereinander widerspruchsfrei sein. Es empfiehlt sich, die Requirements nach ihrer Wichtigkeit und dem Aufwand ihrer Umsetzung in einer Matrix zu erfassen und im nächsten Schritt zwischen MUSS-, SOLL- und KANN-Anforderungen zu unterscheiden. Unverzichtbare Requirements sind beispielsweise solche, die gesetzliche Vorgaben erfüllen müssen. Andere Anforderungen mögen durchaus sinnvoll sein, können aber auch erst für eine spätere Phase in der Projektentwicklung oder ein neues Release vorgesehen werden.
Der Requirements Engineer muss nicht nur über Know-how über die verschiedenen Techniken der Dokumentation von Anforderungen verfügen – von der Formulierung in Prosa über Checklisten bis hin zur Modellierung mittels UML, wofür sich Werkzeuge wie "Enterprise Architect" bewährt haben – sondern er muss auch zwischen den verschiedenen Anspruchsgruppen, insbesondere zwischen den fachlichen Vertretern und den Entwicklern, vermitteln können.
Last but not least kommt dem Requirements Engineer die wichtige Aufgabe zu, die Anforderungen ü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 sich pro Monat erfahrungsgemäss bis zu fünf Prozent der Anforderungen ändern. Wer bei der Prozentrechnung in der Schule aufgepasst hat, weiss, was dies für lang laufende Projekte bedeuten kann. Insbesondere in der iterativen und agilen Softwareentwicklung ist Flexibilität bei gleichzeitiger Bewahrung der Kontrolle über den Status und die Abhängigkeiten von Anforderungen untereinander eine ausserordentliche Herausforderung an den Requirements Engineer.
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. (Dirk Schwammkrug)
(Der Autor: Dirk Schwammkrug ist Business Unit Manager bei Logica Switzerland)

Loading

Mehr zum Thema

image

Die Einsatzzentrale hat den Überblick - jederzeit

Rund um die Uhr volle Konzentration – das ist bei der anspruchsvollen Arbeit der Einsatzzentrale der Stadtpolizei Zürich gefragt. Denn hier laufen alle Notrufe aus dem Zürcher Stadtgebiet zusammen – rund 170’000 Anrufe pro Jahr. Und FlexScan-Monitore von EIZO garantieren stets den vollen Überblick.

image

Podcast: Eine grosse IT-Messe in Las Vegas

Diese Woche fand die Messe Cisco Live in Las Vegas statt. Eine Redaktorin von inside-it.ch hat sich unter die Besuchenden gemischt. Hat sich der lange Flug gelohnt?

publiziert am 17.6.2022
image

Event-Ankündigung: Wie sicher ist die Cloud?

Im Rahmen der Topsoft debattiert Swiss Made Software die Sicherheit des Schweizer Datenraums.

publiziert am 17.6.2022
image

Ein Switch brachte den Flugverkehr über der Schweiz zum Erliegen

Weil ein Switch ausgefallen ist, musste der gesamte Luftraum über der Schweiz gesperrt werden. Mit einem moderneren System hätte das verhindert werden können.

publiziert am 16.6.2022