A decade ago organizations were building their IT systems around an organizational model where the corporate IT department was the owner of all the computational power and supported the whole company. For example, HR, recruiting and engineering departments were dependent on this single source of computational power solely owned and managed by the IT department.
Nowadays, companies need to evolve fast in order to stay current and the old model doesn’t work any longer. Today in our sample organization the HR department has its own small and capable IT solution to support efficient employee performance evaluation process, the recruiting department uses their own solution for the hiring process, the engineering department demands a new staff forecasting feature which they have just started implementing on their own. In order to collaborate departments build unique communication channels and share data between their department-level solutions. Corporate IT still exists and its role now is setting infrastructure, security standards , provides cloud services, owns corporate single-sign-on solution and provides container-as-a-service. In the year 2018, all of this sounds familiar to you….
50 years ago, in April 1968, Melvin Conway published a paper called “How Do Committees Invent?”. The thesis of the paper was: “Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization’s communication structure”.
When thinking over Conway’s law it is clear why are we facing the rise of microservices solutions today. Having a centralized solution owned by the corporate IT department is not how most organization’s communication structure work now. Today centralized communication is in most cases unnatural and doubtfully effective.
The good thing is that Conway’s law is applicable to any system architecture. Today, monolithic architecture violates this law when implemented in most organizations. However, if you violate Conway’s law when designing microservices architecture, your new shiny distributed solution is doomed. The options are as simple as either replicating organizational communication structure in the system architecture or changing the organizational communication structure, so it matches the microservices architecture. In order to do it right, you need to stay agile, most often several iterations are needed before it becomes perfectly aligned.
There’s no good or bad design of any system without the context it should support. Whenever your goal is to create an effective IT solution for your organization today, don’t start with technology choices. Start with referring to Conway’s law, drawing an organizational chart and understanding communicational structure of your organization.