Team Topologies - de omgekeerde Conway-manoeuvre

Uit het boek “Team Topologies” van Matthew Skelton en Manuel Pais komt een interessante remedie tegen de wet van Conway:
Organisaties die systemen ontwerpen, kunnen niet anders dan ontwerpen opleveren die kopieën zijn van hun eigen communicatiestructuren.
Laten we beginnen met een korte samenvatting van wat die wet betekent. En dan vooral de keerzijde, de blinde vlek van organisaties: een organisatie die is ingedeeld in functionele silo's (waarbij teams zich specialiseren in één functie, zoals QA, DBA of security) zal vrijwel nooit softwaresystemen opleveren die goed ontworpen zijn voor end-to-end doorstroom.
De omgekeerde Conway-manoeuvre
Om de kans te vergroten dat een organisatie effectieve softwaresystemen bouwt die geoptimaliseerd zijn voor end-to-end doorstroom, kun je een “omgekeerde Conway-manoeuvre” (of inverse Conway manoeuvre) uitvoeren: je herschikt de onderlinge communicatie tussen teams vóórdat de software af is.
Nicole Forsgren schreef hier als eerste over, al in 2015, in haar uitstekende boek Accelerate.
Ons onderzoek ondersteunt wat soms de 'inverse Conway manoeuvre' wordt genoemd: organisaties zouden hun team- en organisatiestructuur moeten laten meegroeien met de gewenste architectuur. Het doel is dat je architectuur teams in staat stelt hun werk af te maken — van ontwerp tot uitrol — zonder dat daar veel overleg tussen teams voor nodig is.
Voor: de organisatie (figuur 1)
Laten we kijken naar een bewust vereenvoudigde weergave van de wet van Conway in een organisatie die software maakt. In de eerste van vier figuren zie je vier teams, elk met front-end- en back-enddevelopers. Ze werken aan verschillende delen van een systeem en dragen die daarna over aan een centrale databasebeheerder (DBA) voor de databasewijzigingen. De stroom van wijzigingen ziet er dan uit als in figuur 1.

Figure 1: Organisation Pre-Manoeuvre
Voor: de architectuur (figuur 2)
Volgens de wet van Conway zou de software-architectuur die vanzelf uit zo'n teamindeling ontstaat, per team aparte front-end- en back-endcomponenten hebben, plus één gedeelde centrale database (figuur 2). Met andere woorden: een gedeeld DBA-team drijft het ontstaan van één gedeelde database aan. Andersom geldt hetzelfde voor gescheiden front-end- en back-enddevelopers: dat leidt tot losse UI- en applicatielagen, zie figuur 2.

Figure 2: Architecture Pre-Manoeuvre
Na: de organisatie (figuur 3)
Nu passen we de omgekeerde Conway-manoeuvre toe en ontwerpen we onze teams naar de gewenste software-architectuur: een aparte developer voor de clientapplicaties en voor de API, en een databasedeveloper binnen het team in plaats van daarbuiten, zie figuur 3.

Figure 3: Organisation using Microservices
Na: de architectuur (figuur 4)
Volgens de wet van Conway levert deze teamindeling het meest 'vanzelf' de gewenste software-architectuur op. Elk team heeft een systeem dat op eigen benen staat, er is geen centrale database, en doordat het team end-to-end capaciteiten heeft met client- en API-developers én kennis van de datastore binnen handbereik, zijn team én architectuur geoptimaliseerd voor end-to-end doorstroom. Zie figuur 4.

Figure 4: Architecture, microservices and post Conway Manoeuvre
Software delivery
De wet van Conway geldt niet alleen voor het ontwikkelen van software: ook het leveren en uitrollen ervan kan eronder lijden.
Bekijk je de volgende pipeline met een centrale QA- en beheerafdeling (van vóór DevOps), dan krijg je 'interessante' releases van je product.

Optimaliseren voor end-to-end doorstroom, en de organisatie daarop aanpassen, is standaardpraktijk sinds continuous delivery rond 2012 populair werd. In dat scenario maken we QA en beheer onderdeel van de nieuwe 'deliveryteams'. We vormen de centrale QA- en beheerafdeling om tot een verdeeld team dat binnen de verschillende end-to-end geoptimaliseerde teams werkt (DevOps, BizDevOps enzovoort).

Wat overblijft zijn de platformen: die worden onderhouden door de platformteams. Daar schreven we een goed artikel over op onze site: Hoe zet je een succesvol cloud-platformteam op.
Conclusie
Voor zowel software-architectuur als software delivery geldt dat de organisatie en de communicatielijnen daarbinnen het best verklaard worden door de wet van Conway. Door de omgekeerde Conway-manoeuvre uit te voeren verander je de organisatie, en optimaliseer je daarmee je architectuur en levering voor optimale doorstroom.

Het observeren en sturen van end-to-end doorstroom zit in de kern van ons product. Agile Analytics geeft cruciaal inzicht in de softwareontwikkeling van je organisatie.

Laat Agile voor je werken
Implementeer DevOps, SRE, Scrum, Less of Kanban in no-time met ZEN Software.
Lees ook:

Team Topologies - de omgekeerde Conway-manoeuvre
Uit het boek [“Team Topologies”](https://partner.bol.com/click/click?p=2&t=url&s=1228221&f=TXL&url=https%3A%2F%2Fwww.bol...

We zijn niet hetzelfde - Developer eXperience (DX) managen
Heb je in je organisatie interne ontwikkeltools, platformen of diensten waarbij het aansluiten je supermakkelijk en pijn...

Wat is een developerportal?
Zodra je agile organisatie software bouwt met een microservice-architectuur, loop je tegen vragen aan als: welke service...

Hoe zet je een succesvol cloud-platformteam op
De meeste organisaties hebben een centraal (cloud)platformteam — of zouden dat moeten hebben. Zo'n team opzetten is een ...

Geïnspireerd door Spotify: Team Rooms
De meeste organisaties die software maken werken in een of andere vorm van agile. Spotify werd beroemd met zijn eigen mo...

Wat dertig minuten wachten per engineer per dag echt kost
Een half uur per dag. Zo weinig lijkt het. Maar reken het door en het is €5.000 per engineer per jaar, of een half miljo...
