Warum sich Requirements Engineering lohnt
Wie kann eine gute Software entstehen, ohne die Bedürfnisse der Stakeholder zu verstehen? Deshalb sollte jedes Softwareprojekt von einem professionellen Requirements Engineering begleitet werden, sagt unser Trainer Michael Mey und nennt 5 gute Gründe dafür.
Was der genaue Nutzen von Requirements Engineering (RE) ist und warum sich der Aufwand in der Regel lohnt, fragt sich sowohl mancher Kunde als auch Dienstleister.
In der Praxis kommt es des Öfteren vor, dass beide Seiten das Thema Requirements Engineering vernachlässigen und es als unnötigen Ballast oder Kostentreiber ansehen.
Dabei sollte bereits die Erstellung einer Ausschreibung durch den Kunden Teil einer Anforderungsanalyse sein, denn eine Ausschreibung ohne Beschreibung der Anforderungen ist eigentlich relativ wertlos.
Doch bevor wir näher auf die Gründe und den Nutzen von Requirements Engineering eingehen, sollten wir zuerst klären, was Requirements Engineering eigentlich bedeutet.
Was ist Requirements Engineering (RE)?
Der Begriff «Requirements Engineering» (kurz RE) kommt aus dem Englischen. «Requirements» bedeutet Anforderungen, «Engineering» bedeutet Entwicklung oder Konstruktion. Als Synonym wird auf Deutsch auch häufig das Wort Anforderungsmanagement gebraucht.
Entsprechend geht es beim Requirements Engineering um die systematische Ermittlung, Spezifizierung, Validierung und Verwaltung von Anforderungen. Requirements Engineering ist deshalb ein wichtiger Bestandteil bei der Entwicklung von Systemen, Produkten und Software.
Was sind gute Gründe für Requirements Engineering?
Das Ziel von Requirements Engineering ist die kundenorientierte Herstellung von Software bzw. Produkten:
- Aus Sicht des Kunden soll ein möglichst hoher Nutzen erreicht werden.
- Die wichtigsten Merkmale sollen berücksichtigt werden, die von den bedeutendsten Kunden, Anwendern und Stakeholdern gewünscht oder erwartet werden.
- Gleichzeitig sollen sowohl unerwünschte, als auch unnötige Funktionalitäten vermieden werden.
- Insgesamt können durch sorgfältiges Requirements Engineering die Entwicklungskosten durch Vermeidung von Fehlentwicklungen reduziert werden, da Korrekturen schon bei missverstandenen Anforderungen erfolgen können.
- Gutes RE kann zudem dazu beitragen, dass Termine und Kosten besser eingehalten werden.
Dennoch muss man beachten, dass sich Randbedingungen, Funktionswünsche, Begeisterungsmerkmale, Ziele, aber auch Normen und Gesetze häufig bereits im Zeitraum einer Entwicklung ändern können.
Das bedeutet, dass Requirements Engineering eher eine kontinuierliche Disziplin ist, statt eine isolierte Aufgabe in einer bestimmten Projektphase.
Durch die stetig steigende Komplexität unserer heutigen Welt zeichnet sich ein deutlicher Trend weg von klassischen und hin zu agilen Vorgehensmodellen ab.
Welche Aufgaben hat ein Requirements Engineer?
Hier beziehe mich auf die Definition von IREB® (International Requirements Engineering Board). IREB® ist eine Non-Profit-Organisation und weltweit anerkanntes Expertengremium für die Zertifizierung von Fachkräften im Requirements Engineering. IREB® nennt sechs zentrale Aufgaben und Verantwortlichkeiten:
- Erheben der Anforderungen
- Analyse der Anforderungen
- Spezifizierung der Anforderungen
- Dokumentation der Anforderungen
- Prüfung der Anforderungen
- Verwaltung der Anforderungen
Wie lässt sich die Qualität der Anforderungen messen?
Die Qualität im Requirements Engineering spiegelt sich unmittelbar in der Qualität der Anforderungen wider. Diese werden anhand von diversen Attributen gemessen, wie u.a.:
- vollständig (ohne Wesentliches auszulassen)
- korrekt (abgestimmt mit allen Stakeholdern)
- verständlich (für alle Stakeholder)
- eindeutig (präzise ohne Interpretationslücken)
- konsistent (keine Widersprüche)
- strukturiert (sinnvoll gegliedert)
- atomar (einzeln erfasst statt zusammengefasst)
- prüfbar (verifizierbar mit einem Test)
Speziell das letzte Attribut «prüfbar» verweist auf eine weitere wichtige Disziplin im Hinblick auf die Qualität. Denn Anforderungen dienen auch als Akzeptanzkriterien beim Testing.
Was ist der wirtschaftliche Nutzen von Requirements Engineering?
Wirtschaftlich betrachtet wirkt Requirements Engineering lediglich indirekt, bspw. in dem sich Entwicklungs- und Pflegekosten reduzieren lassen oder die Kundenzufriedenheit gesteigert wird.
Laut Studien der Marktforschungsinstitute Forrester Research und Meta Group Research sind jedoch 60-80% der gescheiterten Projekte auf schlechtes oder nicht vorhandenes Requirements Engineering zurückzuführen.
Deshalb ist die Spezifikation von Anforderungen eine kritische und an sich schwierige Aufgabe, die professionell angegangen werden sollte.
Requirements Engineering hilft dabei, viele Fehler schon in der Konzeptionsphase zu erkennen, die später nur mit hohen Kosten zu beheben sind. Der Nutzen von Requirements Engineering ist folglich nicht von der Hand zu weisen, auch wenn er nicht genau zu beziffern ist.