© Ekaphon maneechot/Shutterstock.com
Warum viele Organisationen weniger agil sind, als sie denken

Agile Anti-Patterns


Mit der zunehmenden Verbreitung agiler Softwareentwicklung steigt auch die Zahl der problematischen Projekte. Ziele wie eine schnelle Reaktionsfähigkeit auf Änderungswünsche werden nicht erreicht, obwohl (vordergründig) nach agilen Grundsätzen vorgegangen wird. In diesem Artikel fassen wir wiederkehrende Praxiserlebnisse in Form von Anti-Patterns zusammen und schildern, wie agile Entwicklung in vielen Fällen zu dogmatisch gelebt oder als Ausrede für schlechte Projektorganisation missbraucht wird. Diese so genannten Anti-Patterns ermöglichen dem Leser, eigene Projekte auf ähnliche Missstände zu prüfen und gegebenenfalls dagegen vorzugehen.

Bereits kleinere und mittlere Softwareprojekte unterliegen vielfältigen Einflüssen und erzeugen damit ein hohes Maß an Planungsunsicherheit. Noch bis weit in die Neunzigerjahre hinein wurde versucht, diesen Gegebenheiten mit strukturierten, phasenbasierten Vorgehensmodellen zu begegnen, die dabei helfen sollten, eine zuvor definierte Menge von Anforderungen systematisch in ausführbare Software zu verwandeln. Erst langjährige und oft schmerzhafte Erfahrungen mit ins Stocken geratenen oder komplett fehlgeschlagenen Projekten ließen in Praxis und Wissenschaft die Erkenntnis reifen, dass die kontinuierlichen Wendungen und Überraschungen eines Softwareprojekts auch durch eine noch so gute Planung nicht aus der Welt zu schaffen sind [1]. Entsprechend fanden in den letzten Jahren agile Vorgehensmodelle, die pragmatisch auf Änderungen reagieren, immer weitere Verbreitung. Dogmatisch oder schlicht falsch angewendete agile Prinzipien führen jedoch nach unseren Beobachtungen in der Praxis häufig zu altbekannten Problemen: Projekte geraten ins Stocken, sodass Entwicklungsorganisationen ihre Agilität im Wettbewerb um Aufträge und Kunden verlieren. Häufig treten dabei wiederkehrende Fehler („Anti-Patterns“) zu Tage, die wir in diesem Artikel näher beleuchten möchten, um mögliche Vermeidungsstrategien aufzuzeigen.

Grundideen agiler Entwicklung …

Agile Entwicklung ist ein Schlagwort, unter dem verschiedene „leichtgewichtige“ Ideen und Best Practices mit dem Ziel zusammengefasst werden, trotz Planungsunsicherheit auf dem Weg zum Projektziel zu bleiben. Das agile Manifest [2] aus dem Jahre 2001 beschreibt einige grundlegende Ideen, die das Verständnis von agiler Entwicklung bis heute prägen. Es setzt bewusst Akzente auf nicht technische Aspekte wie Individuen und deren Interaktionen, die vor dem Hintergrund der bis dahin vorherrschenden wasserfallartigen Entwicklungsprozesse provokant erscheinen, bestätigt aber gleichzeitig den Wert etablierter Entwicklungspraktiken.

Während das agile Manifest nur grundsätzliche Eckpfeiler definiert, gibt es mittlerweile zahlreiche agile Methoden und Entwicklungspraktiken, die Agilität praktikabel machen: Scrum [3] ist wahrscheinlich das derzeit bekannteste Beispiel dafür, beschränkt sich im Wesentlichen aber auf Handlungsempfehlungen für das Projektmanagement. Es empfiehlt, die Systementwicklung in überschaubare Sprints zu untergliedern und den Projektfortschritt durch regelmäßige Überprüfungen transparent zu machen, um erkannte Probleme dynamisch zu beheben. Darüber hinaus gibt es Ansätze, die eher technisch orientierte Praktiken zur Softwareentwicklung beitragen, wie die testgetriebene Entwicklung aus Extreme Programming (XP) [4].

Aber auch agile Methoden und Entwicklungspraktiken definieren keinen allgemeingültigen Standardprozess, der ohne Anpassungen für alle Organisationen und Projekte Verwendung finden könnte. Es sollte daher selbstverständlich sein, dass auch agile Methoden und die darin verwendeten Praktiken an den jeweiligen Kontext angepasst werden müssen.

… und was davon in der Praxis ankommt

Erste Erfolge in der Produktentwicklung zeigen sich bei der Anwendung von agilen Methoden in der Praxis meistens schnell: Iterative Entwicklung und frühe Releases liefern nach wenigen Wochen oder Monaten benutzbare Produktinkremente und machen Hoffnung auf eine dauerhaft hohe Entwicklungsproduktivität. Aber wie nachhaltig sind diese Fortschritte tatsächlich? Mittel- und langfristig macht sich vielfach Ernüchterung breit, wenn beispielsweise an einem System mehr weitreichende Refactorings durchgeführt werden müssen als neue Funktionalitäten integriert werden können. Selbst wenn agile Methoden vordergründig einfacher, leichtgewichtiger und weniger starr erscheinen als traditionelle Prozessmodelle, können sie doch unmöglich die gesamte Komplexität der Softwareentwicklung im Handumdrehen lösen. Insbesondere ihre großen Freiräume, die geeignet mit konkreten Entwicklungspraktiken gefüllt werden müssen, werden oft nicht erkannt, geschweige denn sinnvoll genutzt.

In zahlreichen Kooperationen und Gesprächen mit Firmen haben wir in den letzten Jahren verstärkt den Eindruck gewonnen, dass viele agile Werte und „Best Practices“ entweder zu dogmatisch ausgelegt oder aber bewusst ignoriert werden, was den mittel- und langfristigen Erfolg von Projekten in Frage stellt. Entsprechend sind heute viele Firmen innerhalb ihrer agilen Entwicklungsprojekte in Situationen gefangen, die ähnlich starr und unkontrollierbar geworden sind, wie es mit konventionellen Vorgehensmodellen der Fall gewesen ist.

Da sich die Ursachen und Symptome dieser Problematik oft über Organisationsgrenzen hinweg ähneln oder gar wiederholen, liegt die Verwendung des Begriffs „agiles Anti-Pattern“ auf der Hand. Wir möchten im Folgenden einige Anti-Patterns, die uns in Zusammenarbeit mit der Industrie in den letzten Jahren am häufigsten begegnet sind, sowie Lösungsmöglichkeiten dafür aufzeigen. Die Anti-Patterns lassen s...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang