An important essay written by Jordan Hall:
https://medium.com/deep-code/understanding-the-blue-church-e4781b2bd9b5
Here is the section on how to manage complexity and coherence:
> Imagine a boat. We are going to row that boat, starting with but one paddle. If you’ve ever learned to canoe, you know that this isn’t simple. There is an art to it. You have to hold the paddle correctly, you have to learn how to put it into the water, how to stroke, how to return. The difference between doing it well and doing it poorly is significant. But, with a little practice, almost everyone can get at least reasonably capable of rowing their canoe.
>
> This is a “management of complexity” problem. The relationship between oar, water, boat and person is complex. All of these systems are feeding back on each other in subtle and hard to predict ways. But the “control capacity” of a standard-issue human is up to the task. The human body, adapted to things like walking upright on two legs and throwing rocks has enough control capacity to manage this level of complexity.
>
> Now add another oar. Generally, even someone experienced with a single paddle takes a little while to get it figured out. In particular, you have to learn how to simplify the problem by constraining some of the degrees of freedom of the paddles. Perhaps you fix the oars to the boat so that they can only traverse a single path. Certainly, you are going to have to make sure that you are paddling both oars in the same rhythm. By getting the oars into “coherence,” you can get the complexity of the problem inside your control capacity.
>
> Coherence is one of the most important concepts in the management of complexity. When you take two systems (two paddles) and synchronize them, you radically simplify the complexity of the overall system. By getting two paddles into coherence, you are able to turn two paddles that you can’t manage into one big paddle that you can manage.
>
> Now add another person to the mix. Side by side — each with one oar. This kicks the complexity up a lot. We are now dealing not only with two oars, we are dealing with two different control structures. And, of course, the only way to get things moving is for the control structures to get into coherence. Fortunately, humans are pretty good at this too. Like dancers or musicians playing together, we have a lot of bandwidth for small group synchrony. Getting into flow together takes some doing, but with a little practice we can manage this complexity.
>
> Now add another ten people into the boat. This is a real problem. The complexity of this overall system exceeds the natural control capacity of “group flow”. Try as you might, it is darn near impossible for a group of twelve people to “self organize” into an effective rowing team.
>
> Unless you put someone in charge.
>
> Add someone to the front of the boat whose job is nothing but synchronizing the whole team (“stroke!”) and reduce everyone else’s job to responding to the signal coming from that leader (“stroke!”) and suddenly the system comes back into control. In effect, you’ve replaced thirteen individuals with one “group of people” and one “leader” in a control hierarchy. This is a radical simplification. As the Greeks and Romans of old discovered, it scales. As long as the people rowing the boat stay inside their box and focus only on doing their job, and as long as the coxswain says in a simple rhythm, you can stack dozens of rowers and get the job done.
>
> Notice what happens here. In particular, notice what has to happen up and down the control hierarchy. The bandwidth (the amount of signal) going up and down the hierarchy has to be extremely simple. (“Stroke!”) Imagine if the rowers had to paddle _and_ converse about where the boat should go. It couldn’t be done. Imagine if the coxswain had to try and control _two_ boats simultaneously. Except in the very rare circumstance that the two boats could be consistently and precisely coherent, it couldn’t be done.