Conway’s Law — A Theoretical Basis for the Microservice Architecture

Introduction

Microservices architecture is a new concept that has become very popular and has become a hot topic of research recently. However, the implementation of microservices is still loosely defined and there is no theoretical proof of its effectiveness.

Conway’s Law Demystified

In his articles, Mike Amundsen summarized some core viewpoints, as stated below.

Conway’s First Law

“Human beings are complex social animals.”

  • For a project team with 15 members, the required number of communication channels is 15*(15–1)/2 = 105.
  • For a project team with 50 members, the required number of communication channels is 50*(50–1)/2 = 1,225.
  • For a project team with 150 members, the required number of communication channels is 150*(150–1)/2 = 11,175.
  • 15 trusted friends
  • 35 close friends
  • 150 casual friends

Conway’s Second Law

“Rome was not built in a day. Address the issues that can be addressed first.”

  • To ensure elastic safety, people must promptly handle errors that occur, for service recovery.

Conway’s Third Law

“Create independent subsystems to reduce the communication cost.”

Conway’s Fourth Law

“Divide and conquer.”

  • There are too many people to manage. I need to find several managers to help and report to me.

Conway’s Laws and Microservices

Let us have a look at how Conway’s Law provided the theoretical basis for microservices half a century ago.

  • The system design in which the members of an organization work depends on the communication between the members. Managers can adjust the division mode to implement different ways of communication between teams, which will influence the system’s design.
  • If a subsystem is communicational and has clear external communication boundaries, then we can effectively reduce the communication costs, and the corresponding design will be more appropriate and efficient.
  • There is need to continuously optimize a complex system with the help of error tolerance and resilience. Do not expect big and all-embracing designs or architectures, as their development occurs in an iterative manner.
  • Design a system in the MVP mode, verify and optimize the system in an iterative manner, and ensure that the system is elastic.
  • Adopt a team that aligns with your system design and streamline the team if possible. A plausible recommendation is that whenever possible, set up teams by departments so that each team is autonomous and communicational. Clarify the departmental boundaries to reduce external communication costs. Each small team must be responsible for its module throughout the entire module life cycle. Prevent vague boundaries and shifting the responsibility. Set up the “inter-operate, not integrate” relationship between the teams.
  • Develop small and efficient teams, as the costs increase and the efficiency decrease when the number of team members goes up. Jeff Bezos, CEO of Amazon, had a funny rule of thumb: if two pizzas are not enough for a team, the team is oversized. Typically, a small product team of an Internet company consists of 7 to 8 people. (These include people in charge of front-end and back-end tests, interactions, and user research. Some people may have multiple task assignments.)
  • Organization division by business-line
  • Development of excellent products, not projects
  • Smart endpoints and dumb pipes (this refers to highly capable individuals and light communication efforts)
  • Automatic O&M (DevOps)
  • Error tolerance
  • Rapid evolution

Conclusion

This article introduces Conway’s laws and explores whether they offer a theoretical explanation of the concept of microservices. It discusses the four laws in detail and the application of each law. The first law talks about the connection between communication and system design. The second law talks about efficiently completing tasks, with perfection not an attainable goal and hence should not be a reason for delayed task completion. Instead, people should focus on completing tasks on time, with regular improvements to follow. The third law talks about the homomorphism that exists between linear systems and linear organizational structures. Finally, the fourth law discusses the means with which people can utilize the “Divide and Conquer” approach to reduce the complexity and costs involved in communication within large enterprises.

References

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Alibaba Cloud

Follow me to keep abreast with the latest technology news, industry insights, and developer trends. Alibaba Cloud website:https://www.alibabacloud.com