There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies.
Tony Hoare’s observation, from his 1980 Turing Award lecture, contrasts two approaches to software design. The first makes a system so simple that any flaws are immediately visible. The second makes it so complicated that flaws can hide undetected. Hoare notes that the first approach is far harder to achieve, because reducing a design to its essentials demands discipline, clear thinking, and a willingness to accept constraints. Complexity, by contrast, often accumulates without resistance and can give a false impression of completeness while masking errors. The remark is widely cited in software engineering as an argument for simplicity over unnecessary elaboration. Although Hoare was describing programming, the principle is often applied more broadly to engineering, management, and design, where intricate solutions may appear thorough yet conceal weaknesses. The quotation reflects a recurring theme in Hoare’s work: that reliability depends on keeping designs comprehensible.
Full quotation
“I gave desperate warning against the obscurity, the complexity, and overambition of the new design, but my warnings went unheeded. I concluded that there are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies.
The first method is far more difficult. It demands the same skill, devotion, insight, and even inspiration as the discovery of the simple physical laws which underlie the complex phenomena of nature. It also requires a willingness to accept objectives which are limited by physical, logical, and technological constraints, and to accept a compromise when conflicting objectives cannot be met. No committee will ever do this until it is too late.”
Explore the author
Tony Hoare
19 quotes · 13 works · 36 themes · 93 tags