IT-Projektmanagement und Requirements Engineering – Ermittlung von Anforderungen in Projekten

Requirements Engineering: Eine Disziplin, die in IT-Projekten immer mehr jene Wertschätzung erfährt, die sie schon lange verdient. Denn mehr und mehr Projekte sehen auch die Rolle des Requirements Engineers vor. Aber was macht ein Requirements Engineer eigentlich und wieso ist diese Rolle so wichtig für den Projekterfolg?

Der Requirements Engineer fungiert als Mittler zwischen den Stakeholdern und dem Entwicklungsteam. Zu den Kernaktivitäten zählen das Ermitteln, Prüfen, Abstimmen, Verwalten und Dokumentieren von Anforderungen an das zu entwickelnde System. Diese Aktivitäten finden nicht etwa der Reihe nach, sondern vielmehr kontinuierlich und projektbegleitend statt. Das große Ziel des Requirements Engineers ist ein Softwareprodukt, das alle ermittelten Anforderungen erfüllt und allen notwendigen Rahmenbedingungen entspricht (beispielsweise gesetzlichen, regulatorischen, korporativen Vorgaben). 

Dieser Artikel setzt den Fokus auf das Ermitteln von Anforderungen. Hierzu werden zunächst die verschiedenen Arten von Anforderungen bestimmt und im Anschluss daran werden typische Techniken zur Ermittlung von Anforderungen vorgestellt.

Arten von Anforderungen. Der Begriff »Anforderung« umfasst im Kontext des Requirements Engineerings jede geforderte Funktion und Eigenschaft eines IT-Systems, die zur Erreichung eines bestimmten Ziels notwendig oder von Stakeholdern erwünscht sind. Im Folgenden werden drei Arten der Anforderung unterschieden:

Funktionale Anforderungen definieren die vom System bereitzustellenden Funktionen. Beispiele für diese Art der Anforderungen sind das Berechnen der Laufzeit, das Anzeigen des Warenbestands oder der Versand einer Bestellung per E-Mail. Hierbei handelt es sich um fachliche Funktionen, die durch ein System unterstützt werden sollen. Die Qualitätseigenschaften hingegen legen qualitative Eigenschaften fest, die das System unterstützen sollen. Mit Qualitätseigenschaften werden keine zusätzlichen Funktionen beschrieben, sondern bereits beschriebene fachliche Funktionen um quantitative und qualitative Eigenschaften ergänzt. Beispiele hierfür sind die Unterstützung von 1.000 Bestellvorgängen pro Sekunde, die verschlüsselte Speicherung von personenbezogenen Daten oder eine Reaktionsgeschwindigkeit des Systems von weniger als eine Sekunde. Als Randbedingungen werden organisatorische oder technische Vorgaben kategorisiert, die durch das zu erstellende System erfüllt werden sollen. Typische Randbedingungen sind Gesetze oder regulatorische Vorschriften von Behörden, firmeninterne Vorgaben und Richtlinien wie ein Corporate Style Guide oder die Vorgabe eines technischen Rahmens wie die Programmiersprache oder die Zielplattform wie Windows, Linux, Android oder iOS.

Bei der Ermittlung von Anforderungen können sich für einen Requirements Engineer insbesondere folgende Punkte als Herausforderungen erweisen:

  • Kein gemeinsames Technologie-Verständnis: Stakeholder und Entwicklungsteam befinden sich nur äußerst selten auf demselben technischen Nenner, wobei diese Kluft durch die heutige Innovationsrate im IT-Bereich tendenziell größer als kleiner wird. So haben Stakeholder ein eher unscharfes Bild davon, was technisch möglich ist und was nicht. Daher muss der Requirements Engineer die ermittelten Anforderungen prüfen, abstimmen und gegebenenfalls nach Rücksprache mit den Stakeholdern entsprechend anpassen.
  • Unterschiedliche Sprache: Die Stakeholder sind in der Regel keine IT-Experten und können sich bei der Formulierung ihrer Erwartungen an das fertige Softwareprodukt keiner technischen Fachsprache bedienen. Das Entwicklungsteam benötigt jedoch klar definierte, technische Vorgaben. Der Requirements Engineer muss hier präzise Übersetzungsarbeit leisten.
  • Unbeständige Anforderungen: Die vor Projektstart ermittelten Anforderungen können sich im weiteren Verlauf des Projekts ändern, so dass der Requirements Engineer diese Änderungen erneut prüfen, abstimmen, dokumentieren und in den Gesamtkontext einbauen muss.

Techniken zur Ermittlung von Anforderungen. Bevor die spezifischen Anforderungen ermittelt werden können, muss der Requirements Engineer zunächst die vorhandenen Quellen für Anforderungen identifizieren. Diese können sein:

  • Stakeholder (etwa Nutzer, Auftraggeber, Rechtsabteilung, IT-Betrieb) haben direkten oder indirekten Einfluss auf die Anforderungen.
  • Dokumente (etwa Gesetze, Standards, Richtlinien, IT-Strategie) liefern wichtige Informationen.
  • Systeme in Betrieb (etwa Alt- und Konkurrenzsysteme) geben Hinweise auf benötigte Funktionen und Erweiterungen.

Die Abbildung zeigt verschiedene Techniken zur Anforderungsermittlung, die im Requirements Engineering Anwendung finden können. In der Regel werden die Techniken nicht isoliert, sondern in Kombination eingesetzt. Die Wahl der Ermittlungstechniken hängt stets vom jeweiligen Projekt ab. Als wesentliche Einflussfaktoren sind die folgenden drei Einflussfaktoren zu nennen: menschlichen Einflussfaktoren (soziale, gruppendynamische und kognitive Fähigkeiten der Stakeholder), fachliche und inhaltliche Einflussfaktoren (Komplexität eines Projekts kann etwa den Einsatz einer gut strukturierten, dokumentenzentrierten Technik erfordern) und organisatorische Einflussfaktoren (so werden etwa in einem knapp budgetierten Festpreisprojekt eher pragmatische Beobachtungs- und Befragungstechniken zum Einsatz kommen, anstatt Kreativitätstechniken anzuwenden).

 

Abbildung: Techniken zur Ermittlung von Anforderungen.

 

Befragungstechniken setzen voraus, dass die befragten Stakeholder fähig sind, Anforderungen explizit zu benennen. Mit dieser Technik lassen sich sowohl innovative als auch grundlegende sowie explizit geforderte Anforderungen ermitteln. Detailgrad der Anforderungen: sehr hoch.

Kreativitätstechniken eignen sich besonders für die Ermittlung von innovativen Anforderungen. Anderseits lässt sich hier durch kooperative und kreative Zusammenarbeit eine gemeinsame Systemvision erarbeiten. Detailgrad der Anforderungen: gering bis mittel.

Mit dokumentenzentrierten Techniken lassen sich insbesondere grundlegende Anforderungen ermitteln. Denn hier werden zur Anforderungsermittlung bereits vorhandene Systeme oder Dokumentationen bestehender Systeme genutzt. Detailgrad der Anforderungen: sehr hoch.

Auch die Beobachtungstechnik eignet sich bestens für die Ermittlung von grundlegenden Anforderungen, da der Requirements Engineer Arbeitsprozesse beobachten und dokumentieren kann, um letztendlich Anforderungen anleiten zu können. Detailgrad der Anforderungen: mittel.

Prototyping ist eine hilfreiche Technik, um innovative Anforderungen zu ermitteln. Denn hier werden initiale Systemversionen (sog. Prototypen) erstellt, wodurch ein tieferes Problemverständnis und Wissen über potenzielle Lösungen erlangt wird. Prototypen können unterschiedlicher Natur sein, wie etwa analoge Handskizzen oder digitale Prototypen. Detailgrad der Anforderungen: gering bis sehr hoch.

Unterstützende Techniken wie Mindmaps oder audiovisuelle Aufzeichnungen können bei der Anwendung der anderen Techniken behilflich sein und die Bedarfsermittlung unterstützen.


Prof. Dr. Tobias Brückmann,
Gründer und Geschäftsführer
der CampusLab GmbH
www.campus-lab.de

 

 

Illustration: © rodrigobark /shutterstock.com