Improving Coordination by Eliminating It

Many problems we face are rooted in coordination failures. For example, use of open source software is rapidly consumed, which causes maintainer burnout if the consumers don’t provide some sort of reciprocity. Coordination failure is even more devastating when we know if we properly work together, we’d be able to succeed.  

Although humans are social creatures, we have trouble maintaining relationships and communication beyond a certain threshold. This is why we see further slowdowns when more developers are thrown at a project that is behind schedule. Linear additions of people to an organization create exponential increases to the amount of relationships between these individuals. This results in bloat and loss of productivity in large organizations.

So how can we sustain or create regenerative coordination health within communities? I believe we can draw from the evolution of technology organizations who have successfully scaled software and apply these techniques more generally to human coordination.

Over the past few decades we have seen transitions from waterfall to agile, from monolith to microstructure, from large engineering teams to two pizza teams, etc. These all have a similar theme of reducing the coordination required across many people to focusing coordination among a few. This has been made possible by improving the communication interfaces between teams. 

For example, application programming interfaces (APIs) and documentation allow developers to use new software immediately. There is no need to speak to the developers behind the code to use it. This elimination of coordination is a big driver for the explosion of APIs over the years and what’s behind new software architecture. 

If we can apply similar approaches of APIs to organizational interfaces, we may may be able to eliminate the need for some coordination. Hopefully freeing up time to use our finite energy to make the world a better place.