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.

 

Wir treiben Ihre Digitalisierung voran!

Wir würden Sie gerne zu einer kostenlosen Erstberatung einladen,
um mit Ihnen über Ihr Anliegen zu sprechen und Sie bei der Realisierung
Ihrer Vision zu unterstützen!

 

Prozessmodell für das Anforderungsmanagement

In der Informatik und insbesondere in der systematischen Entwicklung von Produkten, ist die Einhaltung oder Orientierung an Vorgehensmodellen ein wichtiger Erfolgsfaktor. Die wichtigsten Phasen und Aspekte beim Anforderungsmanagement in der agilen Softwareentwicklung sind im nachfolgenden Schaubild abgebildet und werden im Rahmen dieses Beitrags näher beschrieben [1].

 

 

User Stories als Ansatz des Anforderungsmanagements in der agilen Softwareentwicklung

Im Kontext der agilen Softwareentwicklung sind User Stories ein erfolgreicher Ansatz des Anforderungsmanagements, um ganzheitlich formulierte und eindeutige Anforderungen zu erheben. User Stories folgen nämlich einem standardisierten, vordefinierten Format, um drei Aspekte einer Anforderung zu erfassen:

1) Wer will die Funktionalität?

2) Welche Funktionalität wollen die Stakeholder von dem System?

3) Warum brauchen die Stakeholder diese Funktionalität?

Ein Beispiel einer User Story soll diesen Ansatz veranschaulichen:

 

„Als <Rolle> wird die <Funktionalität> benötigt, um folgende <Vorteile> zu erhalten.“

„Als <Mitarbeiter im Rechnungswesen> benötige ich eine <Funktion, die es mir ermöglicht meine Belege so zu verwalten, dass ich diese nach den Attributen X, Y und Z sortieren kann>, um <bei einer Prüfung eines Amtes jederzeit in der Lage zu sein, diese zügig aufzurufen>.“

 

Diese Vorgehensweise ist essenziell, damit sowohl Auftraggeber, Auftragnehmer und Entwickler alle notwendigen Informationen bezüglich einer Anforderung erhalten, um folglich in der Lage zu sein, diese entsprechend der Zufriedenheit von Stakeholdern umzusetzen. Ein weiterer Vorteil, der sich aus dieser Methode ergibt, ist das Vermeiden von Fehlinterpretationen. Durch die Minimierung von Risiken und möglichen Fehlerquellen, können zusätzlicher Kosten- und Zeitaufwand verhindert werden. Somit dient der Einsatz einer solchen Methode für die Erhebung von Anforderungen als Argument für die beteiligten Parteien – sowohl für Stakeholder als auch Entwickler. Daher raten wir zur Einhaltung dieser Methode im Rahmen des Anforderungsmanagements in der agilen Softwareentwicklung.

 

1

Wir verstehen Ihre Anforderungen und Ihre Vision!

1

Ganzheitliche Produktentwicklung und breites Know-How!

1

Wir begleiten Sie langfristig und sind für Sie da!

 

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.

 

CRM in kleinen und mittelständischen Unternehmen
e-commerce für kleine und mittelständische unternehmen
Automatisierung von Workflows

 

 

1 Antwort

Trackbacks & Pingbacks

  1. […] ersten Teil dieser Serie, haben wir die Ansätze für ein erfolgreiches Anforderungsmanagement im Rahmen der agilen Softwareentwicklung beschrieben. Dabei haben wir alle wichtigen Aspekte des Anforderungsmanagements [1] aufgedeckt und […]

Beitrag kommentieren

Wir freuen uns auf Ihr Feedback!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diesen Beitrag bewerten