As systems become increasingly distributed and complex, it’s more important than ever to find ways to accurately describe and analyze those systems, and to formalize intent behind processes, workflows, and collaboration.
In this podcast episode, I chat with Mark Burgess, founder and CTO of CFEngine, about the origins of Promise Theory and its connection to DevOps. Burgess originally developed the theory to address issues he was facing when rewriting CFEngine in 2004:
“Promise theory is actually a description I came up with to analyze distributed systems. When I was trying to rewrite CFEngine and to learn the lessons from 15 years of use, what I’ve discovered is that there really are no good theories in computer science to describe distributed systems, which might sound like a paradox. I guess the theories of computing come from the world of linear sequential processing, Turing machines — which is not really the way computers work today, in the modern world. I needed some kind of way to approach distributed systems, and also to be able to talk about policy, because CFEngine is a policy-oriented approach to managing systems. We really didn’t have a theory of policy, either, in computer science that went beyond access control.
“…the more that I looked at [the theory], the more I realized how general it was, and how it applied to human computer interactions, and other aspects of management of people. In fact, just systems, in general, and whether the systems consist of machines and/or people doesn’t really matter that much. In fact, it’s about the implementation of intent, and how you bring intent on an equal footing to the doing, the actions, the dynamical changes that happen in a system.”
Burgess also talks about how dimensional analysis and scaling theory can be applied to software development — how that would work and what benefits could be gleaned.
In the second segment, Geoffrey Moore talks about the technology adoption lifecycle and outlines a modern approach to his Crossing the Chasm theory. You can download or listen to the podcast in the SoundCloud player at the top of this post.