tezvyn:

How would you apply Conway's Law to design team structures for microservices?

Curated by the Tezvyn teamSource: martinfowler.comadvanced
How would you apply Conway's Law to design team structures for microservices?
WHAT IT TESTS

Using org structure as an intentional architecture lever.

ANSWER OUTLINE

Map bounded contexts to cross-functional teams; use APIs as contracts; split by decoupling boundary.

WHAT THIS TESTS: This question tests whether you understand Conway's Law as an active design constraint rather than a passive observation. The interviewer wants to see if you recognize that human communication patterns directly determine software coupling, and whether you can intentionally shape team topology to produce a target architecture. Senior candidates should demonstrate that org design is an architectural activity, not just an HR function.

A GOOD ANSWER COVERS: A strong answer hits four things in order. First, acknowledge that you cannot fight Conway's Law; if the organization is structured a certain way, the system will mirror it, so the org must be designed first. Second, map bounded contexts or business capabilities to autonomous cross-functional teams that own the full lifecycle of their services, which naturally produces microservices with loose coupling and high cohesion. Third, design inter-team APIs and contracts to match actual communication patterns, accounting for time zones and location; teams that cannot talk easily need stable, well-defined interfaces. Fourth, explicitly reject layer-based team structures like separate front-end, back-end, and database teams because they force a PresentationDomainDataLayering architecture and create tight coupling across the system.

COMMON WRONG ANSWERS: The biggest red flag is suggesting that architecture can be mandated from an ivory tower without changing team structures. Another mistake is proposing layer-oriented teams while claiming to want microservices; this directly contradicts Conway's Law and leads to distributed monoliths. Candidates also stumble by ignoring communication friction, such as assuming six teams in six time zones can maintain the same informal coordination as a single co-located team.

LIKELY FOLLOW-UPS: The interviewer may ask how you would restructure an existing monolith when the current teams are organized by technology layer. They might also probe how remote-first work changes the law, or how you would handle a platform team that provides shared infrastructure without becoming a bottleneck. Another common follow-up is what to do when business capabilities do not cleanly map to team boundaries.

ONE CONCRETE EXAMPLE: Suppose you want to move from a monolith to microservices in an e-commerce company. Instead of keeping front-end, back-end, and database teams, you create small teams around capabilities like Search, Checkout, and Inventory. Each team contains its own developers, testers, and data specialists. Because Search and Checkout rarely need deep real-time collaboration, their API boundary becomes a stable service contract. If Checkout and Inventory must coordinate tightly, you either colocate them or merge them into one team until the boundary clarifies. The resulting system architecture mirrors these communication boundaries, producing genuinely decoupled services.

Source: martinfowler.com

Read the original → martinfowler.com

Get five bites like this every day.

Tezvyn delivers a daily feed of 60-second tech bites with quizzes to lock in what you learn.