Pasta-shaped Teams
Bild: Wikimedia Commons / Popo le Chien - CC0 1.0 |
Bei der Vermittlung komplexer oder komplizierter Inhalte geht nichts über eine bildhafte Sprache. Dinge die man sonst nur schwer im Gedächtnis behalten könnte werden auf diese Weise gleich doppelt in den Erinnerungen verankert, sowohl in Wort- als auch in Bildform. Wenn es dann noch gelingt Metaphern zu finden die ungewöhnlich oder kreativ sind werden diese im Zweifel sogar bereitwillig weitererzählt und gelangen so dauerhaft in ein kollektives Gedächtnis.
Eines der bekanntesten Beispiele dafür ist The evolution of software architecture - Italian food perspective (siehe hier). In ihm werden verschiedene Paradigmen der Software-Architektur dadurch nachvollziehbar gemacht, dass sie mit italienischen Nudelgerichten verglichen werden. Schon lange trage ich den Gedanken mit mir herum, dass sich diese Bildsprache auch auf die Typologie von Entwicklungsteams anwenden lässt. Gedacht, gemacht! Hier kommen sie, die Pasta-shaped Teams.
Bild: Pixabay / Salahgraphic - Lizenz |
Der erste Team-Typ sind die Spaghetti-Teams. Charakterisiert sind sie dadurch, dass ihre einzelnen Mitglieder sehr lange an sehr schmal geschnittenen Aufgaben sitzen, wodurch es ihnen schwerfällt ihren gemeinsamen Inhalt (symbolisiert durch das Ragù Bolognese) zusammenzuhalten. Spricht man mit den Mitgliedern findet man immer wieder lange Enden die irgendwohin führen, im Zweifel in Legacy-Tätigkeiten wo noch "Restaufwände" zu erledigen sind. Alles wirkt irgendwie unordentlich.
Bild: Wikimedia Commons / PoiseWinsTitles - CC BY 2.0 |
Lasagne-Teams bringen schon etwas mehr Ordnung zusammen, indem sie sich in Schichten organisieren (z.B. Frontend, Middleware, Backend). Das beseitigt zwar das gröbste Durcheinander, allerdings besteht das Risiko, dass die Schichten aufeinander verrutschen und nicht mehr genau aufeinanderpassen wenn man versucht handhabbare Teile abzutrennen. Und in alle seitlichen Richtungen laufen die Inhalte in die Breite um sich mit allem zu vermischen was daneben liegt.
Bild: Wikimedia Commons / Alpha - CC BY-SA 2.0 |
Cannelloni-Teams gehen noch einen Schritt weiter. Der Inhalt ist bereits von überschaubarer Grösse und wird ausserdem durch eine feste Hülle zusammengehalten, die es einfacher macht einzelne Einheiten unabhängig von den anderen zu bewegen. Es besteht auch nicht mehr die Gefahr, dass die Inhalte an den Seiten mit anderen ineinanderfliessen - zumindest nicht an allen. Vorne und hinten gibt es noch offene Stellen, z.B. bei Konzeption oder Betrieb. Hier können sich noch wertvolle Teile der Kontrolle entziehen.
Bild: Wikimedia Commons / Cyclone Bill - CC BY-SA 2.0 |
Diesen Kontrollverlust haben Ravioli-Teams nicht mehr. Die Inhalte werden auf allen Seiten zusammengehalten, jedes einzelne Objekt ist damit für sich genommen vollständig und servierbereit. Die entsprechende Organisationsform wäre das crossfunktionale Team, das keine Abhängigkeiten nach Aussen mehr hat. Allerdings: das Ganze ist dadurch so gross und unhandlich, dass es am Ende zerteilt werden muss und dann doch wieder offene Seiten hat, die kaum zusammenzuhalten sind.
Bild: CCNull / Marco Verch - CC BY 2.0 |
Gelöst wird auch diese letzte Herausforderung schliesslich durch die Tortellini-Teams. Alles was auf die Ravioli-Teams zutrifft, trifft auch auf sie zu - mit einer weiteren Verbesserung: es ist gelungen sie auf eine so kleine Grösse zu bringen, dass sie bis zum Schluss nicht aufgeteilt werden müssen. Das Äquivalent wäre z.B. ein mit Microservices arbeitendes Feature-Team. Die Kontrolle über die Inhalte ist hier am grössten, die potentielle Unordnung am geringsten.
Und das sind sie, die Pasta-shaped Teams in ihrer ganzen Vielfalt. Dass aus einer "agilen Perspektive" die Ravioli- und Tortellini-Teams den anderen zu bevorzugen sind dürfte klar sein, in der Realität dürften die meisten agil arbeitenden Teams allerdings eher Cannelloni-artig sein. Letztendlich gilt aber, dass jede Variante besser ist als die jeweils vor ihr genannten. Auch ein Lasagne-Team kann im Vergleich zu einem Spaghetti-Team ein Fortschritt sein.