Close

2022-04-19

Microservices and the Inverse Conway Manoeuvre

Microservices and the Inverse Conway Manoeuvre

Go faster than your competitors. That’s the promise of microservices – deploy more quickly, scale faster, and be more robust. It’s all about outcomes; how your organization is structured tremendously impacts those outcomes. It’s easy to say “Conway’s Law” and then move swiftly on. “But but but, but how?”

Microservices and the Inverse Conway Manoeuvre – James Lewis

James and Martin Fowler

In early 2014, James and Martin Fowler called out “Organized around business capabilities “as a core characteristic of microservices. This was based on feedback from successful teams worldwide about how important this aspect was to their building systems. In this talk, James explores some of these structures and provides practical guidance on what he and Martin meant when they said “business capability.”

Melvin Conway

Melvin Conway is an American computer scientist best known for formulating “Conway’s Law,” which states that “organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations.”

Conway’s Law

Conway’s Law is often applied to software engineering and suggests that the design of a software system will reflect the communication structures of the organization that developed it. If an organization has a hierarchical communication structure, the software system it creates will also have a hierarchical structure. The software system will also be decentralized if the organization has a decentralized network.

The Law states that any organization that designs a system (defined broadly) will inevitably produce a design whose structure is a copy of the communication structure of that organization.

Conway’s Law is essential in software engineering because it highlights the importance of organizational structure and communication in software systems design. It suggests that an organization should have a good communication structure to produce good software, and the team should be organized in a way that allows for good communication.

Conway’s Law is not a rule but an observation, it’s not always the case, but it’s essential to consider it as it can be a source of problems if the organization’s structure does not align with the software’s requirements.