Imagine a set of simple principles that could help you to understand how parts combine to become a whole, and how each part sees the whole from its own perspective. If such principles were any good, it shouldn’t matter whether we’re talking about humans on a team, birds in a flock, computers in a datacenter, or cogs in a Swiss watch. A theory of cooperation ought to be pretty universal, so we should be able to apply it both to technology and to the workplace.
Such principles are the subject of Promise Theory, and the focus of this insightful book. The goal of Promise Theory is to reveal the behavior of a whole from the sum of its parts, taking the viewpoint of the parts rather than the whole. In other words, it is a bottom-up, constructionist view of the world. Start Thinking in Promises and find out why this discipline works for documenting system behaviors from the bottom-up.
Chapter 1Promises and Impositions
From Commands to Promises
Why Is a Promise Better than a Command?
Autonomy Leads to Greater Certainty
The Observer Is Always Right
Culture and Psychology
Nonlocality of Obligations
Isn’t That Quasi-Science?
Is Promise Theory Really a Theory?
The Main Concepts
How Much Certainty Do You Need?
A Quick User Guide
Just Make It Happen
Chapter 2With a License to Intend
An Imposition Too Far
Reformulating Your World into Promises
Proxies for Human Agency
What Are the Agencies of Promises?
What Issues Do We Make Promises About?
What Things Can Be Promised?
What Things Can’t Be Promised?
The Lifecycle of Promises
Cooperation: The Polarity of Give and Take
How Much Does a Promise Binding Count?
Promises and Trust Are Symbiotic
Chapter 3Assessing Promises
What We Mean by Assessment
Kinds of Promise Assessment
Relativity: Many Worlds, Branches, and Their Observers
Relativity and Levels of Perception
Inferred Promises: Emergent Behaviour
How Promises Define Agent-Perceived Roles
The Economics of Promise Value: Beneficial Outcomes
The Eye of the Beholder
Chapter 4Conditional Promises—and Deceptions
The Laws of Conditional Promising
Local Quenching of Conditionals
Conditional Causation and Dependencies
Circular Conditional Bindings: The Deadlock Carousel
The Curse of Conditions, Safety Valves
Other Circular Promises
Logic and Reasoning: The Limitations of Branching and Linear Thinking
Chapter 5Engineering Cooperation
Engineering Autonomous Agents
Promisees, Stakeholders, and Trading Promises
What Are the Prerequisites for Cooperation?
Who Is Responsible for Keeping Promises?
Mutual Bindings and Equilibrium of Agreement
Incompatible Promises: Conflicts of Intent
Cooperating for Availability and the Redundancy Conundrum
Agreement as Promises: Consensus of Intent
Contracts and Signing
Agreement in Groups
Promoting Cooperation by Incentive: Beneficial Outcome
The Stability of Cooperation: What Axelrod Said
The Need to Be Needed: Reinterpreting an Innate Incentive?
Avoiding Conflicts of Interest
Emergent Phenomena as Collective Equilibria: Forming Superagents
Guiding the Outcome of Cooperation When It Is Emergent
Stability of Intent: Erratic Behaviour?
When Being Not of One Mind Is an Advantage
Human Error or Misplaced Intent?
Organization: Centralization Versus Decentralization
Focused Interventions or Sweeping Policies?
Societies and Functional Roles
Relationships: What Dunbar Said
Chapter 6Engineering Component Systems
Reasoning with Cause
Componentization: Divide and Build!
What Do We Mean by Components?
What Systemic Promises Should Components Keep?
Can Agents Themselves Have Components? (Superagents)
Component Design and Roles
Components Need to Be Assembled
Fragile Promises in Component Design
Reusability of Components
Interchangeability of Components
Compatibility of Components
Upgrading and Regression Testing of Components
Designing Promises for a Market
Law of the Lowest Common Denominator
Imposing Requirements: False Expectations
Component Choices That You Can’t Go Back On
The Art of Versioning
Names and Identifiers for “Branding” Component Promises
Naming Promisee Usage (-) Rather than Function (+)
The Cost of Modularity
Chapter 7Service Engineering
The Client-Server Model
Responsibility for Service Delivery
Dispatchers and Queues for Service on Demand
Delivering Service Through Intermediaries or Proxies
Framing Promises as State or Action
Delivery Chains by Imposition
Delivery Chains with Promises
Formality Helps the Medicine Go Down
Chains of Intermediaries
Transformation Chains or Assembly Lines
Continuity of Delivery and Intent
The Versioning Problem Again
Avoiding Conflicting Promises by Branching into Separate Worlds
Avoiding Many Worlds’ Branches by Converging on Target
Backwards Compatibility Means Continuity of Intent
Assessing a Service by Promising to Use It (Testing)
Chapter 8Knowledge and Information
How Information Becomes Knowledge
Knowledge: The Mystery Cat
Passing Information Around
Categories Are Roles Made into Many World Branches
Superagent Aggregation (Expialidocious)
Thinking in Straight Lines
Equilibrium and Common Knowledge
Integrity of Information Through Intermediaries
Relativity of Information
Promising Consistency Across Multiple Agents and CAP
A Is for Availability
C Is for Consistency
P Is for Partition Tolerance
The World Is My Database, I Shall Not Want
Chapter 9Systemic Promises
What Is a System?
The Myth of System and User
Who Intends Systemic Promises?
Breaking Down the Systemic Promises for Real Agencies
Why Do Systems Succeed or Fail in Keeping Promises?
Mark Burgess is the founder, CTO and principal author of Cfengine. For the past 20 years, he has led the way in the theory and practice of automation and policy based management. In the 1990s he underlined the importance of idempotent, autonomous desired state management (“convergence”) and formalised cooperative systems in the 2000s (“promise theory”). He is the author of numerous books and papers on Network and System Administration and has won several prizes for his work.