We see organization re-structuring happens for enabling greater collaboration and innovation. I observed this lot many times when a multi-million dollar project fails. “What? A simple re-organization to fix a failed project of this big a size ?”.
I often wondered how re-organization could help teams and their daily activities (code). Today, I started searching the internet and found few interesting articles about how teams collaboration and attitude reflect on the code they are writing. There were lots of research papers which analyzes this and why organizations re-define their teams to enable greater collaboration.
Later I found Conway’s law.
“organizations which design systems … are constrained to produce designs which are copies of the communication structures of these organizations”.
I had to read and re-read this couple of times and associate this with our work before I could understand this. Below is my understanding of this law.
If there are more collaborations between the teams, their code will have more collaborations as well. If the teams are distributed, the code will be more componentized and distributed. If the teams don’t talk to each other neither do their code. Everything that we do as a team, reflects on the code.
You can search for more details about Conway’s law and the research which substantiate it.