Veränderliche Märkte, gestiegene Kundenanforderungen und die Digitalisierung fordern agile Methoden in Unternehmen unterschiedlichster Branchen und aller Größenordnungen. Das gilt nicht nur für die Produkt- oder Lösungsentwicklung selbst, sondern vor allem auch für das dazugehörige Anforderungsmanagement.
Denn häufig herrscht zwischen IT und Fachabteilung ein kritisches Miteinander, Misstrauen oder es wird gar gegeneinander gearbeitet. Doch die Art und Weise, wie mit Anforderungen auch in agilen Entwicklungsprojekten umgegangen wird, ist eine der wesentlichen Erfolgsfaktoren für Projekte.
Denny Lobeda, Head of Requirements Engineering der operational services GmbH & Co. KG (OS), erklärt, wie über agiles Requirements Engineering erprobte Methoden mit iterativem Vorgehen in einer permanenten Feedback-Kultur kombiniert werden können, um gemeinsam mit dem Kunden Schritt für Schritt das bestmögliche Ergebnis zu erreichen.
Das Katz-und-Maus-Spiel im Unternehmen
Die Kommunikation zwischen Fachbereichen und IT-Abteilung ist häufig geprägt von Missverständnissen und fehlender Transparenz. Die unterschiedlichen Fachsprachen führen zu Unklarheiten, weil Synonyme nicht für alle Beteiligten die gleiche Bedeutung haben. Es fehlt an Transparenz, sodass der IT nicht klar wird, was die Fachabteilungen wirklich brauchen und umgekehrt die Wünsche nicht verständlich kommuniziert werden. Der Anforderungsmanager schafft es nicht immer, zwischen beiden Parteien zu übersetzen und eine gemeinsame Verständnisbasis herzustellen. Nicht abgestimmte Anforderungen unterschiedlicher Stakeholder-Gruppen verschärfen die Situation zusätzlich. Das Ergebnis: Erwartung und Lieferung weichen häufig voneinander ab und es entsteht Unzufriedenheit auf beiden Seiten.
Studien zeigen die Folgen solcher Unstimmigkeiten: Nur 37 Prozent aller Softwareprojekte laufen erfolgreich. 21 Prozent werden abgebrochen und 42 Prozent überschreiten Zeit- oder Budgetvorgaben. Hinzu kommen unterschiedliche inhaltliche Risiken: Missverständliche Spezifikationen führen dazu, dass die Entwickler in die falsche Richtung arbeiten. Vergessene Stakeholder, die sich nachträglich in den Prozess einbringen, verzögern den Projektverlauf und erzeugen zusätzliche Kosten durch Änderungen. Und wenn die Anforderungen sich während der Entwicklung verändern und dabei undokumentiert bleiben, wird das System möglicherweise gegen veraltete Vorgaben getestet, sodass am Ende nicht das gewünschte Ergebnis entsteht. In Anbetracht sich ständig verändernder Kundenanforderungen, die eine immer schnellere Time to Market verlangen, können Unternehmen sich solche internen Blockaden nicht leisten. Ebenso wie die Prozesse in der Entwicklung selbst, muss auch der Umgang mit Anforderungen zunehmend agil werden und in hybriden Modellen in das Development einfließen.
Intelligentes Anforderungsmanagement
Die Lösung für dieses Dilemma liefert ein smartes Requirements Engineering (RE), das sich an den agilen Entwicklungsprozessen orientiert und nahtlos in das Development integriert wird. Vier Säulen sind dazu notwendig:
1. Das Kano-Modell
Durch die Anwendung des Kano-Modells der Kundenzufriedenheit im Anforderungsmanagement rückt der Nutzen des (internen) Kunden in den Vordergrund. Sind die Basismerkmale (grundlegende Anforderungen), die Leistungsmerkmale (Anforderungen, die Zufriedenheit schaffen) und die Begeisterungsmerkmale (Nutzen stiftende Aspekte) klar definiert, liefert das dem Requirements Engineering eine gute Basis und eine konkrete Zielvorstellung.
2. Fokussierung
Für ein gutes Ergebnis ist es wesentlich, dass alle Beteiligten sich auf das Ziel fokussieren und klar vereinbaren, welche Anforderungen inhaltlich relevant sind, um sich auf die essenziellen Aspekte konzentrieren zu können. Hier geht es um die Akzeptanzkriterien zum fertigen Produkt, nicht um „goldene Türklinken“. Spezielle Features, die nicht im ersten Schritt notwendig sind, können auch im Nachgang noch integriert werden.
3. Smarte Anforderungen
Im Sinne der Effizienz sollten Anforderungen so definiert werden, dass diese immer den Projektzielen folgen. Auch hier gilt der Grundsatz, dieses SMART zu tun – spezifisch, messbar, attraktiv, realistisch und terminiert. Auf diese Weise entstehen nachvollziehbare Requirements, die am Ende den konkreten Bedarf des Kunden erfüllen.
4. Agile Prinzipien
Nicht zuletzt ist die Übertragung agiler Vorgehen in das Requirements Engineering von Vorteil. Neben (interner) Kundenorientierung und einer produktiven Zusammenarbeit gehören auch das iterative Vorgehen und die Offenheit gegenüber Änderungen dazu. Transparenz und eine rege Kommunikation führen zu guten Ergebnissen, für die das Team gerne geradesteht.
Gemeinsam Schritt für Schritt zum Ergebnis
Durch die Anwendung der agilen Prinzipien im Requiremenets Engineering entsteht ein iterativer Entwicklungsprozess, der Anforderungen und ihre Spezifikationen permanent neu aufnimmt und auch mit Veränderungen problemlos umgehen kann. Der Kunde gibt regelmäßig Feedback und nimmt so aktiv Einfluss auf das Endergebnis. Aufwand und Planung erfolgen gemeinsam und werden so wesentlich zuverlässiger. Darüber hinaus übernimmt das Team die Verantwortung für das Projekt und arbeitet selbständig an den erforderlichen Aufgaben. Durch informelle Kommunikation und häufige, kurze Meetings sind jederzeit alle Beteiligten informiert.
Der typische Requirements-Engineering-Zyklus besteht in dieser Vorgehensweise aus vier Schritten: 1. Ermittlung, 2. Einordnung, Strukturierung und Priorisierung, 3. Schriftliche Dokumentation und 4. Prüfung und Abstimmung der Anforderungen. Dieser Kreislauf wird in den Entwicklungssprint eingearbeitet und erfolgt vor jeder neuen Entwicklungsphase. So werden die Aufgaben vom Development-Team auf Basis der aktuellsten Anforderungen umgesetzt.
Damit das Requirements Engineering tatsächlich vollständig in die agile Produktentwicklung eingebunden wird, ist die Implementierung der Rolle des Requirements Engineers sinnvoll. Damit erhält der Product Owner Unterstützung für die Anforderungsspezifikation und weitere Tätigkeiten aus dem RE-Zyklus. Product Owner und Requiremnts Engineer agieren gemeinsam und halten Kontakt zu allen Stakeholdern und dem Team und verantworten die regelmäßigen RE-Zyklen. Vor Beginn der Entwicklung empfiehlt sich zusätzlich eine Exploration Phase, in der in einem ersten RE-Zyklus bereits die initialen Anforderungen definiert und in den Product Backlog eingegossen werden. So gibt es bereits eine Basis, an der das Development-Team sich schon vor Projektbeginn orientieren kann.
Agilität statt Anforderungsmanagement?
Auch wenn es auf den ersten Blick so erscheinen könnte, ersetzen agile Vorgehen keinesfalls Aufgaben aus dem klassischen Anforderungsmanagement. Es geht darum, bewährte Methoden leichtgewichtig anzuwenden und tiefer in die Entwicklungsprozesse zu integrieren. Die systematische Analyse und Verwaltung der Anforderungen bleiben wichtige Aspekte im Requirements Engineering. Sie fördern Kommunikation und Transparenz, sorgen für die durchgehende Einbindung aller Stakeholder, klären Verantwortlichkeiten und Prozesse und ermöglichen so eine gezielte Entwicklung im Sinne der Kundenanforderungen sowie eine schnellere Time to Market. Mit agilem Requirements Engineering steigt die Produktqualität und die Akzeptanz bei den Nutzern, weil die Entwicklung den Anwenderbedürfnissen folgt und neue Releases zeitnah auf aktualisierte Requirements reagieren. So wird aus dem Katz-und-Maus-Spiel zwischen IT und Fachabteilungen eine konstruktive Zusammenarbeit mit gegenseitigen Verständnis und schnelleren, guten Ergebnissen für alle Beteiligten.