Häufig werde ich in meinem privaten Umfeld gefragt was ich für eine Weiterbildung mache, wenn dann das Wort Requierments Engineering fällt, hört meistens kein Mensch mehr zu. Alle denken es ist ein abstraktes Thema, welches sie nie verstehen oder brauchen werden. Doch jeder von uns wird mit Requirements Engineering bewusst oder unbewusst konfrontiert und involviert.
Wenn über Requirements Engineering gesprochen wird, fliegen meistens einem einige Fachbegriffe um die Ohren, wie z.B. User Story, Use Case, Task und einige mehr. Doch wenn man es aus dem Englischen übersetzt heisst Requirement nichts anderes als Anforderung und diese, sind wir ehrlich, erheben wir alle und nicht nur im Zusammenhang mit IT-Projekten. Wir alle stellen tagtäglich Anforderungen in den unterschiedlichsten Situationen in unserem Alltag. Hier mal ein einfaches Beispiel: Gehen wir davon aus, dass du ein neues Auto kaufen möchtest. Kaufst du ein Auto ohne jegliche Vorstellungen? Wohl eher weniger! Einige Menschen bevorzugen eine bestimmte Marke oder eine Farbe, anderen ist der Verbrauch und der CO2-Ausstoss wichtig, anderen wiederum die Leistung, welche das Fahrzeug erbringen soll. Und schon stellen wir uns unbewusst ein Anforderungskatalog an die neue Anschaffung zusammen. Genau hier beginnen wir uns im Requirements Engineering zu bewegen.
Hauptgrund für gescheiterte IT-Projekte
In jedem Unternehmen laufen unzählige IT-Projekte und leider scheitert eine Vielzahl davon oder werden nur als teilweise erfolgreich betrachtet. Der Hauptgrund diverser Studien ist ein schlechtes Requirements Engineering! Jedes Vorhaben hat einen Kunden mit einem Bedürfnis und dieser bringt seine Vorstellungen an ein System mit. Im Requirements Engineering befassen wir uns damit diese Anforderungen und Ziele klar zu dokumentieren und vollständig zu erheben. Damit verhindern wir Missverständnisse und sorgen für reibungslosen Projektablauf.
Requirements Engineer, wofür?
Ein Requirements Engineer ermittelt, dokumentiert, prüft, stimmt ab und verwaltet die Anforderungen der Stakeholder. Durch seine Formulierungen sorgt er für eine gemeinsame Sprache zwischen dem Kunden und dem Softwareentwickler und nimmt dadurch die Schlüsselrolle für eine unmissverständliche Kommunikation ein. Er sorgt dafür, dass die Softwareentwickler nur die gewünschten und wichtigen Funktionen programmieren. Die Anforderungen gewinnt er aus den Ideen, Sorgen, Bedürfnissen, Wünschen und Träumen des Stakeholders und beschreibt diese adäquat für das Entwicklungsteam. Die Anforderungen sind für alle Beteiligten klar und verbindlich festgehalten. Um Spätfolgen einer falsch erhobenen Anforderung frühzeitig zu umgehen, denn je später ein Fehler während eines Projektes entdeckt wird – desto höher die Kosten, werden die Anforderungen von allen Stakeholdern verifiziert. Die entwickelte Software wird durch den Requirements Engineer validiert, d.h. er prüft ob die Qualitätskriterien der Anforderungen erfüllt wurden und somit ob das Richtige programmiert wurde.
Nun der Erfolg eines guten Requirements Engineerings spricht für sich. Ob beim Autokauf oder IT-Projekt ein gutes Anforderungsmanagement spart Geld und sorgt dafür, dass wir das gewünschte Produkt erhalten.