What is the hidden force behind your design decision?
Credit: https://www.marcelsemmler.com/

What is the hidden force behind your design decision?

I recently came across?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”

This law was published in 1967 (more than 5 decades ago), does it still holds true? Let’s check it out.

According to this law, the design decisions are bounded/influenced by the communication structure of our organisation.

IMO,?yes the design decisions are taken under the constraints of the org communication structure.?Let’s take a hypothetic example to back this up.

Consider a hypothetic travel booking company which is organised by the line of business(LOB) org structure i.e. one LOB for flights, another for trains, hotels etc.

No alt text provided for this image
LOB ORG Structure

As we can see that since there is bifurcation on the top based on the line of business, there is a good chance that the tech teams would also be separate for each LOB.

This sort of a structure has the following benefits:

  1. Easy to gain specific domain knowledge (flights/trains/hotels) for the tech team
  2. Faster development of the features as the business teams are focussed on the LOB

What are the downsides?

  1. Duplicate Capabilities: There are good chances that there will be duplicity of various business/tech capabilities. This can cause the infra cause to increase as separate infra setup would be needed for similar functionalities and separate code bases would be written for achieving the same result.

E.g. consider a scenario where a team of the hotel LOB has to implement caching. The best course of action would be to develop a caching layer for the hotel’s business using any popular technologies like?redis ,?memcache ?etc. where the logic for the caching would be based on the business logic of the domain. Since this requirement is specific to that particular LOB and the developers within the LOB have the autonomy, they would be designing the system in such a way that is more suited to their domain.

No alt text provided for this image
Separate Caching Layer for each LOB

Now let’s take a step back and consider similar scenarios for other LOBs. This is a very generic functionality and if we look at it outside the context of the LOB structure, a better solution would have been to implement a generic caching layer by creating a common library and making use of a?platform team ?which should be responsible for maintaining the life cycle of the caching layer.

No alt text provided for this image
Common Caching Layer

Since we were bounded by the constraint of the communication structure of the organisation, we did not realise that we could have adopted a more generic approach rather than a specific LOB wise approach.

Organisation in the last few years have started organising their org structure around their problems or business capabilities so that efficient and smaller microservices can be developed.

I do not mean to say that all the companies should start re-organizing their team structure immediately but I feel that having this awareness while designing systems that we are bounded by the comm. structure gives an additional dimension to our thought process.

References:

1.?Applying Conway’s Law to improve your software development

2.?Conway’s Law: the little-known principle that influences your work more than you think

Pavithra Ravishankar

Program Manager | Release Train Engineer | Engineering Manager | Digital Transformation | Story teller |

1 年

Conway's is absolutely ?? true So if management and Hr alone is involved in the org design it means they r crafting the product or software architecture as well :) Socio technical architects joining hands to design orgs are the need of the hour!!! On other hand when a project fails we seldom connect it to our structural challenges , communication overloads and cognitive loads

Mukul Gupta

Principal Engineer @ Atlassian | Ex-Microsoft | Tech Leader & Innovator | Driving Engineering Excellence and Product Strategy | Passionate about Solving Complex Challenges

1 年

Interesting, thanks for sharing Lovjit Singh Bedi :)

Quite an interesting concept. IMO, the realization of this concept would come about better in the small to mid size projects and there lies its strength. For more dense hierarchical orgs it would still be a big challenge of change management. Although, a good read. Thanks for sharing!

要查看或添加评论,请登录

社区洞察