Im Bereich des Requirements Engineering (RE) wird immer häufiger auch eine Zertifizierung gefordert, mit der das eigene Wissen und die eigene Erfahrung nachgewiesen werden kann. Mit einer Zertifizierung wird darüber hinaus auch ein einheitliches Vorgehen, nach diesem weit verbreitetem Standard im Requirements Engineering, definiert.
Was ist Requirements Engineering?
Requirements Engineering besteht aus Ermittlung, Dokumentation, Abstimmung, Prüfung und Verwaltung von Anforderungen. Anforderungen sind dabei alle Aussagen über Möglichkeiten oder Qualitäten, über die ein System verfügen soll. Zum Beispiel könnte es folgende Anforderungen geben:
- Nutzer sollen sich per Username und Passwort einloggen können
- Die Webseite soll im Normalbetrieb unter geringer Last, innerhalb von einer Sekunde, aufgebaut werden
Diese Informationen erfahren die Requirements Engineers von den Stakeholder:innen (alle Personen die Beteiligt sind oder ein Interesse am Produkt haben).
Fallbeispiel
Im Folgenden werden an dem Beispiel "Nutzer sollen sich per Username und Passwort einloggen können" die Anforderungen untersucht:
Ermittlung
Ermittlung würde in diesem Beispiel bedeuten, von einem Stakeholder oder bestehenden Dokumenten alle notwendigen Informationen zur Anforderung zu erhalten.
- Gibt es nur einen Nutzernamen oder auch eine E-Mail-Adresse zum Login?
Dokumentation
Die aufgenommenen Informationen würden dann so dokumentiert werden, dass diese umgesetzt werden können, beispielsweise in Form von Texten oder Prozessdiagrammen.
- Es wird spezifiziert, was nach einem erfolgreichen Login passiert, ob es im wiederholten Fehlerfall eine Sperrung gibt, welche Logindaten es gibt (Nutzername, E-Mail-Adresse, Passwort) usw.
Abstimmung und Prüfung
Im Anschluss würden die im vorigen Punkt erstellten Dokumente einer Prüfung unterzogen werden, um sicherzustellen, dass diese korrekt dargestellt und alle wichtigen Punkte enthalten sind.
- Es wird geprüft, ob die Dokumentation die Wünsche/Vorstellungen der Stakeholder:innen wiedergibt.
Verwaltung
Alle Anforderungen müssen danach in einem System verwaltet werden. Alle Dokumente und Informationen werden an eine Anforderung angehängt, es werden die (geplanten) Umsetzungen verlinkt und diese mit verwandten Anforderungen verknüpft und so weiter.
- Verlinkung mit weiteren Anforderungen, beispielsweise einer "Passwort vergessen"-Funktionalität, und mit den Stories in der Aufgabenverwaltung (bei agilem Vorgehen); gegebenenfalls auch mit den Tickets zu gefundenen Fehlern, Tickets zu Testfällen etc.
Warum wird das Requirements Engineering benötigt?
Wie aus der unteren Grafik hervorgeht, wird das Beheben eines Fehlers umso teurer, je später dieser gefunden wird. Dies rührt daher, dass mehr Stellen - Programmierung, Dokumentation, Tests - geändert werden müssen und darüber hinaus gegebenenfalls auch Produktivreleases mit allen Nachteilen stattfinden müssen.
Aber nicht nur die Kosten, sondern auch die Zufriedenheit der Stakeholder:innen spielt in diesem Zusammenhang eine große Rolle. Wenn das Ergebnis nicht dem entspricht, was gewünscht, erwartet und angefordert wurde, sinkt die Lust oder Motivation, das entsprechende Produkt zu nutzen.
Davon abgesehen gibt es selbstverständlich auch Anforderungen, die sich aus Gesetzen, Normen und Standards ergeben. Wenn diese nicht eingehalten werden, gibt es eventuell keine Zertifizierung oder das Produkt darf nicht vertrieben bzw. genutzt werden. Es gibt also unterschiedliche Gründe, warum Anforderungen auf professionelle Art erhoben, dokumentiert und verwaltet werden müssen.