Von der Idee zum Produkt: Requirements Engineering gibt die Richtung vor
Anforderungen sind ein zentraler Bestandteil jeder Entwicklungsarbeit. Nur wer die wesentlichen Anforderungen an das zu entwickelnde System umfassend kennt, kann das richtige Produkt entwickeln und dessen Entstehung effektiv planen. Das betrifft insbesondere die Erstellung von Zeit- und Kostenprognosen. Die Ermittlung von Anforderungen gehört zu den Hauptaufgaben des Requirements Engineers (RE).
Doch was genau ist Requirements Engineering?
Es gibt zahlreiche Definitionen von Requirements Engineering, die sich im Detail unterscheiden. Das International Requirements Engineering Board (IREB) definiert vier zentrale Aktivitäten im Bereich des Requirements Engineering und der Business Analyse:
- Die Ermittlung von Anforderungen, einschliesslich der Detaillierung und Verfeinerung.
- Die Dokumentation als angemessene Beschreibung der Anforderungen.
- Das Prüfen und Abstimmen von Anforderungen mit dem Ziel der Qualitätssicherung.
- Die Verwaltung, auch als Anforderungsmanagement bezeichnet.
Eine Hilfestellung bietet auch die Norm ISO/IEC/IEEE 29148:2018. Sie definiert den ganzen RE-Lebenszyklus und bietet Richtlinien für eine erfolgreiche Umsetzung.
Anforderungen werden dabei wie folgt beschrieben:
Anforderungen sind Ansprüche von Stakeholdern an ein System, um deren Bedürfnisse zu adressieren. Dabei kann es sich um Fähigkeiten oder Eigenschaften handeln.
Anforderungen können nach verschiedenen Kriterien gruppiert werden, wie z.B.:
- Kano (Basis-, Leistungs- und Begeisterungs-Merkmalen)
- Funktionalität
- Baugruppe
Unsere Erfahrung zeigt, dass die Gruppierung anhand der Funktionalität am häufigsten verwendet wird. Sie wird deshalb im Folgenden beschrieben. Bei der Gruppierung nach Funktionalität ist es sinnvoll, die Anforderungen in funktionale und nichtfunktionale Anforderungen zu unterteilen. Die nichtfunktionalen Anforderungen können in Qualitätsanforderungen und Randbedingungen unterteilt werden. Bei den Randbedingungen handelt es sich um nichtfunktionale Anforderungen, beispielsweise Normen, die nur mit grossem Aufwand oder gar nicht beeinflusst werden können und somit als gegeben betrachtet werden müssen. Im Gegensatz zu den Qualitätsanforderungen, welche durch den Auftraggeber verändert werden können.
Die Norm enthält zudem weitere Vorschläge, wie die Anforderungen weiter verfeinert werden könnten, um eine möglichst vollständige Spezifikation zu erhalten. Eine vollständige Spezifikation ist nur dann gegeben, wenn alle Arten von Anforderungen definiert sind. Das stellt eine wesentliche Grundlage für den Erfolg eines Entwicklungsprojekts und des daraus entstandenen Produkts dar. Allerdings stellt sich die Frage, wie man zu den Anforderungen kommt.
Ermittlung
Grundsätzlich gibt es verschiedene Quellen für Anforderungen. Dazu zählen:
- Stakeholder: Das sind interne und externe Personen oder Institutionen, die direkte oder indirekte Ansprüche an das System haben.
- Dokumente: Gesetze, Normen, Handbücher oder andere Dokumentationen können zur Erhebung von Anforderungen herangezogen werden.
- Systeme: Oft ist es hilfreich, ein Vorgängersystem oder ein
Konkurrenzprodukt zu betrachten. Darüber hinaus sind die sogenannten Umsysteme zu berücksichtigen, die Anforderungen an das zu entwickelnde System stellen.
Die relevanten Informationen werden durch den Einsatz von Ermittlungstechniken gewonnen. Dazu zählen Kreativitätstechniken, Beobachtungstechniken, Befragungstechniken sowie Artefakt-basierte Techniken. Die Ermittlungstechniken werden in Abhängigkeit von der Anforderungskategorie ausgewählt. Die CSA führt oft zu Beginn eines Projektes einen sogenannten Systems Engineering Workshop durch. In diesem werden die Hauptfunktionen des Systems, die Umsysteme und die Systemgrenzen definiert.
Dokumentation
Der erfolgreiche Einsatz von Ermittlungstechniken führt zu einer umfassenden Informationssammlung. Die Dokumentation dieser Informationen dient nicht nur dazu, dieses Wissen allen Projektbeteiligten zur Verfügung zu stellen, sondern auch um das gesammelte Wissen zu strukturieren. Die Form der Dokumentation kann zwischen natürlicher Sprache und Anforderungsmodellen oder einer Mischung aus beiden gewählt werden.
Für die Unterstützung des Requirements Lebenszyklus gibt es eine ganze Palette von Tools. Für ein effizientes und erfolgreiches RE stellen sich ebenfalls viele Anforderungen an diese Tools, welche in einem späteren Blogbeitrag erläutert werden.
Testen und Abstimmen
Sobald die Anforderungen dokumentiert sind, sollten diese überprüft und mit den anderen Anforderungen abgestimmt werden. Das kann z.B. parallel zur Dokumentation durch Rückfragen bei den betroffenen Stakeholdern oder durch ein informelles Review erfolgen. Wenn die Anforderungen einen gewissen Reifegrad erreicht haben, ist es empfehlenswert, sie einem Review zu unterziehen. So kann sichergestellt werden, dass sie den festgelegten Qualitätskriterien entsprechen. Fehlerhafte Anforderungen können die Entwicklungsaktivitäten beeinflussen. Je später ein Fehler erkannt wird, desto mehr Änderungen müssen korrigiert werden, was wiederum Zeit und Geld kostet. Es kann auch vorkommen, dass sich Anforderungen widersprechen, diese Konflikte müssen gelöst werden.
Verwaltung
Sind die Anforderungen erfasst, dokumentiert und geprüft, geht es um das Verwalten, das sogenannte Anforderungsmanagement, auch Requirements Management genannt. Es umfasst die Prozesse, die die Anforderungsanalyse und die weitere Verwendung der Anforderungen unterstützen. Es kommt beispielsweise zum Zug, wenn sich Anforderungen ändern. Aus diesem Grund empfiehlt es sich, Attribute für Anforderungen zu verwenden. Dank Filtern gibt es eine bessere Übersicht über die Anforderungsspezifikation und auch die Nachvollziehbarkeit (Traceability) kann verbessert werden. Dies ist wiederum eine grosse Hilfe bei einer Auswirkungsanalyse.
Fazit
Requirements Engineering ist ein anspruchsvolles Aufgabengebiet mit vielfältigen Tätigkeiten. Professionelles Requirements Engineering erhöht die Erfolgschancen eines Projektes, denn durch eine fundierte Analyse wird sichergestellt, dass
- das zu entwickelnde Produkt die Bedürfnisse der Stakeholder abdeckt,
- alle wesentlichen Aspekte berücksichtigt sind,
- nur das entwickelt wird, was notwendig ist.
Der anfängliche Aufwand mag hoch erscheinen, doch er lohnt sich. Man spart zukünftig viel Geld und Zeit, wenn von Anfang an in die richtige Richtung entwickelt wird.
Wir verfügen über fundierte Kenntnisse im Requirements Engineering und sind in der Lage, die jeweils geeigneten Methoden für ein Projekt auszuwählen und anzuwenden. Durch eine optimale Abstimmung auf das Projekt kann von Beginn an eine solide Grundlage für das Projekt geschaffen werden.
Gerne unterstützen wir Sie bei Ihrem Projekt. Zögern Sie nicht, uns zu kontaktieren.