Conways Law im Kontext agiler Softwarearchitekturen

Foto des Autors
Sven-Torben Janus

Eine bekannte These von Melwin Conway, die als Conways Law bekannt geworden ist, rückt in letzter Zeit immer wieder im Rahmen von Diskussionen rund um agile Softwarearchitekturen in den Fokus.

Eine bekannte These von Melwin Conway, die als Conways Law bekannt geworden ist, rückt in letzter Zeit immer wieder im Rahmen von Diskussionen rund um agile Softwarearchitekturen in den Fokus.

Any organization that designs a system […] will inevitably produce a design whose structure is a copy of the organization’s communication structure.

Der grundlegende Aufhänger ist dabei immer wieder die Skalierung von Organisationsstrukturen (vornehmlich Entwicklungsteams) in der Größenordnung von Amazon, Google, Netflix, Spotify und Co. Vielfach wird dabei darüber philosophiert wie Softwarearchitekturstile agile Vorgehensweisen in solchen Größenordnungen unterstützen können.

Was Conways Law nicht erlaubt!

Hand holding tablet PC with network Figures

Was dabei gerne vergessen wird, ist, dass Conways Law in seiner ursprünglichen Form eine Unmöglichkeitsaussage ist und auch als solche verstanden werden muss.
Sofern man Conways Law für gesetzmäßig hält, bedeutet dies konkret, dass die Architektur eines Systems immer die Organisations- bzw. Kommunikationsstrukturen eines Unternehmens widerspiegelt. Es ist nicht möglich – egal wie hart man sich bemüht – ein „besseres“ Ergebnis als diese Struktur zu erzielen.
Dies soll jedoch nicht bedeuten, dass es sich dabei um eine gute Sache in dem Sinne handelt, dass eine solche Architektur grundlegend erstrebenswert ist. Im Gegenteil: den Architekten und Teams werden durch diese Strukturen auch immer wesentliche Freiheitsgrade im Entwurf und Design der Software genommen.

Was Architekten (nicht) tun sollten!

In agilen Softwareprojekten besteht somit eine Aufgabe der Architekten auch immer darin, Architekturen mit Blick auf die Organisations- und Kommunikationsstruktur des Unternehmens zu entwickeln. Letztlich bedeutet dies, dass sich die Umsetzung gewisser Softwarestrukturen nur durch Veränderungen in der Organisations- und Kommunikationsstruktur bewerkstelligen lassen. Die Aufgabe besteht daher vor allem darin, Agilität auf organisatorischer und unternehmerischer Ebene zu verstehen und zu unterstützen.

Architekten sollten daher Conways Law nicht als Rechtfertigung für Designentscheidungen nutzen. Es ist immer nur eine Vorbedingung, die sich durch organisatorische Veränderungen beeinflussen lässt. Letztlich muss die Architektur immer den fachlichen Anforderungen genügen und auf die unternehmerischen Ziele einzahlen. Dabei sollten Organisationsstrukturen unterstützen und stellen nicht in sich selbst das Ziel dar. Daher sollte Conways Law auch immer Berücksichtigung im Kontext organisatorischer Entscheidungen finden. Andernfalls erhält man nicht die notwendigen Architekturen, sondern nur die Architektur, die man aufgrund der Organisationsstruktur erhalten kann.

Fazit

Sofern man gewillt ist Conways Law als gesetzmäßig hinzunehmen, sollte man nicht versuchen es außer Kraft zu setzen, sondern es stattdessen für sich zu nutzen. Dabei besteht der größte Nutzen vor allem darin, keine Zeit und Geld zu verbrennen, indem man versucht technische Architekturen zu erschaffen oder durchzusetzen, die nicht im Einklang mit der Organisations- oder Kommunikationsstruktur im Unternehmen stehen. Diese Investitionen sollten stattdessen besser für notwendige Veränderung der Unternehmensstrukturen aufgewendet werden –  die Softwarestrukturen werden sich gemäß Conways Law letztendlich automatisch mit verändern.

Schreibe einen Kommentar

Das könnte Dich auch noch interessieren

Thorsten Kamann und Sven-Torben Janus im Conciso Workgarden

Das sind die 7 häufigsten Keycloak-Fragen

Im Laufe der letzten Jahre haben wir bei vielen unserer Kunden Keycloak implementiert. Diese 7 Fragen sind uns immer wieder ...
Software-Modernisierung: viele Wege führen nach Rom

Software-Modernisierung: viele Wege führen nach Rom

Bei der Modernisierung einer Anwendung sind viele Dinge zu berücksichtigen. Der erste Schritt auf dem Weg zu einer modernisierten Anwendung ...
Die Anatomie von Event Sourcing in Java

Die Anatomie von Event Sourcing in Java

In diesem zweiten Beitrag widme ich mich nun umgekehrt dem Event Sourcing, klammere dafür aber CQRS explizit aus. Das Ziel ...