Three Eras of Architecture, One Recurring Mistake

▶ Watch (00:31)

Software architecture has moved through three phases since 1936: the logical phase (code and context both reducible to logic), the structural phase (everything becomes processes and org charts), and the adaptive phase that gave rise to agile (complexity can’t be reduced, only waited for). Each phase changed how architects conceive of complexity in the business environment. But all three either deny it, simplify it, or delay dealing with it. The result is familiar: unpredicted events destroy architectures, and architects get blamed.

“randomly stressing an architecture produces architectures that are more likely to survive unexpected events in their environment.” — Barry O’Reilly

What Complexity Science Says About Architecture

▶ Watch (11:16)

Kauffman networks give architects two concrete tools. The first is random simulation: when a shape can’t be measured analytically, throw darts at it and count where they land. Gathering requirements is dart-throwing anyway, just badly aimed. The second tool is the N/K/P model. N is node count, K is connections, P is bias. Raise N and K too high and the system develops unexpected attractors (cancer in biology, sprawl in distributed systems). Bias nodes via contracts and interfaces and attractors stay stable. Sixty years of modularity, from objects to microservices, is P-tuning.

Residues: Building for Attractors You Haven’t Seen

▶ Watch (21:16)

A business environment, treated as a Kauffman network, collapses from 2^100,000 possible states to a small set of attractors. Architects don’t need to model everything. They need to find the attractors. Residuality theory does this by making something up (“what if a competitor drops their price?”), asking the business how it would react, and then checking whether the current architecture survives. Usually it doesn’t. The parts that need to be added to survive are the residue. Repeat across many random stressors, combine the residues, and the architecture starts handling events that were never in the spec.

“architectures in complex environments have to be trained, not designed.” — Barry O’Reilly

EV Charger Case Study: Off-Spec Survival in Practice

▶ Watch (29:19)

O’Reilly applied residue analysis to an EV fast-charger network, walking through the EV charger residue walkthrough (30:00) live. Stressor 3 (key fob failure) produced license plate recognition. Stressor 8 (charger damage) produced security cameras and redundancy. Stressor 12 (golfers parking all day) produced sliding-scale per-minute billing. None were in the requirements. A year later, “icing” arrived in the US: fossil-fuel drivers blocked chargers as a political act. The architecture handled it without a code change. Plates were logged, cameras captured evidence, redundancy absorbed blocked units, and idle occupiers faced $400 a day.

From Correctness to Criticality: Measuring What Architecture Actually Does

▶ Watch (37:58)

When residues are integrated, stressors often hit two components that seemed unrelated. That hidden coupling surfaces in an incidence matrix: map each stressor to each component, score 1 or 0, flag rows summing above 2. Components sharing the same stress profile belong inside the same boundary. O’Reilly ran this as a PhD experiment across multiple teams. The residual index, (Y - X) / S, measures how many more unseen stressors the residual architecture survives versus the naive one. A positive result means the architecture moved toward criticality. For the first time, architects have a number.

“the goal of architecture is criticality.” — Barry O’Reilly

Notable Quotes

randomly stressing an architecture produces architectures that are more likely to survive unexpected events in their environment. Barry O’Reilly · ▶ 0:33

the goal of architecture is criticality. Barry O’Reilly · ▶ 38:19

architectures in complex environments have to be trained, not designed. Barry O’Reilly · ▶ 43:02

Architecture runs on vibes. Barry O’Reilly · ▶ 44:08

Key Takeaways

  • Randomly stressing a naive architecture produces a residual architecture that survives unseen events better than one designed with requirements.
  • Complex business environments collapse to a small set of attractors, so architects need to build for those states, not for a single happy path.
  • The residual index (Y minus X over S) gives architects measurable, replicable evidence that their changes improved architectural resilience.