It's also worth noting that heirarchy, at least in principle, is a very efficient method of communication.
A true peer-to-peer system of n people has a communications graph which is a K_n (complete graph on n nodes). Each node must monitor communications from n people, and there are O(n^2) edges. That can't scale. But for small n it isn't bad - the distance between two nodes is 1.
A tree has n-1 edges, and most nodes only need to communicate with 3 other nodes. The distance between 2 nodes is log(n) so communication costs aren't disastrous.
We love trees in computer science, the only reason we don't love them in management is because our personal experience leads us to compare O(1) communication costs (in a K_n) with log(n) communication costs (in a tree).
Peer-to-peer is only O(n^2) if every node is always connected to every other node. But Valve's organization seems to work by creating much smaller sub-networks on an ad-hoc basis, so that at any given instant, each node is only actually connected to a small set of other nodes. Instead of a hierarchical system which would have each sub-network be permanently defined with clear boundaries, and create a network-of-networks to coordinate them, this method ensures coordination among the sub-networks by relying on most nodes being a part of multiple sub-networks and having a slightly different set of connections, such that there's an overall mesh that does actually connect every node in the graph, directly or indirectly.
Sort of the way torrents work, in fact: there's a pool of seeds and peers - which might have thousands of members - but your client is only exchanging data with maybe a few dozen at any given time. But since each peer has its own slightly different set of connections, data anywhere in the system can still propagate to the entire system.
I suppose it would be an interesting problem to figure out, given n nodes, with each node having a minimum of x and a maximum of y edges per node, and a maximum of z edges per path, what the minumum total set of edges would be to ensure that there exists a path between any two nodes.
I think a flat hierarchy necessitates 'adhocracy', but from a cultural and operational standpoint, I'd expect them to mutually reinforce each other quite well.
There are efficient network structures that are not hierarchical and are not trees. Trees have horrible single point of failure characteristics, where one bad node kills an entire branch.
To be fair, they also have the opposite quality wherein one great person can positively affect an entire tree. Many great companies have been built by a great leader positively affecting hundreds or thousands of people.
Comments
It's also worth noting that heirarchy, at least in principle, is a very efficient method of communication.
A true peer-to-peer system of n people has a communications graph which is a K_n (complete graph on n nodes). Each node must monitor communications from n people, and there are O(n^2) edges. That can't scale. But for small n it isn't bad - the distance between two nodes is 1.
A tree has n-1 edges, and most nodes only need to communicate with 3 other nodes. The distance between 2 nodes is log(n) so communication costs aren't disastrous.
We love trees in computer science, the only reason we don't love them in management is because our personal experience leads us to compare O(1) communication costs (in a K_n) with log(n) communication costs (in a tree).
Peer-to-peer is only O(n^2) if every node is always connected to every other node. But Valve's organization seems to work by creating much smaller sub-networks on an ad-hoc basis, so that at any given instant, each node is only actually connected to a small set of other nodes. Instead of a hierarchical system which would have each sub-network be permanently defined with clear boundaries, and create a network-of-networks to coordinate them, this method ensures coordination among the sub-networks by relying on most nodes being a part of multiple sub-networks and having a slightly different set of connections, such that there's an overall mesh that does actually connect every node in the graph, directly or indirectly.
Sort of the way torrents work, in fact: there's a pool of seeds and peers - which might have thousands of members - but your client is only exchanging data with maybe a few dozen at any given time. But since each peer has its own slightly different set of connections, data anywhere in the system can still propagate to the entire system.
I suppose it would be an interesting problem to figure out, given n nodes, with each node having a minimum of x and a maximum of y edges per node, and a maximum of z edges per path, what the minumum total set of edges would be to ensure that there exists a path between any two nodes.
I think a flat hierarchy necessitates 'adhocracy', but from a cultural and operational standpoint, I'd expect them to mutually reinforce each other quite well.
There are efficient network structures that are not hierarchical and are not trees. Trees have horrible single point of failure characteristics, where one bad node kills an entire branch.
To be fair, they also have the opposite quality wherein one great person can positively affect an entire tree. Many great companies have been built by a great leader positively affecting hundreds or thousands of people.
Well said, because SPOF is the precise problem with managerial hierarchies.