CW-Subnets     |     Executive Briefings     |     Blogs & Forum     |     CW-TV     |     Newsletter     |     RSS
Schließen
Dock ein-/ausblenden
Software Infrastruktur

Entwicklung

Agile - das Aus für Wasserfall?

Drucken |  Empfehlen |  PDF |  Merken
Viele Softwareentwickler sagen ein Aussterben des klassischen Waterfall-Vorgehens voraus. Zu früh, sagt Anton Dechko von SaM Solutions.
Ein Plädoyer für die Entwicklung nach dem klassischen Waterfall-Vorgehen: Anton Dechko, SaM Solutions GmbH.
Ein Plädoyer für die Entwicklung nach dem klassischen Waterfall-Vorgehen: Anton Dechko, SaM Solutions GmbH.
Ein Plädoyer für die Entwicklung nach dem klassischen Waterfall-Vorgehen: Anton Dechko, SaM Solutions GmbH.

Wasserfall beziehungsweise Waterfall als Methode der Softwareentwicklung ist tot, ein Hoch auf agile Methoden wie Scrum - diese Meinung dürften viele Softwareentwickler teilen. Aber stimmt diese gängige Überzeugung auch? Die Antwort lautet Nein! Wenn man den Wasserfall richtig verwendet, kann man mit ihm ebenso effizient wie mit agilen Methoden arbeiten. Bei Applikationen mit zwingend notwendigen, kritischen Systemeigenschaften hat er sogar deutliche Vorzüge.

Um diese Position zu verdeutlichen, sollen hier zunächst die wichtigsten Vorurteile und Überzeugungen zu Waterfall kurz dargestellt und diskutiert werden. Grundsätzlich: Waterfall ist eine alte, man kann auch sagen bewährte Methode zur sequenziellen, schrittweisen Entwicklung von Software, die bereits in den 70er Jahren des vorigen Jahrhunderts formuliert wurde. Sie heißt Waterfall, da in einem mehrteiligen Prozess von Stufe zu Stufe vorgegangen wird, ähnlich wie manche Wasserfälle fallen. Die verschiedenen Phasen im Entwicklungsprozess werden entsprechend der Reihe nach abgearbeitet. So weit, so gut. Was sind nun aber die häufigsten Einwände gegenüber dieser doch plausibel klingenden Vorgehensweise?

Kritikpunkt Dokumentation

"Waterfall ist ineffektiv und veraltet - agile Methoden wie Scrum sind modern und produktiv", so eine typische Einschätzung oder Fehleinschätzung. Sie geht davon aus, dass jedes Projekt unter Waterfall überdokumentiert ist und jeder einzelne Schritt zur Behebung auftretender, unerwarteter Probleme Monate dauert.

Tatsächlich aber benötigen agile Methoden wie Scrum ebenso viele, den Entwicklungsprozess begleitende Dokumente wie Waterfall. Auf eine Spezifizierung der Anforderungen, die Dokumentation der Architektur oder die Festlegung von Testszenarien wird auch hier nicht verzichtet.

Die Vor- und Nachteile agiler Softwareentwicklung.
Die Vor- und Nachteile agiler Softwareentwicklung.
Die Vor- und Nachteile agiler Softwareentwicklung.

Der wesentliche Unterschied besteht darin, dass in agilen Projekten diese Dokumente parallel zum Entwicklungsprozess und typischerweise als eher informeller Text erstellt werden. Der so genannte End-User versteht diese informellen Texte besser und sieht Ergebnisse der Entwicklung unmittelbar, da der agile Ansatz auf eine schnelle Umsetzung aus ist.

Manchmal ist dies von Wert, manchmal auch nicht. Es führt aber kein Weg daran vorbei, egal in welchem Prozessmodell, eine solide Dokumentation zu erstellen. Niemand kann ungezählte Zeilen von undokumentiertem Code pflegen, warten, erweitern oder verbessern. Die Frage ist nur, an welcher Stelle im Prozess diese Dokumentation erstellt wird: Vorab wie bei Waterfall oder begleitend zur Entwicklung wie etwa bei Scrum.

(6 Beiträge), 
Kommentieren
SThols
Hallo Herr Dechko! Es lebe der Wasserfall! Das haben zahlreiche agile Vordenker schon vor Jahren entdeckt und folgerichtig in 2006 die Konferenz ?Waterfall 2006? (Ort: Niagara Falls) abgehalten: http://www.waterfall2006.com/ Die Keynotes waren seinerzeit wirkliche Wegweisend: Put Testing Where It Belongs--At the End by Brian Marick Dead Fish Can't Swim But They Can Float Down a Waterfall by Tim Lister Extreme Programming Uninstalled by Ron Jeffries Super Model Driven Architecture: An Update From the OMG by Tyra Banks Aber auch die Tutorials hatten es in sich (Auszug): Avoiding the Seven Pitfalls of Lean by Mary Poppendieck Pair Managing: Two Managers per Programmer by Jim Highsmith Very Large Projects: How to Go So Slow No One Knows You'll Never Deliver by Jutta Eckstein Refuctoring by Jason Gorman User Stories and Other Lies Users Tell Us by Mike Cohn etc. Und außerdem: Wer will schon die Zusammenarbeit mit dem Kunden wichtiger einschätzen, als Vertragsverhandlungen. Wem kann schon funktionierende Software wichtiger sein als umfassende Dokumentation. Und das Individuen wichtiger sein sollen als Prozesse? Wer will das schon? Auch das Reagieren auf Veränderung wird überschätzt; das Befolgen eines in Stein gemeißelten Plans ist doch viel besser! zum Beitrag

think agile
Der Autor verliert sich bei dem Vergleich meiner Ansicht nach auf Nebenkriegsschauplätzen. Agile Methoden können in allen Umfeldern sinnvoll eingesetzt werden. Habe ich z.B. formale Dokumentationsanforderungen, kann ich die Definition of Done entsprechend vereinbaren. In der DoD kann ich auch bei bedarf festlegen, daß eine Dokumentation auch reviewed sein muss, bevor sie als fertig gilt. Die zweite zentrale Botschaft des Autors zielt auf spezifiche nonfunktionale Anforderungen bzgl. Performance, Skalierbarkeit oder Sicherheit. Mir dazu nicht ansatzweise klar, was dies mit einem Vorgehensmodell zu tun hat. Natürlich können NF´s die entsprechend systemkritisch sind mit allen Methoden realisiert werden. Oder ist der Autor auf die m.E. sehr fragwürdige Diskussion rund um emergente Architekturen gestossen? Auch bei agilen Vorgehensweisen ist es immer essenziell zu Beginn die Architektur hinreichend festzulegen und damit solche NF´s zu berücksichtigen. Durch die schnellen Feedbacks kann dann die Architektur oftmals sogar schneller robust gemacht werden. Ich glaube die Diskussion Wasserfall oder agil muss auf einer ganz anderen Basis aufsetzen: Der Erkenntnis, daß ein früher und auf "Vollstandigkeit" ausgerichteter Anforderung- und Implementierungprozess mehrere systematische Schwächen hat: 1) Je weniger eine Anforderung konkret ist, desto fehlerhaft wird sie beschrieben. Folge: "Das habe ich mir aber ganz anders vorgestellt". 2) Weil das System nicht vollständig beschrieben ist, wird "sicherheitshalber" alles reingeschrieben, was man jemals brauchen könnte. Folge: Bis zu 40% der Features werden später nicht oder nur sehr selten genutzt. 3) Die Welt dreht sich weiter... Anforderungen, die 1-2 Jahre alt sind können nunmehr keine Relevanz mehr haben oder ggf. schlichtweg falsch. "So spät wie möglich, aber so früh wie nötig" ist daher einerfolgreiches Prinzip. Die Festpreisdiskussion lässt sich übrigens auch agil lösen. Indem man initial das Backlog schätzt und die Annahme trifft, daß die Komplexität des gesamten Systems relativ stabil ist, kommt man zu einer relativ stabilen Aufwands- / Zeitaussage, die sich in ein Festpreismodell übersetzen lässt. Wenn der Auftraggeber als Product Owner aktiv mitarbeitet und den Lernprozess mitgeht, wird er oft sogar mehr Wert für das gleiche Geld bekommen, weil er das umsetzen läßt, was wirklich wichtig ist. zum Beitrag

toolforpm
Warum nicht einfach das Beste aus beiden Welten kombinieren? Agil und Wasserfall lässt sich vereinbaren: http://www.slideshare.net/microTOOL/prozesse-im-spiegel-des-projektalltags zum Beitrag

DerKetzer
Das lineare Wasserfallmodell ist schon lange außerhalb der Realität. Wasserfall hat zu viele inhärente Probleme. Aber offensichtlich werden die linearen Wasserfallmodelle immer noch eingesetzt, weil es in der IT-Branche zu viele Leute gibt, denen es gewaltig am abstrakten und logischen Denkvermögen fehlt. Mit linearen Modellen kommen die gerade so zurecht. Wenn überhaupt sollte der Vergleich zwischen agilen Vorgehensmodellen und V-förmigen Vorgehensmodellen statt finden. zum Beitrag

Andreas Fuchs
M.E. ist dieser Artikel sehr pauschal und mit manchen Inhalten kann ich nicht übereinstimmen. Eine Software-Architektur, die strengen Skalierungs- und Performanceanforderungen unterliegt kann sehr wohl mit einem agilen Prozess in mehreren Iterationen (bei SCRUM Sprints) und inkrementell (schrittweise Erweiterung) entwickelt werden. Dies zeigt nicht zuletzt meine Erfahrung in eigenen Software Projekten. Auch die Aussage, dass das grundsätzliche Vorgehen unter Wasserfall darin besteht , erst die Dokumentation und dann die Software zu erstellen kann ich nicht teilen. Auch bei agilen Methoden sind Anforderungsmanagement (Requirements Engineering), das Design/Grobarchitektur und die Dokumentation wichtige Elemente. Sowohl in agilen als auch wasserfallähnliche Vorgehensweisen empfiehlt es sich immer neben dem groben auch das Feindesign dann zu machen, wenn die Implementierung ansteht. Auch Unittests sind state of the art und sollten grundsätzlich immer bei der Implementierung Voraussetzung sein. Die Aussage "In manchen Projekten funktioniert ein agiler Ansatz ganz einfach nicht." ist letztlich eine Glaubensfrage. Es gibt genügend Autoren, die das Gegenteil behaupten, außerdem Großprojekte, die auch das Gegenteil beweisen. Das Wasserfallmodell ist sowieso ein <strong>historisches Missverstandnis</strong>. Der Wasserfallprozess-"Erfinder" Winston Royce beschrieb es als "ein sehr einfaches Modell ohne empirische Daten". "...The first formal description of the waterfall model is often cited as a 1970 article by <a href="http://en.wikipedia.org/wiki/Winston_W._Royce" target="_blank">Winston W. Royce</a>, though Royce did not use the term "waterfall" in this article. Royce presented this model as an example of a flawed, non-working model (Royce 1970)..." (<a href="http://en.wikipedia.org/wiki/Waterfall_model">wikipedia</a>). (Quelle: 1970. Royce, Winston (1970), "<a href="http://www.cs.umd.edu/class/spring2003/cmsc838p/Process/waterfall.pdf">Managing the Development of Large Software Systems</a>" Und auch sein Sohn Walker Royce sagte: "My father was always a proponent of iterative, incremental, evolutionary development. His paper described the waterfall as the simplest description, but that it would not work for all but the most straightforward projects." (Quelle: Royce ) Mehr dazu auch im Buch von Craig Larmann Link:"<a href="http://www.amazon.com/Agile-Iterative-Development-Managers-Guide/dp/0131111558" target="_blank">Agile and Iterative Development: A Manager's Guide</a>" über "The Historical Accident of Waterfall Validity?" Der US-Standard DoD-STD-2167 favorisierte das Wasserfallmodell, andere Standards (CMMI, V-Modell) zogen nach. Dabei war David Maibor (Autor DOD-STD-2167) mit timebox-getriebener iterativer Entwicklung und evolutionären Anforderungen nicht vertraut und im Nachhinein hätte er dies viel deutlicher empfohlen als im STD-2167! (Quelle:OOSE) "I regret the creation of the rigid single-pass waterfall standard. I was not familiar with the practice of timeboxed iterative development and evolutionary requirements at the time. My advice was based on textbooks and consultants advocating the waterfall method. If I could write 2167 again, it would contain a strong recommendation for incremental iterative development." ? David S. Maibor, principal author of DOD-STD-2167 Quelle: Craig Larman, The historical accident of waterfall validity, in: Agile & iterative development s. auch <a href="http://www.slideshare.net/thomaswitt/einfhrung-in-agile-iterative-projekt-und-entwicklungsmethodiken" target="_blank">slideshare.net</a> Punkt 18 Zum Schluss noch etwas zum Statement: "Agile Methoden eignen sich dagegen besonders für kleine und mittlere Unternehmen, die eine partnerschaftliche, weniger formalisierte Beziehung mit ihrem Entwicklungspartner anstreben." Erst letztlich habe ich auf CoWo einen interessanten Artikel darüber gelesen wie das V-Modell und SCRUM zusammenkommen, wenn der Auftraggeber Vorgaben hat, der Auftragnehmer aber nach SCRUM vorgehen möchte. <a href="http://www.computerwoche.de/software/software-infrastruktur/1911008/">Sprinten mit dem V-Modell XT</a>. Warum soll das für das "Wasserfallmodell" in seinem Missverständnis nicht auch gelten?! Schöne Grüße, Andreas Fuchs (FrontRange Solutions) zum Beitrag


Beitrag schreiben

Noch kein Forums-Mitglied?
Dann gleich hier anmelden.

TOP 100 2011
Die Top 100 ITK-Unternehmen 2011 (Foto: Jan Will, Fotolia.de) Die Top 100 ITK-Unternehmen 2011 Die Top-100-Publikation, die inzwischen zum achten Mal erscheint, hat traditionell eine etwas gewagtere Anmutung.
weiter
Tektonische Verschiebungen treffen den Endgerätemarkt Tektonische Verschiebungen treffen den Endgerätemarkt Dem PC-Geschäft stehen turbulente Zeiten bevor. Mit der Tablet-Klasse kommen neue Hersteller ins Spiel und bringen den Markt zum Beben.
weiter
SAP und Co. entdecken ihre soziale Seite SAP und Co. entdecken ihre soziale Seite Der Großstadtdschungel findet seine virtuelle Fortsetzung im Social Web. Für die Softwarebranche entsteht dort die Chance, einen Schatz von ungeahnter ...
weiter
Die 25 größten Systemhäuser (Foto: Wikipedia, A. Praefcke) Die 25 größten Systemhäuser Der Wirtschaftsaufschwung lässt die Systemhauslandschaft erblühen. 2010 gab es unter den Top-25-Systemhäusern keine Insolvenz oder Übernahme.
weiter
Die Grenzen werden neu gezogen Die Grenzen werden neu gezogen Wo Anwender sich heute sicher fühlen, erwachsen ihnen morgen neue Bedrohungen. Kein IT-Marktsegment ist so stark in Bewegung wie die Security-Branche. ...
weiter
Jobangebote
FEATURED LINKS

KOSTENLOSE NEWSLETTER VON COMPUTERWOCHE
Nachrichten morgens
Whitepaper
Nachrichten mittags
CW-Mittelstand
Highlights der Woche
Hardware
SAP-Newsletter
Software
Job + Karriere
Open-Source
Stellenmarkt
Produkte + Techn.
Freiberufler
Security
Server + Storage
Netzwerke
Mobile & Apps