Simplicity is a necessary precondition for reliability.
Dijkstra argues that dependable software requires a structure that people can understand and reason about. Unnecessary complexity makes it harder to trace behaviour, identify errors and assess the consequences of changes. Simplicity therefore serves a practical purpose: it supports justified confidence in how a system will behave.
The phrase “necessary precondition” does not mean simplicity guarantees reliability. A simple program can still contain mistakes. Rather, Dijkstra presents simplicity as a foundation on which reliable design must be built, not a substitute for careful implementation and verification.
In the surrounding passage, he criticises companies that, in his view, deliberately complicate products to make them proprietary. He contrasts this commercial practice with the lessons of computing science. A practical application is to question complexity that serves no essential function, while preserving the features and safeguards needed for the system to work correctly.
Full quotation
“For instance, computing science has very convincingly shown that simplicity is a necessary precondition for reliability, but industry willfully complicates products so as to make them proprietary. The disgraceful state of affairs is fully revealed by the traditional disclaimer with which industrial software is sold.”