Die Softwareentwicklung bricht viele verschiedene Ansätze auf — einige sind neue Versionen alter Methoden, während andere relativ neue Praktiken übernehmen. Die beiden am häufigsten verwendeten Ansätze sindAgile, wie zum BeispielScrum, Kanban und Lean sowie das traditionelle Waterfall-Modell, wie strukturierte Methoden oder das neuere RUP.
Die meisten Softwareunternehmen, die diesen beiden Paradigmen folgen, glauben, dass ihre gewählte Methode in bestimmten Aspekten überlegen ist. Bevor wir die Frage beantworten: „Welche ist erfolgreicher?“ — lassen Sie uns ihre wesentlichen Unterschiede untersuchen.
Waterfall-Ansatz
Waterfall ist ein linearer Ansatz für die Softwareentwicklung. Jede Phase stellt eine unterschiedliche Stufe im Prozess dar, die in der Regel abgeschlossen ist, bevor die nächste beginnt. Zwischen jeder Entwicklungsphase existieren oft Meilensteine.
- Strukturiert als ein großes Projekt in einem sequenziellen Prozess
- Geeignet für Umgebungen, in denen Änderungen selten sind
- Erfordert vollständig definierte Anforderungen von vornherein
Daher verlangt das Waterfall-Modell, dass man erst in die nächste Phase übergeht, nachdem die vorherige überprüft und validiert wurde, wie in der folgenden Abbildung gezeigt:

Waterfall-Ansatz
Im ursprünglichen Waterfall-Modell von Royce werden die folgenden Phasen in der angegebenen Reihenfolge durchlaufen:
- System- und Softwareanforderungen: Erfasst in einem Produktanforderungsdokument
- Analyse: Erzeugt Modelle, Architektur und Geschäftsregeln
- Entwurf: Erzeugt die Softwarearchitektur
- Codierung: Entwicklung, Überprüfung und Integration der Software
- Testen:Systematische Entdeckung und Behebung von Fehlern
- Betrieb: Vollständige Systeminstallation, Migration, Support und Wartung
Agiler Ansatz
Agile leitet sich aus Lean-Denken ab und wendet das „Lean“-Konzept in IT-Umgebungen an. Der zentrale Fokus der Lean-Methoden ist:
- Verschwendung in Prozessen beseitigen
- Nicht-wertschöpfende Geschäftstätigkeiten minimieren
- Wert aus Sicht des Kunden maximieren

Agile Ansätze
Agile ist eine bewährte Projektmanagement-Methode, die die folgenden Kernprinzipien fördert:
- Häufige Inspektion und Anpassung
- Fördert Teamzusammenarbeit, Selbstorganisation und Verantwortung
- Eine Reihe von ingenieurwissenschaftlichen Best Practices zur schnellen Lieferung hochwertiger Projekte
- Ein geschäftlicher Ansatz, der die Entwicklung mit den Bedürfnissen der Kunden und den Unternehmenszielen ausrichtet
Agile Entwicklung – Iterativer Lebenszyklus
Agile Entwicklung umfasst traditionelle Phasen wie Planung, Anforderungsanalyse, Design, Codierung, Test und Bereitstellung – jedoch bilden diese eine Schleife statt einer geraden Linie. Das bedeutet, dass der Prozess flexibel, wiederholbar und in beliebiger Reihenfolge oder parallel erfolgen kann. Dies ermöglicht die Sammlung von Benutzerfeedback, kontinuierliches Testen über verschiedene Umgebungen hinweg und die Anpassung des Projektumfangs während der Laufzeit.
Grundlagen der agilen Methodik
- Empirismus:Fähigkeit, auszuführen, anzuhalten, zu reflektieren, zu verbessern und weiterzuführen, wodurch die Produktivität schrittweise steigt.
- Priorisierung:Arbeit auf Basis des geschäftlichen Wertes liefern.
- Selbstorganisation:Das Team versteht am besten, wie die Arbeit unter Berücksichtigung der verfügbaren Ressourcen und Einschränkungen erbracht werden kann.
- Zeitrahmenfestlegung:Das Team muss eine definierte Aufgabe innerhalb eines festgelegten Zeitraums abschließen.
- Zusammenarbeit:Das Team verpflichtet sich, das Endprodukt innerhalb einer festgelegten Zeit zu liefern, wodurch die Zusammenarbeit über Teams hinweg und kreative Aufgabenerfüllung gefördert werden.
Agile vs. Wasserfall – Die Dreifach-Beschränkung
Der größte Vorteil des Wasserfallansatzes liegt in festen Kosten und Vorhersehbarkeit. Sie kennen den Preis und das Lieferdatum. Sein größter Nachteil ist die geringe Flexibilität. Agile Methoden sind äußerst flexibel und können sich zu Produkten entwickeln, die sich erheblich von der ursprünglichen Vision unterscheiden.

Agile vs. Wasserfall
Traditioneller Wasserfallberuht auf der Dreifach-Beschränkung von Zeit, Kosten und Umfang. Die Anpassung einer dieser Variablen zwingt zur Änderung mindestens einer anderen. Der Erfolg eines Projekts hängt von der Balance dieser konkurrierenden Variablen ab. Doch wie wir wissen, führt das bloße Hinzufügen von Ressourcen zu einem Projekt nicht immer zum gewünschten Ergebnis. Tatsächlich kann das Hinzufügen von Ressourcen zu einem Softwareprojekt zu einem negativen Einfluss führen, wenn es zu spät erfolgt.
Agiler Ansatzverfolgt einen anderen Ansatz und kehrt die Dreifach-Beschränkung um. Anstatt den Umfang von Beginn an als fest zu betrachten, legt Agile Zeit (Iterationen) und Kosten (Teammitglieder) fest und passt dann den Umfang an, um sich auf die wichtigsten Aufgaben zu konzentrieren. Agile geht davon aus, dass der Umfang sich im Laufe der Zeit weiterentwickelt. Ziel ist es, die wichtigsten Anforderungen des Kunden innerhalb des Budgets und der Zeit zu erfüllen. Während des Projektverlaufs ermöglicht Agile neue Anforderungen oder eine Neupriorisierung.

Agile vs. Wasserfall Qualität
Agil oder Wasserfall? Siehe die Zahlen
Der neueste Bericht des Standish Group befasst sich mit Projekten, die zwischen 2013 und 2017 untersucht wurden. Der Gesamterfolg, die Herausforderungen und die Ausfälle von agilen und Wasserfall-Projekten sind unten dargestellt. Agile Projekte haben etwa die doppelte Erfolgschance und sind dreimal weniger wahrscheinlich, zu scheitern als Wasserfall-Projekte.

Agil versus Wasserfall – Projekterfolgsrate
Der agile Schirm
Seit der Geburt des Agile Manifestos im Jahr 2001 hat Agile erhebliche Dynamik gewonnen. Tatsächlich ist Agile keine einzelne Methode, sondern eine Haltung, die Teams und Organisationen ermöglicht, zu innovieren, schnell auf sich verändernde Anforderungen zu reagieren und Risiken zu reduzieren. Organisationen können flexibel verschiedene verfügbare Frameworks wie Scrum, Kanban, Lean, XP und weitere übernehmen.

Der agile Schirm
Lean-Ansatz
Lean-Organisationen verstehen den Kundennutzen und konzentrieren sich auf ihre Kernprozesse, um ihn kontinuierlich zu verbessern. Das ultimative Ziel ist die Lieferung perfekten Nutzens für den Kunden durch einen wertlosen, idealen Wertschöpfungsprozess.
Der fünfstufige Denkprozess, der die Lean-Implementierung leitet, ist leicht zu merken, aber nicht immer einfach umzusetzen:
- Definieren Sie den Wert aus der Perspektive des Endkunden.
- Kartieren Sie alle Schritte im Wertstrom für jedes Produkt und beseitigen Sie überall, wo möglich, wertabschöpfende Schritte.
- Sorgen Sie dafür, dass die wertschaffenden Schritte reibungslos und sequenziell zum Kunden fließen.
- Lassen Sie den Kunden den Wert aus der nächsten upstream-Aktivität nach Bedarf abholen.
- Verbessern Sie kontinuierlich, indem Sie Wertströme identifizieren, Verschwendung beseitigen, Fluss und Pull einführen und den Prozess wiederholen, bis Perfektion erreicht ist – wo perfekter Wert mit null Verschwendung geliefert wird.

5-Schritte-Learn-Ansatz
Scrum-Ansatz
Scrum ist eine agile Methode zur Projektsteuerung, typischerweise im Bereich der Softwareentwicklung. Die Verwendung von Scrum für agile Softwareentwicklung wird oft als Methode betrachtet – doch Scrum sollte vielmehr als Rahmenwerk zur Prozesssteuerung angesehen werden.

Scrum-Prozess-Canvas
Kanban-Ansatz
Kanban bedeutet auf Japanisch „visuelles Signal“ oder „Karte“. Toyota-Arbeiter verwendeten Kanban, um Schritte in einem Fertigungsprozess darzustellen. Als Teil von Lean ermöglicht die hohe Visualisierung des Systems, dass Teams einfacher kommunizieren, was zu tun ist und wann. Außerdem standardisiert es den Arbeitsablauf und verfeinert den Prozess, was zur Reduzierung von Verschwendung und Maximierung des Nutzens beiträgt. Ähnlich wie ein Scrum-Sprint-Board verfolgt Kanban die Aktivitäten „Zu tun – In Bearbeitung – Erledigt“, begrenzt jedoch die Anzahl der „In Bearbeitung“-Aufgaben (definiert durch den Teamleiter und darf nicht überschritten werden).

Kanban-Ansatz
Es gibt vier zentrale Kanban-Prinzipien:
- Visualisieren Sie die Arbeit, um Kommunikation und Zusammenarbeit zu verbessern.
- Beschränken Sie die Arbeit in Fortschritt, um endlose Ketten von nicht priorisierten offenen Aufgaben zu vermeiden.
- Messung und Optimierung des Flusses — Sammeln von Metriken, Vorhersage zukünftiger Probleme.
- Kontinuierliche Verbesserung durch Analyse und Feedback.