Projektrisiken mit zeitgemäßer, agiler Softwareentwicklung minimieren

Das traditionelle Wasserfallmodell als Herangehensweise bei der Software-Entwicklung behandelt Analyse, Design, Implementierung und Tests als diskrete Phasen in einem Softwareprojekt. Die strikte Trennung dieser Projektphasen ist in vielen Fällen mit Nachteilen sowohl für Auftraggeber als auch für Auftragnehmer verbunden

Sobald ein Projekt anfängt, sich harten Budgetgrenzen hinsichtlich Entwicklungszeit und Kosten anzunähern, ist das Testen die einzige verbleibende Phase. Dies bedeutet, dass sich die Stakeholder auch bei ansonsten guten Projekte oft gezwungen sehen, Tests zu verkürzen – dadurch leidet dann oft die Qualität.

Das Wasserfallmodell birgt Projektrisiken

Weil die funktionierende Software erst gegen Ende des Projekts erstellt wird, weiß man nie wirklich, wo man sich in einem Wasserfall-Projekt befindet. Die letzten 20% des Projekts scheinen immer 80% der Zeit zu beanspruchen. Dies ist einer der Hauptgründe, warum in letzter Zeit dem Konzept der Agilität mehr Bedeutung in der Entwicklung zugemessen wird. Weiterhin hat man ein erhöhtes Terminrisiko, da man nie wirklich weiß, ob man es bis zum Ende schaffen wird. Man hat auch ein technisches Risiko, weil man sein Design oder seine Architektur erst sehr spät im Projekt testen kann. Und man hat nicht zuletzt auch ein grundsätzliches Produktrisiko, weil man sich nicht einmal sicher sein kann, ob man sein Projekt richtig aufgebaut hat, bis es zu spät ist, um noch wesentliche Änderungen vorzunehmen. In komplexen Softwareprojekten ist es von Vorteil, sich von Beginn an an den Umweltbedingungen zu orientieren die im späteren Livebetrieb der Software vorherrschen werden.

Agile Softwareentwicklung hat Vorteile für alle Beteiligten

Anstatt diese festgelegten Stufen des Wasserfallmodells abzuarbeiten, glauben Agilisten, dass dies jeweils als kontinuierliche Aktivitäten betrachtet werden sollten. Von dieser kontinuierlichen Herangehensweise verspricht man sich bei der Umstellung auf Agile Softwareentwicklung Vorteile:

Die Qualität verbessert sich, da die Tests vom ersten Tag an beginnen können. Die Sichtbarkeit des tatsächlichen Projektfortschritts verbessert sich, weil man weiß, dass ein Projekt zur Hälfte abgearbeitet ist, sobald die Hälfte der Features umgesetzt wurden. Das Risiko wird reduziert, weil alle Beteiligten schon frühzeitig Feedback erhalten, und Kunden sind zufriedener, weil sie Änderungen vornehmen können, ohne exorbitante Kosten zu bezahlen.

Agilität hat nichts Magisches an sich. Es sagt im Grunde: “Bringe Dein Entwicklungsteam und Deinen Kunden so eng wie möglich zusammen, gebe ihnen, was sie brauchen, und mische Sie dich danach so wenig wie möglich ein”. Wer Mitarbeiter hat, die in Sachen Agile Softwareentwicklung über Erfahrungen verfügen und die es mögen, verantwortlich zu sein, Initiative zu ergreifen und Dinge zu erledigen, wird feststellen, dass Agile Softwareentwicklung keine Nachteile mit sich bringt, sofern die Rahmenbedingungen stimmen. Insbesondere müssen die beteiligten Mitarbeiter und die Geschäftsführung tatsächlich von den Vorteilen der Agilen Entwicklung mit Methoden wie SCRUM und Holygraphie überzeugt sein.

Agile Entwicklung ist auch nicht Anti-Dokumentation, obwohl dies manchmal behauptet wird. Tatsächlich ist es so, dass Agile Entwicklung keine Dokumentation ausschließlich aus Gründen der Dokumentation vorsieht. Die Dokumentation wird wie jedes andere Ergebnis in einem Agile-Projekt behandelt. Es wird wie jede andere User Story geschätzt, sortiert und priorisiert.
Agile Entwicklung sieht Dokumentation nicht als Kommunikationsmittel sondern bevorzugt die Kommunikation von Angesicht zu Angesicht, anstatt sich strikt auf das geschriebene Wort zu verlassen.