1. Magazin
  2. /
  3. Uncategorized
  4. /
  5. Wasserfall-Modell vs. agile Softwareentwicklung – so wird Ihr Projekt ein Erfolg

Wasserfall-Modell vs. agile Softwareentwicklung – so wird Ihr Projekt ein Erfolg

Agile Softwareentwicklung

Wasserfall-Modell vs. agile Softwareentwicklung – so wird Ihr Projekt ein Erfolg

Schon seit mehreren Jahren übernehmen wir Kundenprojekte im Bereich Softwareentwicklung. Unsere Stärken? Wir bieten hochwertige Softwareentwicklung, unterstützen unsere Kunden mit unternehmerischen Denken und unserer Erfahrung aus über 100 Projekten und legen Wert auf eine gute Kommunikation. Doch haben wir schon lange ein Problem: Das Lastenheft.

 

Die Schwierigkeiten mit den üblichen Methoden der Softwareentwicklung

Seit geraumer Zeit ist es üblich, Softwareprojekte nach dem sogenannten Wasserfall-Modell umzusetzen. Das bedeutet, Kunden erklären uns ihre Wünsche, Zeitraum und Budget und wir machen uns an die Arbeit. Am Ende erhält der Kunde ein fertiges Produkt – so die Idealvorstellung.

Leider kommt es bei der Wasserfall-Methode immer wieder zu Komplikationen. Darunter haben nicht nur wir zu leiden, sondern auch unsere Kunden. Das wiederum wirkt sich auf die Kundenzufriedenheit aus und die Chance, dass wir für eine weitere Leistung gebucht werden, sinkt.

Welche Komplikationen sind das? Beim Wasserfallmodell ist es schnell passiert, dass das Geld ausgeht, bevor das Projekt wirklich fertig ist. Es kann nicht auf Fehler eingegangen werden, die erst während der Entwicklung entdeckt werden. Alles läuft starr nach dem zu Beginn festgelegten Plan – keine Flexibilität, kein Freiraum für neue Ideen.

Insgesamt scheitern weltweit über 80 % der Softwareprojekte, die auf dem Lastenheft basieren. Woran liegt das?

Beispiel:

Unser Kunde möchte eine Website und erstellt mit viel Mühe ein Lastenheft. Hier liegt bereits das erste Problem. Die Erstellung eines Lastenhefts und die Freigabe können sich über Monate hinziehen. Doch je später die Website online ist, desto später können damit auch Einnahmen generiert werden.

Nach Fertigstellung des Lastenhefts folgt die Umsetzung. Die Programmierung einer komplexen Website kann durchaus mehrere Monate in Anspruch nehmen. Am Ende übergeben wir die Website genauso, wie im Lasterhaft festgelegt. Doch jetzt folgt die große Enttäuschung: Die Website mag so aussehen, wie damals festgehalten, doch die Kundenwünsche haben sich geändert. Mittlerweile hat die Konkurrenz ebenfalls eine neue Website mit tollen Funktionen. Diese hätten wir auch einfach während der Erstellung einbauen können, doch da sie nicht im Lastenheft festgelegt waren, verfügt die Website nun auch nicht darüber.

Ein weiteres Problem ist, dass unsere Kunden vorher noch garnicht genau vorhersagen können, wie bestimmte Prozesse ablaufen sollen. Eine genaue Vorstellung entsteht oft erst, wenn bereits erste Ergebnisse vorliegen. Doch beim guten alten Lastenheft ist es jetzt zu spät für Änderungen.

Unser Kunde steht nun vor einer Entscheidung: Die Website so nehmen, wie er sie sich vor Monaten gewünscht hat oder das Geld in die Hand nehmen und uns einen Auftrag für weitere Änderungen geben.

Bei vielen Agenturen wird sogar ein nicht-funktionales Produkt übergeben, da das festgelegte Budget nicht eingehalten werden konnte. Einige Funktionen wurden zuvor nicht richtig durchdacht oder es stellte sich erst während der Softwareentwicklung heraus, dass die erste Idee nicht im Rahmen des Möglichen oder aber im festgesetzten Budget liegt. Das Ergebnis: Eine nicht funktionale Software und unzufriedene Kunden.

Es wurde uns also klar, dass wir eine bessere Vorgehensweise für die Softwareentwicklung brauchten – für uns und für unsere Kunden.

 

Die Lösung? Agile Softwareentwicklung mit Scrum

Also informierten wir uns und stießen auf die sogenannte Scrum-Methode. Scrum ist eine Methode der agilen Softwareentwicklung und weist im Vergleich zur Wasserfall-Methode ein hohes Maß an Flexibilität auf – davon profitieren nicht nur wir, sondern auch unsere Kunden.

 

Was ist agile Softwareentwicklung?

Der Begriff “Agile Softwareentwicklung” entstand zu Beginn der 2000er. Die Grundlage bildete das sogenannte “Agile Manifest”, das 2001 von Kent Beck veröffentlicht wurde und in dem die Grundpinzipien der agilen Softwareentwicklung geschildert wurden. Es enthält 12 Pinzipien, die es bei der agilen Entwicklung zu beachten gilt. Wichtige Aspekte des “Agilen Manifests” sind die intensive Zusammenarbeit aller Beteiligten, eine schnelle Entwicklung und die Möglichkeit, Veränderungen durchzuführen.

Bereits im Jahr 2005 nutzten 14 % der Unternehmen agile Prozesse, im Jahr 2013 waren es schon 80 %. Durch agile Softwareprozesse sinkt die Rate der Fehlschläge in Projekten und die Rate der Erfolge steigt deutlich.

 

Wasserfall vs. Scrum
Wasserfall vs. Scrum

Agile Softwareentwicklung basiert auf laufender Verbesserung, guter Kommunikation innerhalb des Teams, aber auch mit dem Auftraggeber und bietet ein hohes Maß an Flexibilität, um das bestmögliche Ergebnis zu erreichen.

 

Die 12 Prinzipien des “Agilen Manifests”:

  • Frühe und kontinuierliche Auslieferung des Produkts
  • Änderungswünsche können auch noch in späten Entwicklungsphasen durchgeführt werden
  • Die Lieferung von funktionalen (Teil-) Produkten in kleinen Zeitabständen
  • Eine gute Zusammenarbeit aller Fachleute während des Projekts
  • Motivation und eine produktive Arbeitsatmosphäre
  • Eine gute Kommunikation innerhalb im Team
  • Produkte und Dienstleistungen sind funktional
  • Nachhaltige Entwicklung – alle Beteiligten müssen das Tempo auf lange Zeit halten können
  • Fachliches Know-How und effektive Arbeitsabläufe
  • Verschlankung von Arbeitsschritten
  • Selbstorganisierte Teams
  • Regelmäßige Kontrolle der Effektivität des Entwicklungsprozesses durch das Team

 

Wie funktioniert Agile Softwareentwicklung?

Zusammen mit unserem Kunden erläutern wir die Vision des Projekts. Aus dieser Version leiten wir dann Teilaufgaben ab, welche zusammen eine Art To-Do-Liste, den Product Backlog, bilden. Zum Beginn des Projekts müssen nicht alle Aufgaben feststehen. Es können immer weitere Aufgaben hinzugefügt oder gelöscht werden. Der Product Backlog bildet demnach die Grundlage für die Softwareentwicklung.

 

Scrum Prozess
Scrum Prozess

Ein Softwareprojekt wird bei Scrum in mehrere Sprints unterteilt. Pro Sprint wird ein Teilprodukt fertiggestellt, welches zuvor im Sprint Backlog festgehalten wurde. Der Zeitraum beträgt zumeist ein bis zwei Wochen. Der Vorteil liegt in der hohen Flexibilität. Nach jedem Sprint erhält der Auftraggeber ein fertiges und funktionstüchtiges Teilprodukt. Das gibt ihm auch die Möglichkeit, jederzeit zu einer anderen Agentur zu wechseln. Sollten sich Änderungswünsche ergeben, dann werden diese einfach in das Product Backlog eingepflegt und im nächsten Sprint umgesetzt.

Nach jedem Sprint findet ein Meeting statt, bei dem das fertige Teilprodukt der letzten Arbeitsphase besprochen und abgenommen wird. Im weiteren Verlauf werden die Ziele und die Rahmenbedingungen für den kommenden Sprint festgelegt. Der Kunde ist somit immer direkt am Projekt beteiligt.

 

Product Owner, Development-Team und Scrum Master – die Rollen der Agilen Methode

Der Auftraggeber wird bei Scrum als Product Owner bezeichnet. Er stellt die Anforderungen und beurteilt die Qualität und die Funktionalität. Der Product Owner trifft wichtige Entscheidungen und kann jederzeit Änderungswünsche in den Prozess einbringen. Eine gute Kommunikation mit dem Team ist daher von hoher Wichtigkeit.

Das Development-Team setzt die Aufgaben des Sprint Backlogs um und entwickelt die Software. Zu Beginn des Projekts muss sichergestellt werden, dass alle erforderlichen Fähigkeiten für die erfolgreiche Umsetzung im Team vereint sind. Das Team organisiert sich selbst und stellt durch regelmäßige Meetings – am besten täglich –  sicher, dass alle Aufgaben sinnvoll verteilt und zeitgerecht umgesetzt werden.

Der Scrum Master hingegen vertritt den Auftragnehmer. Er überwacht den Prozess und dient als Vermittler zwischen den verschiedenen Rollen. Beim agilen Vorgehensmodell sollen tägliche Meetings des Entwicklungsteams für einen effektiven Ablauf sorgen, hier dient der Scrum Master als Moderator.

 

Gründe für die agile Softwareentwicklung

In nur wenigen Jahren hat sich ein Großteil der Unternehmen für den Einsatz agiler Methoden entschieden. Auch wir haben uns bewusst dafür entschieden, um besser mit unseren Kunden zusammenzuarbeiten, unsere Arbeit effektiver zu gestalten und um bessere Ergebnisse liefern zu können. Von welchen Vorteilen wir und unsere Kunden bei der agilen Softwareentwicklung profitieren, haben wir hier nochmal übersichtlich gelistet.

Die Vorteile für Kunden

  • Hohe Flexibilität
  • Direkte Beteiligung am Entwicklungsprozess
  • Schnelle Ergebnisse
  • Resultate in regelmäßigen Abständen
  • Funktionale Produkte und Dienstleistungen
  • Budgetkontrolle
  • Gute Kommunikation
  • Transparenz

 

Die Vorteile für Entwickler

  • Effektive Arbeitsprozesse
  • Gute Zusammenarbeit im Team
  • Agiles Arbeiten bietet Flexibilität
  • Kreative Freiheit
  • Vermeidung von Fehlern
  • Vermeidung von Missverständnissen mit dem Product Owner

 

Wasserfall vs. agile Softwareentwicklung
Wasserfall vs. agile Softwareentwicklung

 

Nachteile der agilen Softwareentwicklung – nur auf den ersten Blick

1. Das Budget

Die Nachteile der agilen Softwareentwicklung werden oft unterschiedlich wahrgenommen. Für uns ist der größte Nachteil der agilen Methode, dass viele unserer Kunden das Modell zunächst nicht verstehen – sie können es nicht richtig greifen. Wen wundert`s, immerhin können wir Ihnen keinen festen Preis nennen. Das ist wohl die größte Hürde.

Natürlich versuchen wir zu Beginn eine Einschätzung vorzunehmen, letztendlich sind die Kosten aber immer direkt von den Kundenwünschen abhängig. Bringt der Product Owner während des Prozesses regelmäßig neue Anforderungen mit ein, so steigt natürlich auch der Arbeitsaufwand.

Doch genau hier liegt der Vorteil. Jeder Änderungswunsch wird einzeln eingeschätzt. Der Auftraggeber kann also selber entscheiden, welche Aufgaben umgesetzt werden sollen, vereinfacht werden soll oder zunächst garnicht entwickelt werden.

Anstelle des festen Budgets für einen festgelegten Zeitraum wie bei der Wasserfall-Methode, welche genau aus diesem Grund oft scheiterte, kann der Auftraggeber bei der agilen Softwareentwicklung jederzeit selber entscheiden, was umgesetzt wird und wieviel Geld er investieren möchte.

2. Mehraufwand

Ein weiteres Hindernis ist der Mehraufwand für den Auftraggeber. Viele kommen zu uns, erklären uns, was sie sich vorstellen und möchten erst dann wiederkommen, wenn das Projekt beendet wurde. Regelmäßige Meetings fressen Zeit und erfordern zudem das ständige Nachdenken über den Entwicklungsprozess. Ich gebe zu, dass das wirklich unattraktiv klingt.

Doch bisher konnten wir unsere Kunden immer positiv überraschen. Denn viele wussten zunächst garnicht genau, wie das Endprodukt wirklich aussehen soll oder wie genau bestimmte Arbeitsprozesse umgesetzt werden sollen. Nur im Laufe des Prozesses und mit guter Kommunikation lassen sich derlei Mängel erkennen und beheben.So garantieren wir ein fertiges Produkt, dass wirklich zu unserem Kunden passt, wettbewerbsfähig und höchst funktional ist.

3. Umstrukturierung

Für Unternehmen, die auf agile Methoden umsteigen möchten, bedeutet das eine Umstrukturierung der Geschäftsprozesse und Arbeitsabläufe. Das ist zunächst eine große Hürde. Die Geschäftsleitung muss über die Effektivität von Prozessen nachdenken und Optimierungsmöglichkeiten definieren. Besonders bei kleinen Teams sollten hier auch die Entwickler selber mit einbezogen werden.

Die Umstrukturierung ist nicht in einem Tag getan. Sie braucht Zeit, führt eventuell zu Fehlern und muss ständig kontrolliert werden. Nur auf diese Weise können langfristig Fehler und vermieden und Prozesse verbessert werden. Hier ist also Geduld gefragt.

Kanban ist dafür eine geeignete Methode. Bei Kanban handelt es sich ebenfalls um eine agile Methode. Prozesse werden nach Kanban nur in kleinen Schritten verändert. Bei einer schnellen und umfassenden Umstrukturierung kommt es schnell zu Fehlern mit großer Auswirkung. Wenn nacheinander kleine Bereiche umstrukturiert werden, wird das Risiko für jede Maßnahme reduziert.

 

Agil und Scrum

Scrum ist ein agiles Framework, also ein Arbeitsansatz. Um die agile Entwicklung effektiv zu gestalten, nutzen wir ein sogenanntes Scrum Board. Auf dem Scrum Board werden Teilaufgaben festgehalten, die noch erledigt werden müssen. Mitarbeiter können sich dann selber ihre Aufgaben auswählen. Wenn ein sogenanntes Ticket in Bearbeitung ist oder fertiggestellt wird, wird es in den dementsprechenden Bereich auf dem Board verschoben.

Auf diese Weise können alle Teammitglieder jederzeit nachvollziehen, welche Aufgaben noch ausstehen, welche fertig sind und wie weit ein Projekt fortgeschritten ist.

 

Agil mit Pixelwerker

Wir konnten in den letzten Jahren viele positive Erfahrungen mit agiler Softwareentwicklung machen.  Zusammen mit unseren Kunden entwickeln wir funktionale Software, die überzeugt. Das konnten wir bereits in über 50 Millionen programmierten Zeilen Code und über 200 Kundenprojekten beweisen.

Suchen auch Sie einen starken Partner, der zusammen mit Ihnen die passende Software entwickelt? Dann kontaktieren Sie uns jetzt und lernen Sie uns in einem unverbindlichen Erstgespräch kennen.