3 ms·
"The law is based on the reasoning that in order for a software module to function, multiple authors must communicate frequently with each other. Therefore, the
by dpflan 7y ago
"The law is based on the reasoning that in order for a software module to function, multiple authors must communicate frequently with each other. Therefore, the software interface structure of a system will reflect the social boundaries of the organization(s) that produced it, across which communication is more difficult."
Would that mean communication becomes more difficult as the monolith grows? What signifies that?
This seems dependent upon team formation that is a result of segregation by frequent communications and knowledge-share about commonly used and maintained systems: essentially, a group (rather than an individual) becomes "expert" in a portion of the monolith and then separates themselves from the monolith (organically or by decree). I think when a group can stand in for an individual, perhaps that is signal that the organization can begin to subdivide. Bottom-up vs. top-down subdivision: which is better?
- AnimalMuppet 7y ago> Would that mean communication becomes more difficult as the monolith grows? I'm not quite sure that "this" implies "that", but it is definitely true that communication becomes more difficult as the monolith grows. > What signifies that? Everything starts taking longer. Peoples' work steps on other peoples' work. You need more meetings to keep everything straight.
- dpflan 7y agoAh, that’s interesting and easy to track i bet: more meetings with engineers and analysis of code base encroachment (and similar code being created across repos).
- AnimalMuppet 7y agoAnd more bugs where a change in one area broke something that seemed unrelated. Note that the initial bug report may not know that - it may take specifically asking the question after fixing the bug.
- afarrell 7y ago> Would that mean communication becomes more difficult as the monolith grows? What signifies that? I'm not sure what you mean by "What signifies that?" but yes, as a team grows, communication cost naturally increases. Imagine a team with N members and no titles or clear signals of what people are responsible for. Imagine one person has a question and wants to know whom to ask. There are N-1 possibilities. So she must have N-1 conversations in the worst case before she finds her answer. Everyone team member occasionally has questions, so the communication cost is actually N times N-1, which is proportional to N squared. Another concrete example: Imagine you have a slack channel with 10 people in it. 1 person sends a message and 9 other people read it, think about it, and maybe respond. Imagine you have a slack channel with 200 people in it. Someone sends a message and thoughtlessly includes '@here' in it. 199 people get pinged.