Do not underestimate The Conway's Law, it may kick you in the teeth

I can't recall precisely when I've heard about Conway's Law for the first time - most likely because it has left me unimpressed.

"Organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations."

Melvin Conway

Bah. Is that such a big deal? (these could have been my words when I have read that for the 1st time)

You won't get its importance until the very moment when you start suffering from it. Sometimes decisive people tend to forget that:

  • applications provide some business services and ...
  • ... business services are elements of business processes and ...
  • ... organization works as smoothly & efficiently as those processes are executed

if applications / services are coupled (dependent, not abstracted out, submerged into a monolith), the impact zone of every change spans between several areas - now imagine what happens when those areas have different owners who also by accidence have:

  • different priorities
  • different obligations to the organization (incl. OLAs)
  • different idea about the responsibility
  • different scope (backlog or whatever)
  • or even compete with each other!

I'm not saying people will immediately go rogue & get their daggers ready (for nefarious purpose, ofc), but:

  1. all the safety mechanisms (aka "ass covering suite") will trigger immediately (slowing everything down)
  2. all the communication will get very formal (even more slower...) & communication routes will get longer
  3. all the changes to components that are not on the high priority list for a given org unit will have to be planned far ahead (otherwise - no commitment, so bye-bye agility)
  4. not mentioning that every change will require helluva of coordination & monitoring

I'm not saying that application ownership shouldn't be split between several org units -> of course it should, but this split has to make sense: org units (like teams in Agile approach) should be as much cross-functional & independent as possible (so this rule has to apply to their products as well), otherwise you're just crippling your organisation.