Wheeler's aphorism
expressionprogramming
'All problems in computer science can be solved by another level of indirection', with the folk corollary: except too many levels of indirection.
Attributed to Cambridge pioneer David Wheeler, co-inventor of the subroutine, the aphorism names the field's universal move: interpose a layer, a pointer, a proxy, a virtual machine, and the incompatible becomes compatible. The unofficial corollary carries the bill, since every layer adds latency, opacity, and a new place for abstractions to leak. Modern stacks are Wheeler's aphorism applied a few dozen times, followed by observability tools sold to see through the result.
All problems in computer science can be solved by another level of indirection, attributed to David Wheeler, who is said to have added the crucial second half: except for the problem of too many levels of indirection.
The first half is genuinely true and is the most reusable idea in the field. Virtual memory is indirection between addresses and storage, DNS is indirection between names and addresses, an interface is indirection between a caller and an implementation, and a load balancer is indirection between a service and the machines providing it. Each one turns a rigid coupling into something that can change without coordination.
The second half is why systems become incomprehensible. Every layer costs performance, and more importantly costs understanding: a request that passes through eight abstractions is a request whose failure could originate in eight places, and debugging it requires holding all eight models simultaneously. That is the real limit, and it is cognitive rather than computational, which is why the useful discipline is asking what an additional layer buys before adding it, rather than assuming that another one is free.
Also known as: fundamental theorem of software engineering, another level of indirection