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.
- Embrace Plurality
- Avoid single system of record (SSoR).
- Federate extents from multiple different systems (multiple systems of record).
- 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.
- Beware Grandiosity
- Seek compromises.
- Assume an open world.
- Begin small and incrementalize.
- Allow lengthy comment periods.
- Decentralize
- Transparency: methods, work, and results must be visible.
- Isolation: one group’s failure cannot cause widespread damage.
- Economics: distributed economic decision-making.
- Isolate Failure Domains
- Six different ways of introducing modularity: splitting, substitution, augmenting, excluding, inversion, porting
- Data Outlives Applications
- Data outlives many different technologies and applications.
- Applications Outlive Integrations
- Hexagonal architecture or Ports and Adapters
- Increase Discoverability
- Improve by building on the work of others.
- Visible work: open code repositories, internal blogs, etc.