TL;DR

  • In every organization of any size, the steady state is always a superposition of many different wavefronts of changes.
    • Some of those changes are technological and some of them are market-driven
    • The changes are originating at different places and sweeping through the organization at different speeds.
  • Stop chasing the end state!
  • Let’s focus on continuous adaptation instead of the grand vision.
  1. Embrace Plurality
    • Avoid single system of record (SSoR).
    • Federate extents from multiple different systems (multiple systems of record).
  2. Contextualize Downstream
    • Business rules are contextual.
    • The more we push rules upstream, the larger the surface area of every change becomes.
    • Augment the information upstream, but contextualize it and apply rules and policies downstream.
    • Apply policies in systems closest to the users.
    • Minimize the entities that all systems need to know about it.
  3. Beware Grandiosity
    • Seek compromises.
    • Assume an open world.
    • Begin small and incrementalize.
    • Allow lengthy comment periods.
  4. Decentralize
    • Transparency: methods, work, and results must be visible.
    • Isolation: one group’s failure cannot cause widespread damage.
    • Economics: distributed economic decision-making.
  5. Isolate Failure Domains
    • Six different ways of introducing modularity: splitting, substitution, augmenting, excluding, inversion, porting
  6. Data Outlives Applications
    • Data outlives many different technologies and applications.
  7. Applications Outlive Integrations
    • Hexagonal architecture or Ports and Adapters
  8. Increase Discoverability
    • Improve by building on the work of others.
    • Visible work: open code repositories, internal blogs, etc.

Presentation