✍️ OffenBeschreiben Sie, warum Komponenten-Teams in skalierten Umgebungen strukturell Abhängigkeiten erzeugen, und welche Alternativen bestehen.
Musterantwort: Ein Komponenten-Team verantwortet einen technischen Ausschnitt des Systems, etwa die Datenhaltung, eine Schnittstelle oder die Benutzeroberfläche. Fachliche Anforderungen verlaufen jedoch quer zu dieser Aufteilung: Fast jede nutzbare Funktion berührt mehrere Schichten. Die Folge ist, dass kein einzelnes Team eine Anforderung allein fertigstellen kann. Jede Anforderung muss auf mehrere Teams verteilt, zwischen ihnen abgestimmt, in eine Reihenfolge gebracht und anschließend zusammengeführt werden. Der Koordinationsaufwand wächst dabei überproportional mit der Anzahl der Teams, und Wartezeiten entstehen systematisch, weil ein Team auf die Vorleistung eines anderen angewiesen ist. Nach Conways Gesetz verfestigt sich diese Aufteilung zusätzlich in der Systemarchitektur, was die Entkopplung später weiter erschwert. Die naheliegende Alternative sind Feature-Teams, die durchgängig über alle Schichten arbeiten und eine Anforderung eigenständig liefern können. Der Preis sind breitere Qualifikation, höherer Lernaufwand und die Notwendigkeit gemeinsamer Standards, damit nicht jedes Team eigene Wege geht. Als Übergang eignen sich gemischte Formen, etwa Feature-Teams mit fachlichen Ansprechpartnern je Komponente, gemeinsame Code-Verantwortung statt exklusiven Besitzes sowie gezielter Wissensaufbau über Pair oder Mob Programming. Wichtig ist, den Umbau als Führungsentscheidung zu behandeln: Der Teamzuschnitt liegt nicht im Einflussbereich der Teams selbst.