Agile Softwareentwicklung und Projektplanung obsolet?

Agile Softwareentwicklung und Projektplanung haben in den vergangenen zwei Jahrzehnten einen massiven Wandel in der Art und Weise bewirkt, wie Softwareprojekte geplant und durchgeführt werden. Ursprünglich als Reaktion auf die Starrheit traditioneller Entwicklungsmethoden wie dem Wasserfallmodell entwickelt, sollte agile Flexibilität, Anpassungsfähigkeit und eine stärkere Fokussierung auf die Bedürfnisse der Kunden bringen. Doch wie jede Methode hat auch «Agile» seine Schwächen, und es gibt gute Argumente dafür, dass sich die Methode mittlerweile überlebt hat.

Daniel Frei – Agile Methoden wurden in den frühen 2000er Jahren populär, nachdem das Agile Manifesto 2001 veröffentlicht wurde. Sie wurden erfunden, um die starre und unflexible Art der traditionellen Softwareentwicklung zu überwinden, die oft als «Wasserfallmodell» bezeichnet wird. In diesem mussten alle Anforderungen zu Beginn eines Projekts festgelegt werden, und es gab wenig Raum für Änderungen während des Entwicklungsprozesses. Dies führte häufig dazu, dass Projekte nicht den tatsächlichen Bedürfnissen der Kundinn_en entsprachen und viel Zeit und Ressourcen verschwendet wurden.

Agile wurde entwickelt, um diesen Problemen entgegenzuwirken, indem es Flexibilität, Anpassungsfähigkeit und eine stärkere Kundinn:enorientierung in den Entwicklungsprozess einführt. Mit Agile können Teams in kurzen, iterativen Zyklen arbeiten, schnell auf Änderungen reagieren und kontinuierlich funktionsfähige Software liefern. So wird sichergestellt, dass das Endprodukt den Anforderungen der Kunden entspricht und gleichzeitig effizient entwickelt wird. Die Hauptziele der agilen Methoden waren:

https://agilemanifesto.org/

Über die Vorteile von «Agile»

Diese Methoden haben in der Softwareentwicklung und darüber hinaus einige Vorteile, die sie zu einer beliebten Wahl für viele Teams und Projekte gemacht haben. Diese Vorteile umfassen Flexibilität, höhere Produktqualität, bessere Kundenorientierung, erhöhte Transparenz und Zusammenarbeit sowie schnellere Markteinführung.

Flexibilität und Anpassungsfähigkeit

Einer der grössten Vorteile agiler Methoden ist ihre Flexibilität. Agile ermöglicht es Teams, schnell auf Veränderungen zu reagieren, sei es aufgrund neuer Anforderungen, technologischer Entwicklungen oder Marktveränderungen. In einem agilen Umfeld werden Projekte in kurzen Iterationen, sogenannten Sprints, durchgeführt. Am Ende jedes Sprints wird das Projekt überprüft und bei Bedarf angepasst.

Höhere Produktqualität

Agile Methoden fördern die kontinuierliche Überprüfung und Verbesserung des Produkts während des gesamten Entwicklungsprozesses. Durch regelmässige Tests und Reviews in jedem Sprint können Fehler frühzeitig erkannt und behoben werden. Diese kontinuierliche Verbesserung führt in der Regel zu einer höheren Produktqualität.

Bessere Kundenorientierung

Agile Methoden stellen Kundinn:en in den Mittelpunkt des Entwicklungsprozesses. Durch regelmässige Feedback-Schleifen und enge Zusammenarbeit mit den Kundinn:en können deren Bedürfnisse und Wünsche besser berücksichtigt werden. Dies führt zu Produkten, die besser den Anforderungen entsprechen und zu einer höheren Kundenzufriedenheit führen können.

Erhöhte Transparenz und Zusammenarbeit

Agile Methoden fördern eine offene Kommunikation und Zusammenarbeit im Team. Regelmässige Meetings wie tägliche Stand-ups oder Retrospektiven sorgen dafür, dass alle Teammitglieder über den aktuellen Stand des Projekts informiert sind. Diese Transparenz hilft dabei, Probleme frühzeitig zu erkennen und schnell zu lösen.

Schnellere Markteinführung

Durch die iterative Entwicklung und die regelmässige Lieferung von funktionsfähigen Produktteilen können agile Teams ihre Produkte schneller auf den Markt bringen. Anstatt lange Entwicklungszyklen abzuwarten, können Unternehmen ihre Produkte schrittweise veröffentlichen und dabei schnell auf Kundenfeedback reagieren.

… und die Nachteile und Herausforderungen agiler Methoden

Trotz der oben beschriebenen Vorteilen haben sich im Laufe der Zeit gewichtige Nachteile und Herausforderungen der agilen Methoden gezeigt.

Überlastung der Teams

Ein zentrales Element agiler Methoden, wie Scrum oder Kanban, sind regelmässige Sprints oder Iterationen. Ein Sprint ist in der Regel ein kurzer, festgelegter Zeitraum, oft zwei bis vier Wochen, in dem ein Team eine bestimmte Anzahl von Aufgaben erledigen muss. Am Ende jedes Sprints sollte ein funktionsfähiges Produkt oder eine Produktkomponente vorliegen.

Dieser kontinuierliche Druck, in jedem Sprint Ergebnisse zu liefern, kann zu einer Überlastung der Teams führen. Mitarbeiter:innen fühlen sich oft gestresst, da sie ständig unter Hochdruck arbeiten müssen, um die gesetzten Ziele zu erreichen. Diese ständige Belastung kann langfristig zu Burn-out führen. Beispiele aus der Praxis zeigen, dass in einigen Unternehmen die Fluktuation in agilen Teams höher ist, weil Mitarbeiter:innen das Gefühl haben, dass sie dauerhaft auf Hochtouren arbeiten müssen, ohne ausreichende Pausen oder Phasen der Erholung.

Unzureichende Langzeitplanung

Agile Methoden legen grossen Wert auf kurzfristige Planung und Flexibilität. Diese Herangehensweise ermöglicht es den Teams, schnell auf Änderungen zu reagieren und ihre Arbeit entsprechend anzupassen. Allerdings kommt dabei oft die langfristige Planung zu kurz. Langfristige Ziele oder Strategien werden häufig nicht ausreichend berücksichtigt, was zu Problemen führen kann, wenn sich die Rahmenbedingungen ändern oder unerwartete Herausforderungen auftreten.

Beispielhaft dafür ist die Entscheidung über die Softwarearchitektur. In agilen Projekten wird oft eine minimalistische Architektur gewählt, um schnell Ergebnisse zu erzielen. Wenn sich jedoch im späteren Verlauf des Projekts herausstellt, dass diese Architektur nicht skalierbar oder erweiterbar ist, kann es kostspielig und zeitaufwendig sein, diese Entscheidungen rückgängig zu machen. Unternehmen berichten immer wieder davon, dass sie aufgrund unzureichender Langzeitplanung gezwungen waren, Projekte komplett neu aufzusetzen oder wesentliche Teile des Codes zu überarbeiten.

Kommunikationsprobleme

Agile Methoden betonen die Bedeutung der Kommunikation innerhalb des Teams und mit den Stakeholdern. Regelmässige Meetings, wie tägliche Stand-ups oder Retrospektiven, sollen sicherstellen, dass alle Beteiligten informiert sind und Probleme schnell gelöst werden können. In kleinen, eng zusammenarbeitenden Teams funktioniert dies meist gut.

In grösseren Organisationen oder in Teams aber, die über verschiedene Standorte verteilt sind, kann dies zu einer Herausforderung werden. Unterschiedliche Zeitzonen, kulturelle Unterschiede oder komplexe Hierarchien können die Kommunikation erschweren. Dies führt oft zu Missverständnissen, Verzögerungen oder sogar zu fehlerhaften Entscheidungen, weil wichtige Informationen nicht rechtzeitig ausgetauscht werden. In global agierenden Unternehmen scheitert die Einführung agiler Methoden oft, weil die Kommunikationsstrukturen nicht an die neuen Anforderungen angepasst wurden.

Mangelnde Dokumentation

Ein weiteres Prinzip der agilen Methoden ist die Priorisierung von funktionierender Software über umfassende Dokumentation. Der Gedanke dahinter ist, dass der Wert eines Produkts in seiner Funktionalität liegt und nicht in der Menge der dazugehörigen Dokumente. Während dies in der Entwicklungsphase oft sinnvoll ist, kann es in späteren Phasen zu Problemen führen.

Wenn wichtige Informationen nicht dokumentiert werden, kann dies die Wartung und Weiterentwicklung der Software erheblich erschweren. Neue Teammitglieder müssen viel Zeit aufwenden, um sich in den bestehenden Code einzuarbeiten, und ohne ausreichende Dokumentation kann es schwierig sein, Fehler zu beheben oder neue Funktionen hinzuzufügen. Unternehmen, die strikt agile Methoden anwenden, treten häufig Schwierigkeiten auf, wenn Entwickler:innen das Team verlassen und das Wissen über das Projekt verloren geht, weil es nicht dokumentiert wurde.

Kommerzialisierung und Fehlanwendung

Agile Methoden haben in den letzten Jahren einen regelrechten Hype erlebt. Dies hat dazu geführt, dass viele Unternehmen auf den agilen Zug aufgesprungen sind, ohne ein tiefes Verständnis der zugrunde liegenden Prinzipien. In einigen Fällen wurden agile Methoden nur teilweise oder falsch implementiert, was zu ineffizienten Prozessen und einer Verwässerung der ursprünglichen Prinzipien führte.

Einige Unternehmen haben agile Begriffe wie «Scrum» oder «Sprint» übernommen, ohne die dahinterliegende Philosophie zu verstehen. Sie führen zwar regelmässige Meetings durch, aber die eigentliche Flexibilität und Anpassungsfähigkeit, die agile Methoden auszeichnen, bleiben auf der Strecke. Dies führt oft zu Frustration im Team und bei den Stakeholdern, weil die erwarteten Verbesserungen ausbleiben.

Warum «Agile» obsolet ist

Agile Methoden, die einst als Revolution in der Softwareentwicklung gefeiert wurden, verlieren zunehmend an Bedeutung. Dies liegt an verschiedenen Faktoren, die im Laufe der Zeit deutlich geworden sind. Technologische Fortschritte, Skalierungsprobleme, die Entstehung von Hybrid-Modellen und die Erfüllung der ursprünglichen Ziele tragen alle ihren Anteil dazu bei, dass «Agile» heute als veraltet betrachtet werden kann.

Technologische Fortschritte und neue Methoden

Die Welt der Technologie und Softwareentwicklung hat sich seit der Einführung agiler Methoden erheblich weiterentwickelt. In den vergangenen Jahren sind neue Methoden und Werkzeuge entstanden, die viele der Schwächen von Agile adressieren und überwinden. Ein prominentes Beispiel ist DevOps. DevOps verbindet die Entwicklung (Development) und den Betrieb (Operations) und legt grossen Wert auf Automatisierung, kontinuierliche Integration und kontinuierliche Lieferung.

DevOps ermöglicht es Teams, schneller und effizienter zu arbeiten, indem es den gesamten Entwicklungs- und Betriebszyklus automatisiert. Dies führt zu einer nahtlosen Integration von Codeänderungen und einer schnelleren Bereitstellung von Software. Durch den Einsatz von Tools wie Jenkins, Docker und Kubernetes können Entwickler kontinuierlich neue Funktionen bereitstellen und gleichzeitig die Stabilität und Sicherheit der Software gewährleisten. Im Vergleich zu Agile, das stark auf menschliche Interaktionen und iterative Prozesse setzt, bietet DevOps eine höhere Effizienz und Skalierbarkeit, was es in vielen modernen Entwicklungsteams zur bevorzugten Methode macht.

Skalierungsprobleme

Agile Methoden wurden ursprünglich für kleine, selbstorganisierte Teams entwickelt. Diese sind in der Regel klein genug, um schnell und flexibel auf Änderungen reagieren zu können. Doch in grossen Organisationen und Projekten stossen agile Methoden an ihre Grenzen. Die Skalierung von Agile auf Unternehmensebene erweist sich oft als schwieriger als gedacht.

In dem Versuch, Agile auf grössere Projekte zu skalieren, wurden Ansätze wie das Scaled Agile Framework (SAFe) entwickelt. SAFe bietet eine Struktur, die es grossen Organisationen ermöglicht, agile Methoden auf mehrere Teams und Projekte anzuwenden. Allerdings ist SAFe komplex und schwierig umzusetzen. Die Einführung erfordert aber erhebliche Schulungen und eine tiefgreifende Veränderung der bestehenden Arbeitsweisen. Viele Unternehmen berichten, dass die Umsetzung von SAFe in der Praxis oft komplizierter und weniger effektiv ist als erwartet. Die ursprünglichen Vorteile von Agile, wie Flexibilität und einfache Umsetzung, gehen in diesen komplexen Skalierungsmodellen oft verloren.

Hybrid-Modelle

Ein weiterer Grund, warum Agile als obsolet betrachtet wird, ist die zunehmende Beliebtheit von Hybrid-Modellen. Viele Unternehmen haben erkannt, dass keine einzelne Methode alle Anforderungen eines Projekts oder einer Organisation erfüllen kann. Statt sich ausschliesslich auf eine Methode wie Agile zu verlassen, kombinieren sie die Stärken verschiedener Ansätze, um ein massgeschneidertes Modell zu entwickeln.

Ein hybrides Modell kann die Flexibilität und Iteration von Agile mit der Planbarkeit und Struktur traditioneller Methoden wie dem Wasserfallmodell verbinden. Zum Beispiel kann ein Unternehmen Agile für die Entwicklung von Software verwenden, während es gleichzeitig traditionelle Projektmanagementmethoden für die langfristige Planung und Ressourcenallokation einsetzt. Diese Hybrid-Ansätze ermöglichen es Unternehmen, die Vorteile mehrerer Methoden zu nutzen und gleichzeitig deren Schwächen zu minimieren. In der Praxis zeigt sich, dass solche hybriden Modelle oft effektiver sind und besser zu den spezifischen Anforderungen und Herausforderungen eines Projekts passen.

Erfüllung der ursprünglichen Ziele

In vielerlei Hinsicht haben agile Methoden ihre ursprünglichen Ziele bereits erreicht. Agile wurde entwickelt, um die Flexibilität und Anpassungsfähigkeit in der Softwareentwicklung zu erhöhen und den Kunden in den Mittelpunkt des Entwicklungsprozesses zu stellen. Diese Prinzipien sind heute in der gesamten Softwareindustrie fest verankert. Flexibilität, iterative Entwicklung und kundenorientierte Lösungen sind inzwischen Standardpraktiken geworden.

Da diese Prinzipien heute weitgehend akzeptiert und umgesetzt sind, besteht weniger Bedarf für eine spezielle Methodik wie Agile, die diese Aspekte betont. Unternehmen und Teams haben die agilen Werte in ihre täglichen Arbeitsabläufe integriert, auch ohne die formale Anwendung agiler Methoden. Dies hat dazu geführt, dass Agile als eigenständige Methode weniger relevant geworden ist, da die Ziele, die es ursprünglich verfolgte, inzwischen weitgehend erreicht sind.