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.
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:
What are the downsides?
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.
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.
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:
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
Principal Engineer at Amadeus Labs
1 年Pavithra Ravishankar
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!