Grafik WasserfallmodellIm voran gegangenen Beitrag hatte ich diese Aussage schon getroffen. Nachdem einige Nachfragen eingetroffen sind, möchte ich die Aussage etwas weiter ausführen. Nebenstehend ist ein typisches Wasserfall-Diagramm zu sehen. Die konkrete Benennung der Phasen kann variieren – entscheidend ist der Grundgedanke, dass eine Phase abgeschlossen wird und ihre Ergebnisse quasi in die nächste Phase ergießt. Die Ähnlichkeit zu Gantt Diagrammen und klassischen Projektplänen ist keineswegs zufällig. Diese Darstellung geht auf eine Veröffentlichung von Winston Royce aus dem Jahr 1970 zurück. Der Titel lautet MANAGING THE DEVELOPMENT OF LARGE SOFTWARE SYSTEMS. Diese Darstellung des Wasserfalls hat sich in das Bewusstsein der Softwarebranche und des Projektmanagements eingebrannt. Bei aller Kritik am Wasserfallmodell blieb der Eindruck hängen, dass es bei hinreichender Sorgfalt der Anforderungserhebung, funktionieren würde.

Anforderungs-, Change- und Scopemanagement sind genau genommen Versuche das Wasserfallmodell zu verbessern. Im Laufe der Zeit verbreiteten sich iterative Ansätze und mündeten in den 90er Jahren des letzten Jahrhunderts in agile Vorgehensweise. Das tragische Element an dieser Geschichte ist, dass die Grundaussage der Veröffentlichung eine andere ist als jene die in das Bewusstsein der Branche drang.

Winston Royce schreibt in der Zusammenfassung:

In my experience, however the simpler method has never worked on large software development efforts and the costs to recover far exceeded those required to finance the five-step process listed.

Die erwähnte „simpler method“ ist der klassische oben skizzierte Wasserfall. Die Mehrkosten durch den aufwändigeren Prozess (Iterationen) sind geringer als jene, die durch Nachbesserungen (Terminüberschreitungen) am einfachen Modell entstehen. Er schreibt also sinngemäß: „Das hat noch nie funktioniert„. Dementsprechend sind in der Veröffentlichung einige andere Grafiken enthalten, mit denen er bereits 1970 eine iterative Vorgehensweise bis hin zu wiederholtem Coding vorschlägt – das würde man heute Refactoring nennen.

Ein wenig erinnert mich das an die Legende vom Eisengehalt des Spinats 😉

… den bis heute noch gelegentlich behaupteten, außergewöhnlich hohen Eisenanteil besitzt Spinat jedoch nicht – der Schweizer Physiologe Gustav von Bunge hatte 1890 den Wert zwar richtig berechnet, doch bezogen sich seine Angaben auf getrockneten Spinat, wurden aber später irrtümlich frischem Spinat zugeschrieben, der zu ca. 90 % aus Wasser besteht. (Wikipedia)