Start > Dienstleistungen > Entwicklung > Anforderungserhebung in der agilen Softwareentwicklung

Anforderungserhebung in der agilen Softwareentwicklung

Der Weg lohnt sich, sowohl Kunde als auch Entwickler profitieren von dieser Methode der Produktentwicklung.

Anforderungserhebung im klassischen Sinne

Die Erhebung und Definition der Anforderung an ein Endprodukt, inklusive Benutzeranforderungen an dieses Produkt, findet in der klassischen Vorgehensweise im terminierten Rahmen vor der Realisierung des Auftrages statt. Abgeschlossen wird er durch die Aufnahme im Pflichtenheft. Im weiteren Projektverlauf realisiert der Auftragnehmer die Software anhand der definierten Anforderungen und der Auftraggeber nimmt das Softwareprodukt am Ende anhand dieser Kriterien ab.

 beck-onlineTablet.jpg

Anforderungen in der agilen Softwareentwicklung

Die Erfahrung hat uns gelehrt, dass eine Anforderungserhebung die vor der Umsetzung einer Software stattfindet, nie vollständig oder so exakt definiert ist, dass sie ohne weitere Änderungen auskommt. Anhand dieser Aussage erscheint es paradox, dass das Pflichtenheft die Lösungen für alle Anforderungen an eine zu entwickelnde Software definiert. In der agilen Vorgehensweise ist sowohl die Definition, als auch die Erhebung der Anforderungen ein kontinuierlicher Prozess, der über die gesamte Dauer des Projektes durch den Auftraggeber stattfindet.

Findet die Erhebung der Anforderung zu Beginn überwiegend durch den Kunden statt, ändert sich dieser Zustand durch den Einfluss einer iterativen inkrementellen Entwicklung. Kurze Entwicklungszyklen an deren Ende immer ein ausführbares Software-Artefakt steht, bieten dem Kunden die Möglichkeit die Software permanent zu erleben.

Software erleben hat Auswirkung auf die Anforderung(en)

Viele kurze Entwicklungszyklen sind ein Kernaspekt der agilen Softwareentwicklung. Am Ende eines Zyklus steht ein ausführbares Stück Software, das vom Kunde zu testen ist. Durch dieses Erleben der Software, sowie den Erfahrungen aus der „Teilabnahme“, kann der Kunde situationsbedingt entscheiden, welche Anforderungen als nächstes zu realisieren sind. Eventuell muss er neue Anforderungen erheben, da sich möglicherweise andere Funktionen in den Vordergrund drängen. Neue Anforderungen müssen sich dabei nicht ausschließlich aus Sicht der Stakeholder ergeben. Es besteht die Möglichkeit, dass vor dem Projekt unbekannte Systembedingungen nicht bedacht wurden, die bei der erfolgreichen Entwicklung der Software zu berücksichtigen sind. In der klassischen Form wird möglicherweise ein zusätzliches Auftragspaket entwickelt, oder die Anforderung in einem bürokratischen Akt anhand eines Änderungsprozesses in das Pflichtenheft aufgenommen. Die agile Arbeitsweise wertet dabei die Kommunikation mit dem Kunde höher als Vertragsverhandlungen und setzt dies um, in dem der Kunde vor einem Entwicklungszyklus bestimmt, welche Anforderungen als nächstes zu implementieren sind.

Kommunikation und Zusammenarbeit

Damit agile Softwareentwicklung erfolgreich ist, muss der Auftraggeber aktiv in das Projekt eingebunden werden. Für die Erhebung und Definition von Anforderungen müssen vom Auftraggeber folgende Aufgaben wahrgenommen werden:

  1. Kontinuierliches Erfassen und Formulieren von Kundenanforderungen

  2. Priorisierung der Anforderungen vor deren Umsetzung

  3. Kommunizieren der Anforderungen an den Auftragnehmer vor Beginn einer neuen Iteration

Kritische Auseinandersetzung

In einem Markt, der sich in einem stetigen Wandel befindet und in dem sich Anforderungen an Software täglich ändern können, bietet die agile Vorgehensweise Möglichkeiten, angemessen und kundenfreundlich zu reagieren. Dem gegenüber steht das Fehlen von verbindlichen Anforderungen als Vertragsbestandteil, welches der Kunde in Kauf nehmen muss. Auf den zweiten Blick gewinnt der Kunde die Flexibilität, auf unvorhersehbare Ereignisse zu reagieren und somit ein Produkt zu erhalten, welches genau auf seine Bedürfnisse zugeschnitten ist.