5D Library › Phase Transitions, Critical Slowing Down and Resilience in Complex Dynamical Systems · 中文
Chapter 6 Tight Coupling and Modularity: Normal Accidents and High Reliability
Normal accidents
In Normal Accidents, published in 1984, the sociologist Charles Perrow started from the 1979 accident at the Three Mile Island nuclear plant and advanced a disturbing thesis: in certain technological systems, serious accidents are not chance mistakes but a “normal” product of the system’s structure (Perrow 1984).
Evidence
Interactive complexity and coupling. By complex interactions Perrow meant interconnected subsystems, common-mode connections and feedback loops, multiple interacting controls, operators who receive only indirect information, and limited understanding of the system; the contrast is linear interactions, in which components act on one another in an expected sequence and problems are easy to see. Tight coupling means that processes cannot be delayed, sequences cannot be changed, there is only one way to reach the goal and almost no slack, so buffers and redundancies must be deliberately designed in; the contrast is loose coupling. In his matrix a dam is linear and tightly coupled; nuclear plants, chemical plants and space missions are complex and tightly coupled; a university is complex and loosely coupled; assembly-line production is linear and loosely coupled. Complex, tightly coupled systems are the most prone to “system accidents”, in which several failures, none serious in itself, interact in ways the designers did not foresee, while tight coupling leaves operators no time to understand and intervene (Perrow 1984).
Perrow’s thesis has a corollary that is still disputed: in complex, tightly coupled systems, adding safety devices and redundancy may itself add complexity and new, unforeseen interactions; for some of the riskiest technologies he argued for abandonment or drastic restriction rather than ever more protection. In the language of Chapter 5, “tight coupling” means that failures pass between components faster than people can notice, and “complex interactions” mean connections that do not appear on the design drawings; when both are present, local faults turn most easily into systemic cascades.
High-reliability organisations: another view
Evidence
High-reliability organisations. La Porte, Consolini and other Berkeley researchers studied three kinds of organisation required not to fail: air traffic control under the US Federal Aviation Administration, flight operations on US Navy nuclear aircraft carriers, and the electric operations and power generation departments of Pacific Gas and Electric. These organisations operate hazardous, tightly coupled and interactively complex technologies with far greater reliability than organisation theory would predict, and they cannot rely on trial-and-error learning. The researchers observed that the same people switch between a routine hierarchical mode, a high-tempo mode in which skill outranks rank, and a scripted emergency mode, the pattern of authority changing with the tempo of operations (La Porte and Consolini 1991). Weick, Sutcliffe and Obstfeld summarised the practices of such organisations as five processes of “collective mindfulness”: preoccupation with failure (treating every error and near miss as a signal about the health of the whole system); reluctance to simplify interpretations; sensitivity to operations; commitment to resilience; and the “underspecification of structures”, which lets decisions migrate in an emergency to those with the most expertise rather than the highest rank (Weick and Sutcliffe’s later book renamed this “deference to expertise”) (Weick et al. 1999).
Evidence
A test. Sagan tested the two theories against the history of US nuclear weapons command and control: if high-reliability theory were right, this system, with the highest political priority, the greatest resources and the strictest discipline, should have seen few dangerous incidents. From archives and interviews he documented many close calls and near accidents (including several during the Cuban missile crisis) and concluded that the system’s safety record owed more to luck than to good design, which fits the pessimistic expectations of normal accident theory better (Sagan 1993).
The two theories do not simply refute each other. Normal accident theory is about structure: how much time for intervention and how much possibility of understanding interactive complexity and tight coupling leave to people. High-reliability theory is about people and organisation: within a given structure, how to notice and respond faster and how to let information flow to those who know. The first calls for changing the structure (loosening coupling, simplifying design, and if necessary giving the technology up), the second for changing the organisation; a particular system usually needs both, and neither is complete.
Modularity: a firebreak and its price
One basic way to loosen coupling is modularity: dividing a system into parts that are tightly connected inside and sparsely connected to one another. In 1962 Simon argued that complex systems are often “nearly decomposable” hierarchies and used the parable of two watchmakers to show that systems assembled step by step from stable intermediate components withstand interruption better (Simon 1962). May, Levin and Sugihara suggested drawing on ecological research on network structure and stability to understand systemic risk in banking (May et al. 2008).
Evidence
An experiment. Gilarranz and colleagues built metapopulation networks of springtails (Folsomia candida) with different degrees of modularity and caused a local extinction at one node as a perturbation. In highly modular networks the perturbation stayed within the module where it began; but simulations suggested that modularity helps only when a perturbation occurs, and hinders population growth when none does (Gilarranz et al. 2017).
Calculation
400 nodes in 10 modules of 40, with 1,200 links (mean degree 6), a share of which cross between modules. A failure starts at one random node and passes along each link once with probability 0.3 (an independent cascade). For each , 20 networks and 20 starting points per network. The everyday cost of modularity is measured by the mean shortest-path length between nodes: the longer the paths, the more slowly help, supplies and information travel in ordinary times.
Calculation
# Modularity as a firebreak, and what it costs. 400 nodes in 10 modules of 40; 1,200 links
# (mean degree 6); a share mu of the links joins different modules. A failure starts at one
# random node and passes along each link once with probability beta = 0.3 (independent
# cascade, i.e. bond percolation). 400 runs per mu (20 networks x 20 seeds). Cost of modularity:
# mean shortest-path length between nodes (longer = slower help, slower information).
import random
from collections import deque
rng = random.Random(13)
N, M, LINKS, BETA = 400, 10, 1200, 0.3
def network(mu):
adj = [set() for _ in range(N)]; size = N // M; n = 0
while n < LINKS:
a = rng.randrange(N); home = (a // size) * size
if rng.random() < mu: # a random node in another module
b = (home + size + rng.randrange(N - size)) % N
else: # a random node in the same module
b = home + rng.randrange(size)
if a != b and b not in adj[a]: adj[a].add(b); adj[b].add(a); n += 1
return adj
def spread(adj, seed):
hit, q = {seed}, deque([seed])
while q:
v = q.popleft()
for w in adj[v]:
if w not in hit and rng.random() < BETA: hit.add(w); q.append(w)
return hit
def mean_path(adj, sources=25):
tot = cnt = 0
for s in rng.sample(range(N), sources):
d = {s: 0}; q = deque([s])
while q:
v = q.popleft()
for w in adj[v]:
if w not in d: d[w] = d[v] + 1; q.append(w)
tot += sum(d.values()); cnt += len(d) - 1
return tot / cnt
print(" mu mean failed P(> 1 module hit) modules hit P(> 100 failed) mean path length")
for mu in (0.01, 0.03, 0.05, 0.1, 0.2, 0.5, 0.9):
sizes, multi, mods, paths = [], 0, 0, []
for _ in range(20):
adj = network(mu); paths.append(mean_path(adj))
for _ in range(20):
h = spread(adj, rng.randrange(N))
m = len({v // (N // M) for v in h})
sizes.append(len(h)); multi += m > 1; mods += m
n = len(sizes)
big, path = sum(s > 100 for s in sizes) / n, sum(paths) / len(paths)
print(f" {mu:4.2f} {sum(sizes) / n:6.1f} {multi / n:4.0%}"
f" {mods / n:4.1f} {big:4.0%} {path:4.2f}")
# mu mean failed P(> 1 module hit) modules hit P(> 100 failed) mean path length
# 0.01 34.9 35% 1.6 6% 7.64
# 0.03 84.0 60% 3.7 34% 5.50
# 0.05 136.1 68% 5.6 54% 4.89
# 0.10 199.3 76% 7.4 70% 4.29
# 0.20 201.4 76% 7.3 69% 3.87
# 0.50 212.1 80% 7.6 72% 3.58
# 0.90 218.6 84% 7.8 74% 3.55The firebreak is real, but it is pronounced only when cross-module links are very few. With (about 12 cross-module links in the whole network), a mean of 35 nodes fail, nearly two thirds (65 %) of failures stay within the starting module, and the chance that more than 100 nodes fail is only 6 %. With 5 % cross-module links, the mean rises to 136 failed nodes and the chance of more than 100 to 54 %; at 10 % the network differs little from a fully random one (). A handful of cross-module links is enough to carry the failure out.
The price is just as clear: the mean path length grows from 3.55 to 7.64, more than doubling. There is a further price: with a mean of 35 nodes fail, close to the size of one module (40); at this transmission probability, once a failure starts, most of the starting module goes down. Modularity protects the whole, not the part that is hit.
Note
For organisations. Compartmentalisation is used in ships, power grids (islanding), software (fault isolation) and organisations (independent teams, independent suppliers). The results above suggest that compartments work only if links between them are very few or can be cut quickly when a fault occurs; that compartmentalisation carries an everyday cost in efficiency; and that the switching devices and procedures added for isolation may themselves create the new complex interactions Perrow warned about. These are heuristics from a model, not advice for any particular organisation.
Chapter summary
Perrow argued that interactively complex, tightly coupled systems “normally” have system accidents, and that adding safety devices may add complexity. High-reliability theory stresses that people and organisations can achieve very high reliability within a given structure, while Sagan’s test on nuclear weapons supported the more pessimistic view of normal accident theory. Modularity can keep a failure within one module, but only when cross-module links are very few, and at the cost of everyday efficiency and the near-total failure of the module that is hit. The next chapter reads some classical Chinese texts on “guarding against the small and stopping the gradual”.
References
Fan, Y. (2026). Phase Transitions, Critical Slowing Down and Resilience in Complex Dynamical Systems: From Saddle-Node Bifurcations and Early-Warning Signals to Cascading Failures, Read Beside Classical Chinese Thought on Incipient Change [复杂系统相变、临界慢化与生态韧性的非线性动力学] (Version 1.0.0). 5D Library. https://doi.org/10.5281/zenodo.23770082 · Licensed under Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0).