Conway's Law
Conway’s Law states that software systems reflect the communication structure of the organization that builds them. A company with separate frontend, backend, and database departments will likely produce a three-tier architecture. Small, distributed teams tend to produce modular service architectures, while large, collocated teams tend to build monoliths.
To mitigate this, teams can use the Inverse Conway Maneuver: intentionally structuring the organization to match the desired software architecture.
- The architecture of software systems often mirrors the organization's org chart or team structure.
- If your company is organized in silos, you might end up with siloed software modules that don't communicate well, reflecting those barriers.
- To achieve a desired software architecture (e.g., microservices), you might need to restructure teams accordingly, because teams build software aligned with their communication paths.
- When starting a project, realize that how you split teams or departments will likely lead to software boundaries at the same places.
评论
?
参与讨论