chevron_left
chevron_right

Wasserfallmodell versus agile Methode

Bei der Softwareentwicklung geht es oft um fast religiöse Diskussionen. Letzthin sah ich eine Präsentation eines Beraters, der alles Positive bei Agile und alles Negative beim Wasserfall zugeordnet hat. Dies hat mich zum Nachdenken angeregt und zu diesem Artikel bewogen. Sie werden hier die Sicht eines Ingenieurs lesen, der in der Wasserfallzeit seine Karriere gestartet hat und aktuell in der agilen Welt ankommt.

Zuerst die Definition aus Wikipedia: «Ein Wasserfallmodell ist ein lineares (nicht iteratives) Vorgehensmodell, das insbesondere für die Softwareentwicklung verwendet wird und das in aufeinander folgenden Projektphasen organisiert ist. Dabei gehen die Phasenergebnisse wie bei einem Wasserfall immer als bindende Vorgaben für die nächsttiefere Phase ein.»

 

Das Wasserfallmodell und seine speziellen Tücken

Nun muss ich ehrlich gestehen, dass ich noch nie ein Software-Projekt erlebt habe, das wirklich exakt nach diesem Modell ablief. Mein Erfahrungsschatz bewegt sich in Projekten in der Finanzindustrie (Datenverteilsysteme), in der Maschinenindustrie (Prozessleitsysteme) und Software-Produktentwicklung. Der Hauptnachteil dieses Modells liegt in der Sequenzialisierung und ist nicht praxisgerecht. Bis die Stakeholder alle Anforderungen eines Gesamtsystems abgestimmt haben, sind die ersten schon wieder veraltet.

Das Vorgehen war in den meisten Fällen wie folgt: Wir haben das Gesamtsystem im Groben und dann die Detailanforderungen losgelöst definiert. Die Phasen waren nicht starr synchronisiert. Nach der Grobkonzeption wurde relativ schnell das Gesamtsystem im Gerüst entwickelt und danach begonnen die Detailfunktionalitäten zu implementieren und laufend mit den Stakeholdern zu validieren. Ich habe Projekte gesehen, die wirklich dieses strikte Modell befolgt und zuerst alle Anforderungen gesammelt haben, damit ja nichts vergessen ging, und so entstand ein System, das zu teuer und im Moment der Fertigstellung schon veraltet war. Unser Ziel war es, ein System in Produktion zu bringen, das die minimalen Anforderungen erfüllte und der Anwender beginnen konnte, den Nutzen daraus zu ziehen.

 

Auf mögliche Ausbauten achten

Die grossen Fallstricke an dieser vereinfachten iterativen Methode war: dass man aus der Sicht des Kunden und Management nie fertig wurde, das System nicht ausbaufähig entwarf und implementierte, dies zu nicht verständlichen grossen Aufwendungen bei der Folgeiteration führte und der ReleaseZeitpunkt immer ein Kompromiss war. Aus diesen Gründen haben sich folgerichtig die agilen Methoden entwickelt, welche immer noch Elemente aus dem Wasserfall enthalten.

 

Die Anforderung des Stakeholders (Kunden, Nutzer) sollte verstanden und dokumentiert sein. Man sollte immer ein Auge auf mögliche Ausbauten haben. Das System sollte abwärtskompatibel sein und allenfalls angepasste persistente Datenstrukturen automatisch migrieren. Als letztes sollte derselbe Code immer von einem Team betreut werden. Dies führt automatisch zu einem wartbaren Code und weniger Abhängigkeiten von Einzelpersonen.

 

Agile Methoden und Planbarkeit

Es gibt im agilen Umfeld zwei globale teils provokative Standardaussagen: Man kann nicht langfristig planen, und das Scrumteam bestimmt, was gebaut wird. Ich werde mich hier an die Methode SAFe Scaled Agile Framework www.scaledagileframework.com/ halten. Es scheint mir beim Lesen die richtigen Elemente zu haben und diese sind sinnvoll und praxisbezogen beschrieben. Ich habe nicht das Wissen dieses Framework gegenüber anderen zu positionieren. Der erste grosse Unterschied zum Wasserfallmodell ist, dass man nicht mehr Projektorganisationen bildet, bei welcher die Entwickler, Business-Analysten und Architekten für die Dauer des Projekts dem Projektleiter zuordnet werden, sondern dass man fixe Teams (ca. zehn Personen) bildet, welche Aufgaben zugewiesen bekommen.

Das Team bestimmt situativ, wer die Bearbeitung einer Aufgabe oder einen Teil davon übernimmt. Auch in diesem Modell kann es Platz für Projekte im klassischen Sinne (Scope, Kosten und Timeline) geben, mit dem Projektleiter, welcher jetzt an die entsprechenden Teams gelangen muss und die Aufgaben in den Arbeitsvorrat des Teams oder auch Backlog genannt, einreihen muss. Der grosse Unterschied besteht darin, dass das Team Backlog-Einträge von verschiedenen Stakeholdern, wie Projektleitern, Produktmanagement und Supportverantwortlichen, bekommen kann. Die Priorisierung der Team-Backlog-Einträge geschieht zusammen mit allen Stakeholdern anhand des grössten Nutzens.

 

Anforderungen und Kapazitäten

Diese Priorisierung sollte je nach Grösse des Vorhabens, Produkts oder der Firma auf verschiedenen Ebenen erfolgen. In einer Jahresplanung wird strategisch bestimmt, wie viele Ressourcen will ich mir leisten und wo will ich diese einsetzen (Kundenvorhaben, Produkterweiterungen oder Wartung). In der Quartalsplanung werden alle bestehenden und neuen Initiativen beurteilt. In dieser Planungsphase sollten zwei Aspekte betrachtet werden. Rückschau: Was wurde im letzten Quartal geliefert und welchen Nutzen erzeugt das Ergebnis. Planung: Welche Lieferungen mit entsprechendem Nutzen sind im neuen Quartal geplant. In der Quartalsplanung sollten alle Backlog-Einträge eindeutig priorisiert sein. Damit sollte transparent abschätzbar sein, wie viele Anforderungen gegenüber der verfügbaren Kapazität lieferbar sind.

Man darf nicht davon ausgehen, dass mit 100 % Kapazität im Quartal 100 % der Anforderung geliefert wird, sonst gibt es bereits nach dem ersten taktischen Stakeholder Meeting die ersten Eskalationen. Man sollte davon ausgehen, dass ein Team ca. 70 % des Backlogs in der nächsten Phase abarbeiten kann. Wenn nichts dazwischen kommt, kann es sogar höher gehen. Sollte es aber kurzfristige Opportunitäten ergeben wie z.B. dass ein Teammitglied den Verkauf beim Kundenworkshop unterstützt, ein anderes Teammitglied für eine Kundenberatung eingeteilt wird oder es tritt ein Krankheitsfall ein, muss man Einträge aus dem Backlog geordnet in die nächste Phase verschieben.

 

Langfristige Planung im agilen Umfeld

Aus diesen Erläuterungen sieht man, dass die eingangs erwähnten Standardaussagen widerlegt sind. Eine langfristige Planung (Jahres-, Quartal-, zwei Wochen-Sicht) ist auch im agilen Umfeld möglich. Der Projektleiter muss jedoch immer wieder beweisen, dass seine Anforderungen nach wie vor einen grösseren Nutzen gegenüber seiner Konkurrenz (andere Projekte, Produktmanageranforderungen oder Supportanfragen) erzeugen. Dadurch wird verhindert, dass das Projektbudget sinnlos aufgebraucht wird. In jeder Planungszeremonie sind die Repräsentanten des Teams und der Auftraggeber anwesend und entscheiden gemeinsam über das Ranking. Das Team kann dann selbst entscheiden, wer welches Arbeitspaket abarbeitet.

 

Vorbedingungen für ein agiles Umfeld

Bis jetzt wurde nur erläutert, dass diese Arbeitspakete priorisiert und abgearbeitet werden. Um in einem solchen starren, zeitlich synchronisierten Umfeld effizient arbeiten zu

können, sind ein paar wichtige Grundsätze zu befolgen. Die Arbeitspakete – sprich das zu erwartende Ergebnis und deren Abnahmebedingung – müssen klar definiert sein. Der Nutzen muss quantifiziert werden können, um eine Priorisierung vornehmen zu können. Diese Arbeiten müssen klar vor den jeweiligen Entscheidungssitzungen abgeschlossen sein. Es ist wie mit dem öffentlichen Verkehrsmittel, ist dieses abgefahren, muss ich auf das nächste warten. Hier sind die Stakeholder, die ein Arbeitsergebnis erwarten, gefordert, diese Vorarbeiten voranzutreiben und mit den agilen Entwicklungsteams abzusprechen.

Eine grosse Herausforderung des Modells besteht darin, ein Priorisierungsmodell zu etablieren, das verschiedene Anforderungen (funktionale und nichtfunktionale; ertragswirksame oder kosteneinsparende Ergebnisse) miteinander vergleicht. Das agile Arbeitsmodell eignet sich am besten, wenn man das Gesamtergebnis kontinuierlich weiterentwickeln will. Im Minimum sollte die Organisation alle Prozesse in mehreren Zyklen durchlaufen können, um die nötigen Erfahrungen und deren Effizienzgewinne anwenden zu können.

 

Vom Saulus zum Paulus?

Wie schon eingangs erwähnt, wurde das Wasserfallmodell zur Dinosaurierzeit der IT, in der es noch allmächtige Hosts gab, definiert. Wir sind heute in der Epoche angelangt, in der PCs, Smartphones oder Tablets mit neuen Funktionalitäten automatisch aktualisiert werden. Dies erfordert auch agile Entwicklungsmethoden. Je mehr ich mich in diese Welt einlese, finde ich interessante Konzepte, die etwas tiefer gehen als Beraterpräsentationen. Daher ist es wert, ein Buch über 300 Seiten zu lesen, in dem ein Konzept konsistent beschrieben ist, anstatt im Internet nach Textfragmenten zu suchen. Bin ich etwa doch noch ein Wasserfall-Dinosaurier?

 

Infoservice

Thomas Hauser

Langackerweg 10, 5303 Würenlingen

Tel. 079 573 20 27, thomas.hauser@fael.ch