"Usually its users discover sooner or later that their program does not deliver all the desired results, or worse, that the results requested were not the ones really needed"
About this Quote
Wirth is puncturing a fantasy that still sells software: that requirements can be cleanly “captured,” translated into code, and then cashed out as value. The bite in his phrasing is the double failure mode. First, the mundane one: the program doesn’t deliver what was desired. Second, the more damning one: it delivers exactly what was requested, and that turns out not to be what anyone actually needed. He’s aiming at the human layer of computing, where language is slippery, incentives are misaligned, and “the spec” becomes a ritual object people hide behind.
The line works because it flips the usual blame story. Bugs and missed deadlines are too easy; Wirth is talking about the deeper misfire where the machine behaves perfectly and the organization still loses. “Requested” suggests formalized demands, tickets, contracts, checklists. “Really needed” points to the messier reality: tacit knowledge, evolving goals, political compromises, and the fact that users often don’t know what they want until they see something.
Context matters: Wirth came up in an era when structured programming and rigorous design were supposed to tame complexity. He helped build languages (Pascal, Modula) meant to impose discipline. Yet here he’s warning that discipline in code can’t compensate for ambiguity in purpose. It’s a quiet argument for iteration, for prototyping, for treating software as a conversation with the world rather than a one-time translation of wishes into logic.
The line works because it flips the usual blame story. Bugs and missed deadlines are too easy; Wirth is talking about the deeper misfire where the machine behaves perfectly and the organization still loses. “Requested” suggests formalized demands, tickets, contracts, checklists. “Really needed” points to the messier reality: tacit knowledge, evolving goals, political compromises, and the fact that users often don’t know what they want until they see something.
Context matters: Wirth came up in an era when structured programming and rigorous design were supposed to tame complexity. He helped build languages (Pascal, Modula) meant to impose discipline. Yet here he’s warning that discipline in code can’t compensate for ambiguity in purpose. It’s a quiet argument for iteration, for prototyping, for treating software as a conversation with the world rather than a one-time translation of wishes into logic.
Quote Details
| Topic | Coding & Programming |
|---|
More Quotes by Niklaus
Add to List


