Book Review: Thinking in Promises

Thinking in Promises

Author(s)

Mark Burgess


My Rating

star star star star
"A fresh theoretical perspective on the challenges of designing and building complex systems composed of cooperative autonomous agents."

A challenge we all face in the IT world on a constant basis is system design and modularity. Our limited human brains require the ability to reason locally about individual sub-systems because whole systems do not fit into our heads.

Despite this obvious and constant challenge, no-one has worked out a perfect solution for system decomposition. No-one has worked out how to create perfect modules in software systems, and nobody has worked out how to perfectly design teams. The human gut still plays a key role in this industry.

Please take to the stage Mark Burgess. Is your concept of Promise Theory the revelation we have all be waiting for? Is Thinking in Promises the book systems designers across the world need to rush out and purchase immediately?

What is Promise Theory?

Imagine if we started looking at systems in terms of the promises different agents within the system made to each other. We identify agents in a system, we model the information they hold, and we determine what promises they can make, based on the information they have.

This is Promise Theory in a nutshell.

Understanding the promises agents can make highlights the key dependencies, interactions, and risk in our systems.

When an agent doesn't have the complete information to make a promise independently, it relies on another agent. This is a conditional promise.

As systems scale and the chains of promises grow, we must diligently consider all of the factors - social, technical, and otherwite - that would cause agents to break their promises. Then we must assess the impacts of those broken promises.

Promise Theory concerns the promises that can be made by higher order components, too - aka super agents

How Can I Use Promise Theory at Work Tomorrow?

Every chapter in Thinking in Promises holds profound insight. How to apply those insights to you daily work is another matter, though. This is a 100% academic book. It doesn't contain complicated maths, it's just detached from the real world.

There are definitely a few insights that are practical and immediately useful. For instance, I love this insight "The ability to replace a lot of complexity with a simple label brings great economic efficiency for end-users of knowledge".

I have been applying the principles in this book to some of the systems I am working on and have worked on. Just modelling the systems in terms of promises does provide a different perspective leading you to ask different questions and suggest alternative models.

Let me be clear, though. I am nowhere near extracting the full value of Promise Theory. It's not something you can instantly absorb and use to make incredible design choices. I am confident that over time the pieces will fall into place and Promise Theory will become one of my core modelling heuristics. 

If you're prepared to make the same investment, don't hesitate to pick up a copy of Thinking in Promises.

Highlights

"Trust is cheap and verification is expensive."


"the key ingredients of promises: semantics, dynamics and valuation."


"According to the rules of promise theory, we would model the smallest part of the system that can change independently as a separate agent that makes individual promises."


"There is a saying that if you have one clock you know what time it is, but if you have two you are not sure"


"Promised collaboration has to be constructed from the bottom-up, i.e. from the promises we know agents on the ground can keep, rather than the promises we would ideally like them to make"


You may also like...

Thinking in Systems: A Primer

Code Complete 2

Puppet 3 Beginner's Guide

My Books

Designing Autonomous Teams and Services
Patterns, Principles and Practices of Domain-Driven Design
The Strategic Practices of Domain-Driven Design