6 ms·
Communication overhead. You've seen those graphs about how lines of communication explode combinatorically. Once an organization hits ~20 people, if they're a
by cimmanom 9y ago
Communication overhead.
You've seen those graphs about how lines of communication explode combinatorically. Once an organization hits ~20 people, if they're all communicating directly and keeping up to date with everything they need to know, everyone could be spending every minute of their day communicating and not getting any other work done.
In order to cope with the communication overhead, larger corporations add management hierarchies that maintain linear communication "vertically" and smaller group sizes for "horizontal" communication. They also add processes that decrease or streamline the amount of communication necessary. Management and process are necessary to keep the company from grinding to a halt under the weight of its own communication overhead.
However, management and process even when done well will add a certain amount of overhead and slow things down. Less than they would if every engineer had to check with everyone in Sales and Marketing before deploying any change in order to make sure that a deploy wouldn't disrupt a major campaign. More than you and your two co-founders sitting next to one another and asking "hey, I'm gonna deploy the Foo feature now - is that cool?" And when done poorly, management and process slow things down even more.
- petra 9y agoWhy is "communication overhead" still relevant, when today, huge open-source groups cooperate very effectively ?
- solarkraft 9y agoI would guess this to be because of 1) self-motivation 2) people working towards proposals & being able to fork when unhappy.
- jowiar 9y ago[Citation needed] -- Not saying this to be glib, but I'm just wondering what is an actual "huge open-source group". From what I can tell, most open source projects are heavily maintained by a single-digit number of people at any one time.
- hhmc 9y agoHow huge is the largest open-source group though? My guess is that it's a order of magnitude smaller than the large companies being discussed in this conversation.
- Daniel3 9y agoCommunication overhead is MORE relevant than it ever has been. Sure, large open-source groups can collaborate on a project, but each person needs to know the operating principles and what element of solution is being held paramount. Regardless of inputs, mathematics can "only optimize 1 variable". Large groups can offer a larger pool of situational knowledge, which is valuable, but if individual A knows a certain element MUST be included, they now have to convince a great number of people that they're actually right. "There are a thousand ways to skin a cat", but if you put 1000 engineers in a forum and ask them to skin a cat, each will chose and champion 1 of the thousand ways (exaggerated for effect) and if left alone will complete it. The artistry is in developing a system to discern a solution that is above average, within the agreed upon timeline. A 4 person team might only brainstorm the 4-10 most obvious solutions, but the discernment process is orders of magnitude simpler.
- Thriptic 9y agoTo your point, scheduling becomes a principle constraint at a certain point in the hierarchy depending on org structure. It can take MONTHS for 5-10 busy people to find common availability in their schedules to conduct a meeting. If follow up meetings are required, there will be another delay of X months. This slows decision making considerably.
- contextfree 9y agoThe rule of thumb I tend to use in my head is that because of this communication and synchronization overhead, total output (in terms of impact) of an organization tends to scale not with # of people, but more like log(# of people). That's at a well-managed company - with mediocre or poor management it can be more like log(log(# of people)), or "O(1)" (total output remains constant no matter how many people join), or total output can even decrease as the organization grows.
- ryandrake 9y agoI'd think there is a point where it inverts, too: There is some number N such that the amount of work you can get done with N people is more than you can get done with N+1 people, and it keeps going down with any subsequent person you add. The Mythical Man Month talked about this. At some point, the extra communication overhead spent to sustain person N+1 costs more than the marginal extra output of that person.
- contextfree 9y agoYeah, I meant to cover that under "total output can even decrease as the organization grows" but I guess it got lost in my tortured sentences. Though maybe you mean this is the case even under good management (or perhaps that "good management" gets harder and harder as the organization grows).
- deleted 9y ago[deleted]
- setr 9y agoiirc, mythical man month doesn't say that output of n > n+1 permanently; it says that you temporarily lose productivity until everyone is brought back up to speed. It becomes an effectively permanent loss if you're using the strategy "the later it is, the more people you throw at it". But if there's no continous stream of newcomers, or rather sufficient gaps between hiring, then more man-hours does (eventually) produce more output.
- aylmao 9y agoInteresting to think of the parallels of this and network architecture and/or distributed computing (though very different in terms of how work actually happens).
- cmollis 9y ago+1
- randcraw 9y agoHaving to communicate over larger networks incurs costs beyond just bandwidth, latency, and synchronization. As the depth of communication increases, the message itself often gets lost, as in the venerable 'grapevine joke' where a simple message becomes garbled after passing through multiple re-transmissions. This problem is central to businesses as they grow and must partition the growing workload into bite-sized pieces managed by ever more players. As the whole grows in size and complexity, each bite's purpose and design becomes ever more inexplicable to its owner making it more likely to fail somehow or require costly adjustments to fit into the final product/service.