The specificity gradient is a term I came up with for a principle that I have held for many years now, that software is, as I said on a podcast back in 2010, a very verbose, very precise incantation specifying how an information system ought to behave. What gets written down as software code is the result of a long chain of deliberation, passing through the hands of numerous stakeholders from sharply different disciplines. In the process, the rationale for why the code behaves one way and not another is often lost, or at least misplaced. And herein lies the problem: Code has far too much detail, and is much too preoccupied with its own affairs, to be the authoritative place where business decisions are made.

Indeed, this ratcheting up of technical detail concomitates with an increasing distance from a surface that ordinary people understand, and, I argue, less durable and more volatile with respect to time.