A I D I A

We build your ideas

You give them life

The Right Primitives

Is it more important to represent your business as it stands today perfectly?

Or, is it better to represent your business imperfectly with the right primitives?

I’d argue for the primitives:

  1. Your business is not static. Today’s representation will be wrong tomorrow.
  2. Focusing on correct primitives enables your business to align towards those primitives. This in turn makes your business more composable and less rigid.
  3. Primitives, once defined, will be incredibly optimized when applied everywhere.

Here are the primitives I’ve currently been working with:

Software Primitives

Note that these primitives are heavily inspired by Event Storming, Event Modeling, DDD, and Hexagonal Architecture.

  • Events - Encapsulated Facts
  • Read Models - Event Interpretation
  • Commands - Encapsulated Intent
  • Agents - Authorized Entities, capable of issuing Commands. Policies are a specialized version of an Agent.
  • Services - Logically Isolated Software that does one thing well. They have 3 parts:
    • Business Logic - the core of the service that depends on nothing.
    • Integrations - interfacing with any stores to get persisted state, set persisted state, and create effects.
    • Encapsulator - the shell which composes the logic and integrations together, exposing a public interface to handle commands

This breakdown makes it terribly easy to create software that represents ideal business processes.

The biggest trick is finding the correct divisions to enable true independence between services.

Team Primitives

Note these are almost identical to Team Topology teams.

  • Value Stream Teams - Teams focused on a distinct value stream within your business. They know exactly what the value proposition is, what the current attitude of customers are, and what stands in the way of further delivering value.
  • Platform Teams - Teams focused on building stable primitives for the use of value streams. They are relentless on making the primitives as stable, intuitive, and flexible as their value stream teams need.
  • Enabling Teams - Teams focused on exploring, evaluating, and sharing new technologies, paradigms, strategies, and ways of working. They meet with value stream and platform teams, understand their challenges and successes, and work to share knowledge across the organization.

This creates a “Triangle” of teams with Value Stream Teams at the top. Creating value is the primary goal of the organization. Supporting the teams that create value should be the primary goal of everyone else.

Again, the biggest trick here is to find the correct divisions to enable true independence between teams.


Primitives force divisions by requiring units to be independent.

This in turn:

  • creates resilience through modularity
  • fast adaptation
  • decentralized innovation
  • fault isolation and recovery

In other words… it creates anti-fragility*.

What primitives are you using?


*And if I misunderstood Anti-Fragile… my apologies to Taleb!

chess

Like this? Join the email list.

Micro-thoughts on operational strategy straight to your inbox.

* No, we don't spam. We hate spam. A lot.

Browse More Newsletters