Letter to the Reader
Dear reader, this book is an introduction to what has come to be known as Promise Theory. It is addressed from a mostly nontechnical perspective. It is not a book that gives management advice, nor is it even about technical recipes; its goal is to help you to think without prejudice about cooperative systems of any kind.
We live in a marketing age where we believe that brands mean something, so today you’ll read about Complexity Theory and Promise Theory and Theory of Constraints, and any number of other theories. Many believe that these ideas are all separate, competing sports teams, from which we are allowed to choose only one. Add to that Lean, Agile, Six Sigma, and any number of other management philosophies, and you are practically forced into primitive tribalism.
Promise Theory is not a management ideology; it is an engineering framework for coping with uncertainty in information systems. It is a set of principles, based on formal reasoning, without the over-constrained ideas of logic. Some people (not mathematicians) might call it mathematical because it has formal rule- or constraint-based approaches.1 Others might say it is heuristic. These are subjective assessments, which are unimportant. In fact, Promise Theory has a lot in common with physics, being a mixture of both, but who cares about categories?
One of the reasons I started Promise Theory was to escape from the tyranny of fuzzy words that float around in management-speak. Words are verbose and often ambiguous, and people hear what they want to hear from them. Symbolic languages, like mathematics, express themselves simply and clearly, but many have been scared away from that precision by a poor experience with mathematics in school. For that reason, I started Promise Theory symbolically, but was quickly asked to go back to using words. That is what this book tries to do. Hopefully, having done a sufficient amount of symbolic homework, I can avoid some of the ambiguities that come from muddling words, but I am still wary. You should be too.
So why this word promise? Well, a promise is a word that everyone intuitively understands. It represents an intended outcome: something you might actually be able to get. This is pretty general, and indeed that is its value. For some, it is also confusing. The term does not have the arrogance or hubris of the more frequently used guarantee, and that is good. A broad swathe of society actually believes that the concept of a guarantee has merit (that merely promising without guarantee is somehow shirking responsibility). In fact, unless one has access to irresistable force and infinite speed, there are no guarantees.
Promise Theory has nothing to do with being nice. It is not about being moral. It is not about democracies rather than dictatorships. It is simply about realism, and attaching the responsibility for outcomes to the agencies that have the chance of being able to deliver. It doesn’t tell you how to be immune to uncertainty, it just helps to clear away a veil of delusion, to see more clearly what kind of a mess you are in. The rest (getting yourself out of the mess) is up to good old human creativity (there you can hug as much as you like). What I will claim is that if, like me, you live in daily fear of appearing foolish by making unwarranted assumptions, then Promise Theory is the cold shower of common sense. It turns out to be a pragmatic way of coming to terms with the complexities of a world where you are not certain of having your way.2
Promise Theory came out of a need I had while trying to explain IT infrastructure and desired-state configuration in the early millennium years: studying how to manage human-computer systems. It became clear that computer science models, which were based on traditional logical reasoning, simply weren’t able to describe computer behaviour, except in very isolated circumstances. Initially more mathematical, the ideas grew in scope and applicability, and over the following decade began to be appreciated in a heuristic way, too. In a sense, Promise Theory is about one of the most general, yet contentious, issues of philosophy: causation. How things come to happen, and then remain, even in a noisy world.
As I was having my private eureka moment about promises in 2004, I was visited by Jan Bergstra, whose background was in logic and mathematical computer science. He also became interested in this issue from a background of rigorous logic and process algebra. Now my close friend and partner in what amounts to computer science heresy, Jan has been instrumental in boiling the Promise Theory story down to its essentials, and avoiding the pitfalls by which science becomes pseudoscience.
Amazingly, the idea of promises seems to have caught on in IT. However, for some, the idea has also become a manifesto for advocating ideas like decentralization and swarm intelligence. Although I am a big fan of those ideas, one should not think of Promise Theory as advocating them. Science does not advocate; it measures by theory and numbers, then tentatively concludes in context. An application of Promise Theory might lead to the conclusion that one design or another is better under particular circumstances, but never unilaterally.3
Looking at the philosophical and economic literature on promises, philosophers have muddled the idea of promises with the notions of obligation and morality. What caught our attention early on was that promises are an independent and simpler idea than obligations: something suitable for engineers.
The aim of this book, then, is to strip away the formalism—which I worked so hard to erect(!)—and introduce the pattern of thinking behind Promise Theory for engineers by words and pictures alone. This has been a difficult challenge because words alone lack the concision and clarity to make clear sense of a complex world. A more symbolic approach has been given in the book Promise Theory: Principles and Applications (CreateSpace), by myself and Jan Bergstra, and I recommend that book to clear up any questions you might have.
Writing a book for as general an audience as possible can easily result in the paradox of pleasing no one by trying to please all, so please forgive the compromises. I address the book to an audience of fellow technocrats. I hope, on the other hand, that large parts of it can be read and understood by just about anyone in the modern world.
I am grateful to Michael Nygaard, Jeff Sussna, Paul Borrill, Mike Dvorkin, and, of course, Jan Bergstra for comments.
1 In this book, I was instructed (on pain of retribution) to avoid anything that might resemble math. You have no idea the oppression that mathematicians face in society.
2 I have confirmed over the years that the wish for deterministic mastery over our world often works as a kind of homeopathy (trying to treat a malady with its own poisons). When we try to fight force with force (uncertainty with hopeful certainty), we end up in some kind of boxing match, often getting our proverbial rear-ends kicked. Smart martial artists try to use their opponents’ real-time behaviours to their own advantage, and that is sort of the essence of Promise Theory. It’s not what you want or hope for, but what you can get that matters. Pragmatism rules.
3 It is perhaps natural that people gravitate to emergent phenomena and decentralization. These are interesting concepts, yet traditional computer science struggles to understand these issues with its deterministic “ballistic” reasoning.
Get Thinking in Promises now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.