Conway’s Law: Der Einfluss der Organisationsstruktur auf die Softwarearchitektur

Die Struktur der Teams ist nicht nur nebensächlich, sondern hat erhebliche Auswirkungen auf das gesamte Softwareprodukt. Diese Erkenntnis ist als Conway’s Law bekannt. Vereinfacht ausgedrückt besagt dieses “Gesetz”, dass die Softwarearchitektur von der Struktur der Organisation abhängt. Dies ist nicht positiv gemeint, sondern wird als potenzielles Problem betrachtet.

Ursprung von Conway’s Law

Conway’s Law stammt von Dr. Melvin Conway, der es bereits 1968 formulierte. Seine Aussage lässt sich wie folgt zusammenfassen: Die Architektur der Software ist ein Abbild der Organisationsstruktur des Unternehmens.

Die Auswirkung der Teamstruktur

Wenn in einem Unternehmen vier Software-Entwicklungsteams existieren, wird das Produkt wahrscheinlich aus vier einzelnen Projekten bestehen, die unabhängig voneinander entwickelt werden – selbst wenn sie eigentlich zusammengehören. Wie gut diese vier Teile zusammenpassen, hängt davon ab, wie eng und effektiv diese Teams zusammenarbeiten.

Kommunikationsherausforderungen zwischen Teams

Wenn die Kommunikation zwischen zwei Teams stockt, treten genau an dieser Stelle im Produkt Probleme auf. Das ist nicht verwunderlich, da die Kommunikation und Zusammenarbeit innerhalb eines Teams stets am einfachsten ist.

Es ist sehr schwierig, Conway’s Law zu entkommen. Es erfordert einen erheblichen Managementaufwand, um mehrere Teams so zu koordinieren, dass Kommunikationsstrukturen keine negativen Auswirkungen auf die Arbeit haben. Vielleicht ist das auch schlicht unmöglich, denn der Overhead wäre enorm und man wäre mehr mit Koordination als mit der eigentlichen Arbeit beschäftigt.

Lehren aus Conway’s Law

Anstatt Conway’s Law nur als Warnung zu sehen, können wir daraus eine Lehre ziehen: Je einfacher und unkomplizierter die Kommunikationsstrukturen beim Entwurf und der Umsetzung eines Projekts sind, desto besser wird das Gesamtergebnis sein.

Cross-funktionale und flexible Teams

Die entscheidende Frage lautet also: Wie kann man die Zusammenarbeit der Teams so organisieren und strukturieren, dass sie vorteilhaft für das Softwareprodukt ist? Das Niederreißen der Mauern zwischen den Abteilungen, um cross-funktionale und flexible Teams zu bilden, ist ein Schritt in die richtige Richtung.


Tags:ConwaysLawSoftwarearchitekturOrganisationsstrukturTeamkommunikationCrossfunktionaleTeams

Devops-Overview