Reverse Conway Maneuver

Statt die Softwarearchitektur zu forcieren und immer wieder Arbeit in das Einhalten des Entwurfs zu stecken, können wir auch die Teams und die Organisation selbst so gestalten, wie es die Softwarearchitektur benötigt. Soll die Software aus kleinen, unabhängigen Diensten bestehen, so müssen es die Teams auch und entsprechend die Teams besetzt sein: Frontend, Backend, Datenbank, sodass dieses Team unabhängig von anderen Teams Änderungen vornehmen kann. Nur so ist garantiert, dass Abhängigkeiten des Teams in die Softwarearchitektur mit einfließt.

Eine bestehende Softwarearchitektur lässt sich nicht so schnell ändern wie eine Teamstruktur. Mithilfe des Reverse Conway Maneuver gelingt es, die gewünschte Architektur in einer Teamstruktur umzusetzen. Allerdings wird die bestehende Softwarearchitektur gegen diese neue Architektur drücken. Um diesen Druck abzulassen, ist es notwendig zeitlich begrenzte Kollaborationen und Facilitating Interaktionen zu etablieren und bewusst die Software so abzuändern, dass diese Interaktionsmodi nicht mehr notwendig sind. Durch die zeitliche Begrenzung wird außerdem sichergestellt, dass die Annahmen korrekt sind, welche der neuen Teamarchitektur zugrunde gelegt wurden.

Alle Probleme mit den neuen Verantwortlichkeiten und deren Grenzen können so schnell identifiziert und beseitigt werden, indem entsprechende Maßnahmen ausgeführt werden, bevor zu viel aufgebaut wurde.

Kollaboration kann außerdem dabei helfen, XaaS Interaktionen zu prüfen und die zur Verfügung gestellten APIs zu stabilisieren und funktional anzupassen. Damit wird der Dienst erst wertvoll für die Organisation. Eine Kollaboration kann also auch zu Beginn eines anderen Modus stehen.

Eine Kollaboration kann auch einen anderen Modus frisch aufleben lassen, sollte dieser bereits lange Zeit bestehen und etwas eingeschlafen sein. Auch kann er den Erfahrungsaustausch ankurbeln, solange die Kollaboration nur temporär eingeführt wird.