Frameworks und Pattern Libraries
Bild: Pxhere - CC0 1.0 |
Wenn es etwas gibt worauf sich die Vertreter der meisten agilen Vorgehensmodelle einigen können, dann dass das was sie jeweils vertreten auf keinen Fall eine Methode ist. Anders als diese wollen sie keine Detailvorgaben machen wer wann was mit welchem Ziel zu tun hat, sondern mehr Freiheit bei der Umsetzung lassen. Wie sie stattdessen bezeichnet werden sollten ist dagegen weit weniger klar. Vor allem ein Begriff wird dabei häufig herangezogen aber auch abgelehnt - der des Frameworks.
Um zu verstehen warum dieser Begriff immer wieder kontrovers diskutiert wird hilft ein Blick auf seinen Bedeutungs-Ursprung, den physischen Rahmen (englisch: Frame), z.B. den einer Tür oder eines Bildes. Dieser hat zwei Funktionen: zum einen stützt und verstärkt er das eingerahmte Objekt, also die Tür oder die Leinwand, zum anderen begrenzt er es aber auch. Es darf nicht grösser sein als der Rahmen, wenn das Gesamtkonstrukt funktionieren soll.
Abgeleitet davon haben die agilen Prozess- oder Methoden-Frameworks eine ähnliche Funktion: zum einen bilden sie eine tragende Stuktur für die bewusst frei gestaltbar gelassenen Bestandteile, die in der Umsetzung für grosse Flexibilität sorgen, zum anderen setzen sie aber auch klare Grenzen die nicht überschritten werden dürfen, und zwar in Form eines nicht verhandelbaren Mindestbestandes an Rollen, Regeln oder Prozessen.
Beispiele dafür finden sich vor allem in den zwei bekanntesten Frameworks, Scrum und SAFe. So heisst es in den Schlussbemerkungen des Scrum Guide: "The Scrum framework, as outlined herein, is immutable. While implementing only parts of Scrum is possible, the result is not Scrum. Scrum exists only in its entirety and functions well as a container for other techniques, methodologies, and practices." Die beiden Funktionen eines Rahmens finden sich hier klar erkennbar wieder.
Auch im Scaled Agile Framework (SAFe), dass den Framework-Begriff sogar in seinem Namen trägt, kann man die beiden Rahmenfunktionen finden. Zum einen definiert Essential SAFE "the minimal set of roles, events, and artifacts required to continuously deliver business solutions via an Agile Release Train (ART)", umgeben wird es aber von einer riesigen Menge optionaler und frei gestaltbarer Elemente, durch die jede Umsetzung anders aussehen kann.
Was vielen "agilen Freigeistern" an dieser Stelle aufstösst ist die Rigidität mit der Mindestanforderungen wie der Scrum Master (in Scrum) oder der Release Train (in SAFe) eingefordert werden. Das wird als zu einengend empfunden, bis zu dem Punkt an dem diesen beiden Frameworks sogar abgesprochen wird überhaupt noch agil zu sein (für Beispiele dafür braucht man nur nach "Scrum is not agile" oder "SAFe is not agile" zu googeln).
Das häufig bevorzugte Gegenmodell sind Ansätze die keine festen Bestandteile vorgeben und nur noch aus einer Ansammlung optionaler Good Practices bestehen. Der Klassiker in dieser Hinsicht ist Kanban,1 von dem eine Vielzahl möglicher Varianten besteht, aber auch DevOps, Extreme Programming und sogar Disciplined Agile sehen sich eher als Baukästen, die zwar ein klares Ziel haben, aber keinen Mindestbestande an Rollen, Regeln oder Prozessen vorgeben.
Der englische Begriff der diese Idee vermutlich am besten umschreibt ist die "Pattern Library", unter anderem zu finden im Unfix Model von Jürgen Appelo. Genau wie bei den als Vorbild dienenden Software Libraries oder Design Pattern Libraries gibt es zwar auch hier vorgefertigte Teile, die von den Anwendern aber beliebig ausgewählt, kombiniert oder angepasst werden können, bis das Ergebnis den jeweiligen Erfordernissen entspricht. Maximale Freiheit und Variabilität also.
Was erwähnt werden muss ist aber auch, dass die durch die Benutzung methodischer Pattern Libraries gegebenen Freiheiten mit einem Risiko verbunden sind. Ohne die Absicherung durch die in den Frameworks vorgegebenen Mindeststandards kann es zu bewussten oder versehentlichen (Wieder-)Einführungen von Wasserfall- oder Top-Down-Management-Elementen kommen. Das ist zwar nicht zwangsläufig, aber eben auch nicht auszuschliessen.