metaminds_skalierteagilitaet_ziel
Future Organization

Skalierte Agilität – wie Teams effizient orchestriert werden (Teil I)

Artikel

09.03.2023

Komplexe Softwaresysteme für große Unternehmen wirklich agil zu entwickeln, stellt uns auf vielen Ebenen vor Herausforderungen: kulturell, organisatorisch, finanziell, infrastrukturell und architektonisch. In unserer Artikelserie betrachten wir verschiedene Probleme der skalierten Agilität aus ganzheitlicher Unternehmenssicht und geben praktische Verbesserungsvorschläge.

Transformation Strategy

Die skalierte agile Entwicklung erfordert, dass viele Teams auf ein gemeinsames Ziel hinarbeiten. Eine optimale Teamstruktur minimiert Kommunikations- und Abstimmungsaufwand und verkürzt so die Time to Market - die Dauer zwischen Idee und Lieferung. Aber gibt es überhaupt eine optimale Teamstruktur? Leider lautet die Antwort: normalerweise nicht. Aber es gibt Bausteine und Heuristiken, die zu einer deutlichen Verbesserung gegenüber einer Ad-hoc-Topologie führen können, wie wir in der Praxis gesehen haben.

Was bedeutet skalierte Agilität für Teams?

Bisher haben wir alles richtig gemacht: Unser interdisziplinäres agiles Team produziert kontinuierlich - iterativ - Lösungsinkremente. Jetzt aber soll eine richtig große Anwendung gebaut werden: eine globale Versicherungslösung. Wir skalieren.

Nun haben wir viele Teams und ordnen jedem von ihnen klar separierte Teilaufgaben zu, zum Beispiel verschiedene Features der Gesamtlösung oder Teilbereiche eines Ende-zu-Ende-Prozesses. Eine ideale Situation, was den Synchronisierungsaufwand zwischen unseren Feature-Teams betrifft – leider für uns nur bedingt zu gebrauchen.

Wir stellen nämlich fest, dass unser Technologie-Stack von Frontend über Middleware zu Backend und Datenbanken so groß ist, dass kein cross-funktionales Team aus neun oder elf Menschen die notwendigen Skills zusammenbringen kann. Wir schrauben also unsere Ansprüche herunter: Als nächstes clustern wir Teams in Tribes oder Agile Release Trains (ARTs). Lediglich die Gesamtheit der Cluster muss cross-funktional sein.

Das Bild zeigt eine grafische Darstellung des Skalierungsprozesses von einem einzelnen agilen Team zu mehreren Team-Clustern, um eine Lösung zu entwickeln. Hier sind die Details:

### Linke Seite:
- **Agiles Team:**
  - Ein einzelnes agiles Team ist dargestellt durch ein Symbol mit mehreren Teammitgliedern in einem Kreis.
  - Das Team arbeitet an einer Lösung, die durch ein kleines gelbes Würfelsymbol dargestellt wird.
  - Ein Pfeil zeigt vom agilen Team zur Lösung, was den Entwicklungsprozess darstellt.

### Rechte Seite:
- **Skalierung:**
  - Der Skalierungsprozess ist durch einen Pfeil dargestellt, der von links nach rechts verläuft und den Übergang von einem einzelnen agilen Team zu mehreren Team-Clustern zeigt.
  
- **Team-Cluster:**
  - Mehrere Team-Cluster sind dargestellt, die jeweils aus mehreren agilen Teams bestehen.
  - Die Team-Cluster sind in verschiedenen Farben dargestellt, um die unterschiedlichen Gruppen zu kennzeichnen:
    - Rot
    - Gelb
    - Grün
    - Blau
    - Lila
  - Jedes Team-Cluster besteht aus mehreren Symbolen, die Teammitglieder darstellen.
  - Ein großer Kreis umschließt die Team-Cluster, was die Zusammenarbeit und Koordination zwischen den Clustern symbolisiert.

- **Lösung:**
  - Auf der rechten Seite ist eine größere gelbe Würfelform dargestellt, die die skalierte Lösung repräsentiert.
  - Ein Pfeil zeigt von den Team-Clustern zur Lösung, was den kollaborativen Entwicklungsprozess darstellt.

### Zusammenfassung:
- Das Bild zeigt, wie ein einzelnes agiles Team skaliert werden kann, um mehrere Team-Cluster zu bilden, die gemeinsam an einer größeren und komplexeren Lösung arbeiten.
- Der Skalierungsprozess ermöglicht eine effizientere und koordinierte Entwicklung, indem mehrere Teams zusammenarbeiten, um eine umfassendere Lösung zu entwickeln.

Diese Darstellung verdeutlicht den Übergang von einem kleinen, fokussierten Team zu einer größeren, koordinierten Gruppe von Teams, die gemeinsam an einer komplexen Aufgabe arbeiten.

(Quelle: Eigene Darstellung/metafinanz)

Punktwolken im Raum

Aber wie genau clustern wir? Wir erinnern uns an graphentheoretische Cluster-Optimierung. Die Aufgabe: Finde Punktwolken (Team-Cluster) im Raum, so dass die Punkte (Teams) mit den größten Abhängigkeiten und damit dem größten Kommunikationsbedarf möglichst in derselben Wolke oder zumindest in einer nahe gelegenen Wolke liegen. Die Analogie zum Bürogebäude zwingt sich auf: wer viel miteinander zu tun hat, sollte sich im selben Büro oder zumindest im selben Stock befinden. Nur für seltene Fälle sollte man einmal quer durch das Bürogebäude laufen müssen.

Wenden wir also ein Optimierungsverfahren zur Annäherung an die optimale Teamtopologie an. Man ahnt es schon: Das geht so einfach nicht. Uns fehlen zum Beispiel die Daten über die Häufigkeit und Struktur des Kommunikationsbedarfs. Zudem können die sich im Laufe der Zeit ändern. Es muss einen besseren Weg geben.

Auswirkungen schlechter Teamorchestrierung

Kommen wir auf unser Versicherungsportal zurück. Die Teamstruktur folgt der dreistufigen Lösungsarchitektur und enthält Teams für Frontend-, Middleware- und Backend-Komponenten. Zusätzlich wurden beim „vertikalen“ Teamschnitt die (operativen) Wertströme berücksichtigt: Für jeden der durch unser Portal bereitgestellten Dienste umfasst ein Wertstrom alle wesentlichen Schritte, die vom Auslöser bis zur Bereitstellung des Ergebnisses erforderlich sind. Typische Wertströme einer Versicherung sind etwa „Sales“ für die Suche, Auswahl, Konfiguration und den Kauf eines Versicherungsproduktes oder für „Claims“ im Versicherungsfall.

Das Bild zeigt eine grafische Darstellung von Team-Clustern, die in einem Wertstrom (Value Stream) organisiert sind. Die Darstellung ist in drei Hauptbereiche unterteilt: Wertströme, Team-Cluster und Abhängigkeiten. Hier sind die Details:

### Wertströme (Value Streams):
- Oben im Bild sind fünf Schritte des Wertstroms dargestellt:
  - Step 1
  - Step 2
  - Step 3
  - Step 4
  - Step 5

### Team-Cluster:
- Die Team-Cluster sind in drei Kategorien unterteilt und in Reihen angeordnet:
  1. **Team Clusters for Frontend Services:**
     - Diese Teams sind für die Entwicklung und Wartung von Frontend-Diensten verantwortlich.
  2. **Team Clusters for Middleware:**
     - Diese Teams kümmern sich um die Middleware, die die Kommunikation und Datenverwaltung zwischen Frontend und Backend ermöglicht.
  3. **Team Clusters for Legacy Backend Systems:**
     - Diese Teams sind für die Wartung und Weiterentwicklung von älteren Backend-Systemen zuständig.

### Abhängigkeiten:
- **Business and Feature Dependencies:**
  - Diese Abhängigkeiten sind durch horizontale Pfeile dargestellt, die zwischen den Team-Clustern verlaufen.
- **Functional and Data Dependencies:**
  - Diese Abhängigkeiten sind durch vertikale Pfeile dargestellt, die zwischen den Team-Clustern verlaufen.

### Visualisierung:
- Jedes Team-Cluster ist durch ein Symbol dargestellt, das mehrere Teammitglieder zeigt.
- Die Abhängigkeiten sind durch farbige Pfeile dargestellt:
  - **Horizontale Pfeile (Business and Feature Dependencies):** Rosa
  - **Vertikale Pfeile (Functional and Data Dependencies):** Lila

Diese Darstellung zeigt, wie verschiedene Team-Cluster in einem Wertstrom organisiert sind und wie sie durch verschiedene Arten von Abhängigkeiten miteinander verbunden sind. Die Organisation in Frontend-, Middleware- und Backend-Teams ermöglicht eine klare Trennung der Verantwortlichkeiten und erleichtert die Zusammenarbeit und Koordination zwischen den Teams.

(Quelle: Eigene Darstellung/metafinanz)

So weit, so gut. In der Praxis haben wir dennoch starke Abhängigkeiten zwischen Teams und Clustern feststellen müssen. Woran lag das? Zum einen wurden die Wertströme zwar definiert, aber nicht immer durch hinreichend abgegrenzte Module mit definierten Schnittstellen abgebildet. Zum anderen führte die mangelnde funktionale Kapselung unterer Schichten sowie die teilweise monolithischen Kernsysteme mit gemeinsamen Datenbereichen zu weiteren horizontalen und vertikalen (schichtübergreifenden) Abhängigkeiten. In der Konsequenz war die Synchronisation – insbesondere zwischen Clustern – aufwändig, dies führte zu Wartezeiten und Verzögerungen. Der "Wertfluss" war gebremst.

Einführung von Teamtopologien

Wie wir gesehen haben, reicht eine Wertstromorientierung allein nicht aus. Wir brauchen auch Unterstützung durch eine modulare Geschäfts- und Systemarchitektur, um eine effiziente Teamorganisation aufzubauen. Wie können nun aber Architektur, Wertströme und Teamtopologie in der Praxis aufeinander ausgerichtet werden?

Eine wertvolle Idee dazu liefern Matthew Skelton und Manuel Pais in ihrem Buch "Team Topologies". Sie führen vier standardisierte und klar definierte Typen von Teams ein (die wir hier Kategorie nennen wollen) und zeigen, dass mit diesen alle in der Praxis relevanten Team-Strukturen aufgebaut werden können. Außerdem beschreiben sie typische Muster, nach denen sich die Kommunikation zwischen den Kategorien richtet.

Das Bild zeigt eine grafische Darstellung, die aus drei farbigen Dreiecken besteht, die zusammen ein größeres Dreieck bilden. Jedes der drei Dreiecke repräsentiert einen wichtigen Aspekt der Organisationsstruktur und -ausrichtung. In der Mitte, wo sich die Dreiecke treffen, steht eine zentrale Aussage. Hier sind die Details:

### Dreiecke:
1. **Team Topology (grünes Dreieck oben):**
   - **Beschreibung:** Dieses Dreieck repräsentiert die Struktur und Organisation der Teams innerhalb einer Organisation. Es bezieht sich darauf, wie Teams gebildet, organisiert und miteinander vernetzt sind, um effektiv zusammenzuarbeiten.

2. **Value Streams (gelbes Dreieck links unten):**
   - **Beschreibung:** Dieses Dreieck repräsentiert die Wertströme innerhalb der Organisation. Ein Wertstrom ist eine Reihe von Schritten, die unternommen werden, um ein Produkt oder eine Dienstleistung zu liefern. Es geht darum, wie Wert für den Kunden geschaffen und geliefert wird.

3. **Architecture (rosa Dreieck rechts unten):**
   - **Beschreibung:** Dieses Dreieck repräsentiert die Architektur der Systeme und Prozesse innerhalb der Organisation. Es bezieht sich auf die Struktur und das Design der technischen und organisatorischen Systeme, die die Wertströme unterstützen.

### Zentrale Aussage:
- **Align to optimize flow (mittleres Dreieck):**
  - **Beschreibung:** Die zentrale Aussage betont die Notwendigkeit, die Team-Topologie, die Wertströme und die Architektur aufeinander abzustimmen, um den Fluss der Arbeit und den Wertstrom zu optimieren. Es geht darum, sicherzustellen, dass alle Aspekte der Organisation harmonisch zusammenarbeiten, um Effizienz und Effektivität zu maximieren.

Diese Darstellung zeigt, wie wichtig es ist, die Struktur der Teams, die Wertströme und die Architektur der Systeme aufeinander abzustimmen, um den Arbeitsfluss zu optimieren und den maximalen Wert für den Kunden zu schaffen.

(Quelle: Eigene Darstellung/metafinanz)

Die vier Team-Kategorien sind:
 

Stream Aligned Team

Die führende Teamkategorie. Wie das oben erwähnte Feature Team ist ein Stream Aligned Team auf einen oder mehrere Schritte eines einzelnen End-to-End-Wertstroms ausgerichtet. Es lässt sich leicht an Änderungen anpassen und implementiert in der Regel kundenorientierte Lösungsfunktionen.

Platform Team

Durch die Bereitstellung gemeinsamer, generischer Schnittstellen (APIs, Services) stellen diese Teams die Unabhängigkeit und Flexibilität von Stream Aligned Teams sicher. Ein Platform Team ist in der Regel als langfristiger und autonomer Organismus konzipiert und verfügt über Erfahrung sowie Kompetenzen im Produkt-Management.

Enabling Team

Diese Kategorie kann als Verallgemeinerung des SAFe-Konzepts eines Systemteams verstanden werden. Im Gegensatz zu Community of Practices oder Chapters kann es eine vorübergehende Lebensdauer haben, in der es andere Teams auf drei Arten kontinuierlich verbessert:

  • Wissen und Fähigkeiten übertragen
  • Hindernisse beseitigen
  • Erleichterung der Infrastruktur

Complicated Subsystem Team

Diese Kategorie widmet sich speziellen Fähigkeiten für spezielle Komponenten (in einem bestimmten Kontext), beispielsweise Embedded Systems, Krypto-Lösungen oder Versicherungsaltsystemen.

Weiter zum 2. Teil der Serie

Was bieten diese Teamkategorien konkret für Vorteile? Warum sollten sie helfen, die Effizienz der Teamorchestrierung zu steigern, und wie kann ich in der Praxis vorgehen? Antworten darauf finden sich in Teil 2 unserer Serie.

Co-Autor: Stefan Hanslmaier (Allianz – XING)

Quelle Titelbild: AdobeStock/pict rider

Verwandte Einträge