Errors Are Design Failures
- Categories
- Design
When a person makes an error, the fault usually lies in a design that made the error easy to commit and hard to recover from. The remedy is to design so errors cannot happen, or are caught and reversible, rather than to blame the operator.
Reinforced By
- Define Errors Out of Existence — redefine semantics so whole classes of error cannot arise.
- Slips and Mistakes — error has structure (execution versus planning), so it can be designed against.
- Forcing Functions — constraints that block dangerous actions before they happen.
- Root Cause Is a Fallacy and Hindsight Bias — at systems scale, failures are multi-causal and blame is a hindsight artifact, not a finding.
- composed in the Error-Resistant Design pattern.
Why it Matters
A Philosophy of Software Design argues that exceptional cases are a leading source of complexity and the best move is to define them away. The Design of Everyday Things argues that human error is almost always a symptom of poor design and that systems should prevent, tolerate, and allow recovery from it. How Complex Systems Fail generalizes the claim from design to operations: there is no single root cause, hindsight makes operators look negligent, and safety is produced by the whole system, so blaming the person is a misdiagnosis. Across software, physical artifacts, and live operations the worldview is the same: error is a property of the system, not a personal failing, and "the user was careless" is a diagnosis that guarantees the error recurs.
Tension
Designing out every possible error can over-constrain capable users, and warnings multiply until they are ignored. The balance is to make costly errors structurally impossible while keeping the system tolerant and recoverable for the rest.