Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure.
This rule bears non-trivial consequences.
Most notably, that changing your system architecture most often requires changing your communication structure as well — and vice versa.
For example, it is hard to organize your team into small, independent units, while retaining a monolithic structure for your software. People will likely step on each other’s toes.
Likewise, you won’t probably get the full benefits of microservices as long as your team stays a single large unit. The overhead brought on by orchestration and observability issues might not be worth it if you don’t get the upside of distributed, autonomous teams.
Jun 12, 2023
at
12:35 PM
Log in or sign up
Join the most interesting and insightful discussions.