Human Consensus Algorithms
In A World Without Email, Cal Newport draws a connection between asynchronous electronic communication between people and distributed systems research. That connection is helping me understand that organizations will inevitably turn asynchronous media like Slack synchronous, unless they can design processes that prevent it.
The FLP impossibility result is a key proof in distributed systems research that showed that asynchronous messaging cannot deterministically guarantee distributed consensus. Some synchronous steps are necessary.
No matter how autonomous workers might be in an organization, at least some goals require coordination. At my job, I can work independently crafting a code change to one of my team’s applications, but I need a peer to review and sign off before it’s merged and released. I provide peer review and sign-off in return for my coworkers' changes.
As I’ve learned from John Allspaw over the years, people show up at work intending to get the job done and will use the means available to do so. When there is a coordination step required, we have a natural inclination to be responsive when others need us and a desire to keep our own work moving.
If purely asynchronous communication can’t guarantee consensus within a reasonable time frame, we change our behavior. We will be Always On and immediately responsive in Slack because we crave the closure and momentum responsiveness delivers. If we want a workplace culture that provides space to focus, we need to engineer responsiveness in other ways.
That seems like a good argument for continuous delivery. With good enough test coverage, we can rely on automated testing and machine sign-off before shipping changes, rather than a human gatekeeper.