Agilität in einer großen Abteilung mit vielen Entwickler:innen und Stakeholder:innen ist alles andere als trivial! Der Scrum Guide forderte bis 2020 eine Begrenzung der Entwickler:innen auf 9 Personen je Team. Spätestens danach muss per Definition dieses in zwei Teile aufgebrochen werden. Da diese Teams an demselben Produkt arbeiten, teilen diese sich die Anforderungen und je nach Skalierungsframework werden weitere Meetings zur Koordination gebraucht. Auch das Risiko eines gemeinsamen Release des Produkts steigt signifikant an.
Doch wie arbeiten größere Softwareentwicklungsabteilungen mit vielen Entwickler:innen am Anfang ihrer agilen Transformation an einem Produkt? Viele am Markt etablierte große Organisationen setzen hierbei auf Skalierungsframeworks, um Team, Releases und Anforderungen zu koordinieren. Wenn es um diese Frameworks wie LeSS, SAFe und Nexus geht, scheint es immer eine implizite Annahme zu geben: Die Anzahl der Teams ist die Variable, nicht die Komplexität des Produkts selbst.
Doch genau diese Top-down-Ansätze lösen nicht die Probleme eines komplexen Produkts. Das Ziel von Scrum, spätestens nach jedem Sprint Feedback zu der Entwicklung, dem sogenannten Inkrement zu bekommen, wird fast nie erreicht. Die Zyklen zum Lernen werden deutlich länger. Zusätzlich bringen die Ansätze sogar neue Probleme mit sich. Die technischen Abhängigkeiten, die politischen Spiele und die Probleme zwischen den Teams steigen stark an.
Um die Komplexität zu beherrschbar zu machen, muss das Produkt in kleinere, aber jeweils wertstiftende Einheiten aufgebrochen werden. Doch wie kann dieses realisiert werden? Es bieten sich kollaborative Ansätze an, in diesem Fall strategisches Domain-driven Design mit Event Storming und Domain Storytelling. Dabei werden große Systeme bzw. Monolithen in sogenannte Bounded Contexte aufgeteilt. Anhand dieser Kontexte können autonomere Teams und Produkte realisiert werden. Durch die Berücksichtigung von bewährten Kommunikations- und Kollaborationsmustern wie der Sprint Review oder dem Backlog Refinement aus Scrum können die Releases dann relativ einfach team- und produktübergreifend koordiniert werden.
Der praxisnahe Talk greift zwei echte Projektsituationen und Problemstellungen auf und zeigt, wie man gemeinsam mit dem Fachbereich und den Entwicklern zu dynamischen, selbstorganisierenden Einheiten kommt. Nils Hyoma stellt komprimiert die im agilen Projekt in einer hochkomplexen Umgebung gewonnen Erfahrungswerte vor. Er erläutert, wie und weshalb ein gut durchgeführtes strategisches Domain-driven Design zum zentralen Erfolgsfaktor in agilen Projekten werden kann.