Technologie-Trends

Anforderungsmanagement in der agilen Softwareentwicklung

Lesedauer ca: 5 Minuten

Das Anforderungsmanagement in der agilen Softwareentwicklung, ist eine komplexe Aufgabe, bei der die Produktanforderungen aus einer Vielzahl von Blickwinkeln, Rollen, Verantwortlichkeiten und Zielen betrachtet werden. Die Anforderungserhebung im Rahmen des Anforderungsmanagements ist die effektivste Phase des Softwareentwicklungsprozesses.

Sie zielt darauf ab, gute Anforderungen von Stakeholdern auf die richtige Weise zu sammeln. Jedes Softwareunternehmen strebt es an, qualitativ hochwertige Softwareprodukte zu entwickeln, die die Anforderungen der Benutzer erfüllen.

Daher ist es notwendig, die Praktiken des Requirements Engineering in jeder Phase des Softwareentwicklungsprozesses anzuwenden. In diesem Artikel beschreiben wir die wichtigsten Phasen und Aspekte des Anforderungsmanagements in der Softwareentwicklung und leisten damit einen Beitrag für Organisationen, die eine Optimierung dieses Prozesses anstreben.

Was ist eine Anforderung?

Anforderungen sind Attribute, die wir vor der Erstellung von Produkten ermitteln. Es ist eine Bedingung oder Fähigkeit, die ein System oder eine Systemkomponente erfüllen oder besitzen muss, um einen Vertrag, eine Norm, eine Spezifikation oder andere formal auferlegte Dokumente zu erfüllen.

Eine wohlformulierte Anforderung im Rahmen der Softwareentwicklung ist eine Aussage über die Systemfunktionalität, die die Kundenbedürfnisse befriedigt. Es besteht eine wechselseitige Beziehung zwischen Menschen und Maschinen bei der Sammlung von Anforderungen, die zur Herstellung von hochwertigen Produkten beitragen kann.

Anforderungen werden üblicherweise in funktionale und nicht-funktionale unterteilt.

Eine funktionale Anforderung ist eine Anforderung, die eine Aktion spezifiziert, die von einem System ausgeführt wird, ohne physikalische Beschränkungen zu berücksichtigen.

Nicht-funktionale Anforderungen spezifizieren Systemeigenschaften wie Umgebungs- und Implementierungseinschränkungen, Leistung, Plattformabhängigkeiten, Wartbarkeit, Erweiterbarkeit oder Zuverlässigkeit.

Die Aktivitäten des Requirements Engineering erstrecken sich über den gesamten Lebenszyklus der System- und Softwareentwicklung. Traditionell wird das Anforderungsmanagement zu Beginn des Systementwicklungslebenszyklus durchgeführt.

Bei der Entwicklung großer und komplexer Systeme hat sich jedoch herausgestellt, dass es in der Praxis unmöglich ist, einen genauen Satz von Anforderungen zu entwickeln, der über Monate oder Jahre der Entwicklung hinweg stabil bleibt. Es bedarf somit der regelmäßigen Überprüfung der Aktualität solcher Bedingungen an das Softwareprodukt. Daher ist das Requirements Engineering ein inkrementeller und iterativer Prozess, der parallel zu anderen Systementwicklungsaktivitäten wie Design, Kodierung usw. durchgeführt wird. Dieser Sachverhalt kann sich jedoch auch positiv auf das Anforderungsmangement in der agilen Softwareentwicklung auswirken. Wie die Entwicklung von Individualsoftware im Hinblick auf die iterative und inkrementelle Lieferung von Artefakten gestaltet werden kann und welche Vorteile sich daraus ergeben, haben wir bereits in einem früheren Beitrag für Sie beschrieben.

EPICS als Ansatz des Anforderungsmanagements in der agilen Softwareentwicklung

Insbesondere bei umfangreichen Projekten oder bei der Entwicklung komplexer Systeme im Rahmen der agilen Softwareentwicklung, kommt es vor, dass die Anzahl der Anforderungen in hohe dreistellige Bereiche rückt. Daher raten wir zum Einsatz von Epics als zusätzliche Methode zur Formulierung von User-Stories, um das Anforderungsmanagement in der agilen Softwareentwicklung noch attraktiver zu gestalten.

Um eine Gruppierung oder Zusammengehörigkeit von mehreren Features zu ermöglichen, können diese einem Epic zugeordnet werden. Epics setzen sich aus vielen Features und Funktionalitäten zusammen, die auf die Umsetzung einer umfangreichen Vision abzielen. Diese Vorhaben können mehrere Sprints und Entwicklungsiterationen umfassen. Daher ist es sinnvoll solch umfangreiche Feature-Anfragen in kleinere User-Stories aufzuteilen, um diese Schritt für Schritt und unter Berücksichtigung des Zeitplans / der Roadmap zu implementieren. Mit Hilfe dieser Vorgehensweise kann selbst im Falle von hunderten von Anforderungen ein transparentes und übersichtliches System für die Verwaltung der Requirements gewährleistet werden.

So könnte im Falle des obigen Beispiels zunächst ein Epic mit der Bezeichnung „ganzheitliche Verwaltung der Rechnungsbelege“ kreiert werden. Im Rahmen der Anforderungserhebung werden anschließend alle zugehörigen Anforderungen, die sich auf die Erreichung dieser Vision beziehen, mit dem Epic verknüpft.

Validierung und Prüfung im Rahmen des Anforderungsmanagements in der agilen Softwareentwicklung

Nach der ordnungsgemäßen Erhebung, Dokumentation und gegebenenfalls der Gruppierung der Anforderungen mit Hilfe von Epics, sollte vor dem Beginn der Softwareentwicklung eine Validierung und Prüfung stattfinden. Wir empfehlen, dass innerhalb dieser Phase ein Austausch mit den Stakeholdern in einer solchen Form stattfindet, dass der Fokus der Diskussion auf der Priorisierung von Anforderungen liegt. Diese Priorisierung ist insofern essenziell, da sie als Grundlage für die Erstellung der Meilensteinplanung oder der Roadmap gilt. In welcher Art und Weise die Priorisierung stattfindet, kann mit den Stakeholdern vereinbart werden. Viele Softwareentwickler-Teams setzen dabei auf ein Stufensystem durch Labels wie beispielsweise low, medium oder high mit Hilfe derer die Anforderungen versehen werden.

Die von den Stakeholdern höher priorisierten Anforderungen werden dann entsprechend früh im Zeitplan oder der Roadmap berücksichtigt, um möglichst zeitnah einen funktionierenden MVP (Minimum Viable Product) oder Prototypen liefern zu können. Dadurch erhalten die Stakeholder die Möglichkeit die von Ihnen eingereichten Anforderungen anhand eines nutzbaren Produktes zu evaluieren und gegebenenfalls Anpassungen oder Änderungen mit den Entwicklern zu vereinbaren.

Diese Methode lässt sich im agilen Softwareentwicklungskontext nach der Methode Scrum gut realisieren, da im Rahmen von meistens zweiwöchentlichen Sprints, Arbeitspakete von den Entwicklern geliefert werden. Diese kontinuierliche Umsetzung der Anforderungen und Aufgaben ermöglicht es dem Auftragnehmer die Nutzer stets in den Entwicklungsprozess einzubeziehen und Risiken aufgrund nichterfüllter Anforderungen zu vermeiden. Im Rahmen unseres Blogbeitrages zu diesem Thema, haben wir bereits über hervorragende Strategien und Ansätze zur Entwicklung von Individualsoftware berichtet.

Integration und Automatisierung des Anforderungsmanagements

Wie das Anforderungsmanagement in der agilen Softwareentwicklung, basierend auf dem vorgestellten Modell, entsprechend in die Entwicklungsprozesse integriert und automatisiert werden kann, beschreiben wir im zweiten Teil dieses Blogbeitrags.

Sie haben eine Projektidee?​​​

Vereinbaren Sie jetzt ein unverbindliches Strategiegespräch mit einem unserer Experten.