Vier Tipps für die Softwareentwicklung

Wenn Anforderungen sich ständig ändern

24.03.2011
Von Michael Strauß
Nachträgliche Änderungen sind immer ein Ärgernis, doch in der Softwareentwicklung sind sie nie komplett auszuschließen. Dies ist kein Grund zu Verzweifeln, wenn man effizient und schnell darauf reagieren kann.
Michael Strauß, MaibornWolff et al.
Michael Strauß, MaibornWolff et al.
Foto: MaibornWolff et al

Wer je mit Softwareentwicklung zu tun hatte, weiß, dass klare Anforderungen einer der kritischen Erfolgsfaktoren für das Gelingen eines Projekts sind. Leider kommt es immer wieder vor, dass nach einer vermeintlich erfolgreich abgeschlossenen Spezifikation noch Änderungen am System notwendig werden. Denn Systems verändern sich mit dem Markt und den geschäftlichen Anforderungen.

Das Problem: Ein Umbau droht schnell, aufwändiger zu werden als ein Neubau. Nachträgliche Änderungen hinsichtlich der Anforderungen oder Spezifikationen führen zu erheblichen Schwierigkeiten und Risiken in Projekten. Trotzdem werden sie oft stiefmütterlich behandelt oder sogar völlig ignoriert. Das Resultat sind entweder Lösungen, die Kundenbelange unzureichend widerspiegeln, oder aber zusätzliche Kosten, die am Ende möglicherweise sogar die anvisierten Vorteile der Software übersteigen. Wie lässt sich das vermeiden? Und wodurch entsteht der Änderungsbedarf eigentlich?

Ursachenforschung

In Softwareprojekten hat wohl jeder schon einmal die Frage vernommen: "Wieso ändert sich unsere Spezifikation immer noch? Ich dachte die Analyse sei abgeschlossen, und die Anforderungen seien abgenommen." Die Projektbeteiligten reagieren darauf meist mit einem Schulterzucken. Scheinbar entstehend Änderungen aus dem Nichts - ohne eine konkrete Kundenanfrage.

In einem klassischen Softwareprojekt erheben am Anfang die Business-Analysten im Rahmen einer Spezifikationsphase die Anforderungen, die sie dann dokumentieren, mit den Fachbereichen abstimmen und freigegeben. Diese Spezifikationen bilden die Basis, auf der Architekten, Softwareentwickler und Tester ihre Konzepte, ausführbaren Code oder Testfälle erstellen. Mit dieser Weiterverarbeitung werden die Anforderungen aber aus einem anderen Blickwinkel beleuchtet. Das führt unweigerlich dazu, dass Lücken, Widersprüche oder andere Mängel in den Anforderungen auftauchen.