Was bedeutet Requirement Engineering?
Per Definition ist Requirement Engineering ein systematisches Modell zur Aufnahme, zum Verwalten sowie zum Spezifizieren von Anforderungen an ein System, ein Produkt oder eine Software. Die Anforderungen können dabei sowohl funktionalen wie auch nicht-funktionalen Ursprungs sein.
Seine Herkunft verdankt der Begriff Requirement Engineering, der sich im Deutschen noch am Besten mit Anforderungsanalyse oder Anforderungsmanagement übersetzen lässt, vor allem der Software-Entwicklung. Dabei reicht er in seiner Bedeutung aber weit über rein technische Aspekte hinaus.
Beim Requirement Engineering geht es insbesondere darum, ein Projekt zunächst von seiner generellen Absicht und seinen Business-Zielen her zu betrachten. Und zwar aus einer 360-Grad-Perspektive und unter Einschluss aller von der Lösung Betroffener, die in der Praxis zumeist als Stakeholder bezeichnet werden.
Der Vorteil liegt darin, dass sich Requirement Engineering bei der Anwendungsentwicklung nicht bloß an den technischen Gegebenheiten, sondern vor allem an den Zielen der Anwendung orientiert. Bei konkurrierenden Lösungen gewinnt dann die Alternative, die der definierten Anforderung am Besten entspricht.
Lösungen auf Basis eines systematischen Requirement Engineering sorgen für größere Akzeptanz im Unternehmen und bei allen beteiligten Stakeholdern. Im Falle möglicher Lösungsalternativen können zudem Aspekte wir Wirtschaftlichkeit, Innovationskraft oder Sicherheit in die Entscheidung einfließen.
Was macht ein Requirement Engineer?
Technisch betrachtet sorgt ein Requirement Engineer dafür, dass Anforderungen vollständig erfasst werden und die Anforderungen dabei eindeutig (unmissverständlich), notwendig (gültig), konsistent (frei von Widersprüchen) und prüfbar (testbar) sind. Unterschieden wird dabei häufig zwischen funktionalen und nicht-funktionalen Anforderungen sowie verschiedenen Arten der Informationsaufnahme und Dokumentation, was nicht zuletzt auch mit dem Projekt selbst zusammenhängen kann.
Da Anforderungen – aus unterschiedlichen Blickwinkeln (z.B. Stakeholdern) betrachtet – sehr unterschiedlich eingeschätzt werden können und die sprachliche Syntax zusätzliche "Stolperfallen" bereithält, muss der Requirement Engineer – neben dem analytischen Denken – vor allem auch Empathie, Kommunikations- und Konfliktlösungsfähigkeit, Selbstbewusstsein und Überzeugungskraft sowie Moderationsskills mitbringen, um am Ende erfolgreich sein zu können.
Gute Gründe für Requirement Engineering
Warum eine professionelle Anforderungsanalyse immer eine gute Idee ist:
- Klärt die Erwartungshaltung der Stakeholder
- Sorgt für eine möglichst vollständige, eindeutige und widerspruchsfreie Spezifikation aller Anforderungen
- Größere Planungssicherheit des Projekts in Bezug auf Termine und Kosten
- Vermeidung oder Reduzierung von Fehlentwicklungen
- Grundlage für eine mögliche Weiterentwicklung von Produkt, System oder Software
- Unklare Anforderungen gelten als Hauptursache für das Scheitern von Projekten
Quelle: t2informatik
Fallstricke bei der Anforderungsanalyse
Eine gutes Requirement Engineering verursacht zunächst einmal Kosten, die nur indirekt durch die Vermeidung von Fehlern innerhalb des Projekts oder durch eine große Kundenzufriedenheit aufgrund exzellenter Lösungsaspekte sowie einer hohen Qualität gerechtfertigt erscheinen. Denn der Wunsch nach Vollständigkeit sowie der Wille nach einer möglichst objektiven und ungefärbten Sicht auf das Projekt treiben den Aufwand schnell in die Höhe.
Im Grunde lassen sich die Aktivitäten des Requirement Engineering laut IREB auf vier zentrale Bereiche herunterbrechen:
- Die Ermittlung von Anforderungen inklusive Detaillierung und Verfeinerung
- Die Dokumentation als adäquate Beschreibung von Anforderungen
- Die Prüfung und Abstimmung von Anforderungen mit dem Ziel, die Qualität sicherzustellen
- Die Verwaltung – auch als Requirements Management bezeichnet – von Anforderungen
Ausgangspunkt Anforderungsquellen:
- Untersuchung Status quo
- Vom Problem zur Lösungsentwurf
- Definition der Ziele und Bewertung
Ermittlungstechniken:
- Brainstorming
- Wechsel der Perspektive
- Feldbeobachtung
- Fragebogen
- Interviews
- Systemarchäologie
- Workshop
- MindMapping
- UseCase Modelle
- Szenarien