Darum lohnt sich Requirements Engineering
Gutes Requirements Engineering sorgt für bessere Software. Trainer Michael Mey nennt fünf Gründe, warum du darauf nicht verzichten solltest.
Eine Software kann noch so performant und nutzerfreundlich sein – wenn sie aber gewisse spezifische Anforderungen nicht erfüllt, ist sie im Grunde kaum zu gebrauchen. Ein neu entwickeltes Programm muss sich deshalb immer an den gestellten Anforderungen messen lassen.
Deshalb ist es in der Softwareentwicklung wichtig, bereits bei der Ausschreibung durch die Kundin oder den Kunden eine Anforderungsanalyse zu erstellen. Denn eine Ausschreibung ohne Beschreibung der Anforderungen ist wertlos und nicht zielführend. Requirements Engineering lautet in diesem Zusammenhang ein wichtiges Schlagwort. Doch was hat es damit genau auf sich?
Was ist Requirements Engineering?
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. Es ist deshalb ein wichtiger methodischer Bestandteil bei der Entwicklung von Systemen, Produkten und Software.
RE ist also eine grundlegende Phase bzw. Methode im Entwicklungsprozess. Im sogenannten «Wasserfallmodell», die erste und weitläufig eingesetzte Methode in der Software-Industrie, stellt das Anforderungsmanagement die erste von sieben Phasen dar. Neuere, agile Entwicklungsmethoden sehen hingegen vor, es über die gesamte Projektdauer fortzusetzen.
6 gute Gründe für Requirements Engineering
Das Anforderungsmanagement hat die kundenorientierte Herstellung von Produkten bzw. Software zum Ziel. Die sechs wesentlichen Gründe, Requirements Engineering einzusetzen, sind:
- Die für die Stakeholder und Anwendenden wichtigsten Merkmale des neuen Produkts werden berücksichtigt.
- Für die Kundschaft wird ein möglichst hoher Nutzen erreicht.
- Potenzielle Probleme werden frühzeitig erkannt.
- Unerwünschte und unnötige Funktionalitäten werden vermieden.
- Fehlentwicklungen und lange Korrekturschleifen werden vermieden.
- Die anvisierten Termine und das festgelegte Budget lassen sich besser einhalten.
Wichtig zu beachten ist, dass sich Randbedingungen, Funktionswünsche, Begeisterungsmerkmale, Ziele, aber auch Normen und Gesetze bereits im Zeitraum eines Entwicklungsprojekts ändern können. Das bedeutet, dass Requirements Engineering eher eine kontinuierliche Disziplin ist, statt eine isolierte Aufgabe in einer bestimmten Projektphase. Mit Hilfe von RE lassen sich Veränderungen aber zu jedem Zeitpunkt frühzeitig erkennen und das zu entwickelnde Produkt rechtzeitig und entsprechend anpassen.
Diese Aufgaben hat ein/e Requirements Engineer
Dem/der Requirements Engineer kommt im Entwicklungsprozess eine entscheidende Rolle zuteil: Es liegt an ihm/ihr, die vage Idee für eine neue Software oder auch die sehr konkreten Vorstellungen, die aber mit der Realität kaum vereinbar sind, in einen Anforderungskatalog zu bringen, der den Erwartungen und der Umsetzungsfähigkeit gerecht wird. Requirements Engineers stehen deshalb in engem Austausch mit allen Stakeholdern.
Die Aufgaben im Überblick:
- Erheben der Anforderungen
- Analyse der Anforderungen
- Dokumentation der Anforderungen
- Prüfung der Anforderungen
- Verwaltung der Anforderungen
Da Requirements Engineers mit unterschiedlichen Menschen zusammenarbeiten sind für diese Aufgaben eine Reihe von Skills gefragt:
- Hohes IT-Verständnis
- Ausgeprägte Kommunikationsfähigkeit
- Analytisches und kritisches Denken
- Problemlösungskompetenz
- Blick für Details
- Anpassungsfähigkeit
- Einfühlungsvermögen
- Konfliktmanagement
- Kreativität
Requirements Engineers sind gerade im agilen Arbeitsumfeld gefragt und verdienen laut der Plattform «kununu» im Durchschnitt 109.300 Franken pro Jahr. Die Jobbörse «jobs.ch» gibt, basierend auf über 150 Lohnangaben, sogar einen durchschnittlichen Jahreslohn von 117.403 Franken an.
Requirements Engineering: Tools und Methoden
Für das Anforderungsmanagement gibt es eine Reihe an Methoden, die zum Einsatz kommen können:
- Interviews: Befragen von Stakeholdern, Expertinnen und Experten sowie Anwendenden
- Workshops: Stakeholder und Entwicklungsteam zusammenbringen
- Brainstorming: Ideen für neue Anforderungen sammeln und bestehende zu verbessern
- Use Cases: Spezifizieren von Anforderungen, die sich auf die Anwendung beziehen
- Prototyping: Prototypen erstellen, um Anforderungen zu validieren und Feedback einzuholen
- Dokumentenanalyse: Untersuchen von vorhandenen Informationen wie Handbüchern oder Spezifikationen
Für RE stehen unterschiedliche Tools bereit, die bei der Definition der Anforderungen, der Dokumentationen und der Verwaltung unterstützen. Zum Beispiel:
- ReqSuite
- Polarion Requirements
- DOORS
- Enterprise Architekt
- Jama Connect
- Jira und Confluence
Zudem bieten AI-Tools wie ChatGPT, Claude, Gemini und Llama grosses Potenzial, um die Effizienz und Qualität im RE zu steigern.
Was ist der wirtschaftliche Nutzen von Requirements Engineering?
Wirtschaftlich betrachtet wirkt Requirements Engineering lediglich indirekt, beispielsweise indem sich Entwicklungs- und Pflegekosten reduzieren lassen oder die Kundenzufriedenheit gesteigert wird.
Laut einer Studie der Deutschen Gesellschaft für Projektmanagement ist die Projektarbeit seit Jahren konstant hoch, der Erfolg zuletzt aber gesunken, insbesondere bezogen auf die Kosten- und Zeiteinhaltung. Dies liegt vor allem daran, dass sich auch die zentrale Projektorganisation verringert hat. Sprich: Ohne RE steigt der Misserfolg.
Requirements Engineering hilft also 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.