Niklaus Wirth: ‘A Plea for Lean Software’

From an essay Niklaus Wirth published in IEEE’s “Computer” magazine in 1995 (original PDF), some lessons learned in the development of Wirth’s Oberon system:

  • The belief that complex systems require armies of designers and programmers is wrong. A system that is not understood in its entirety, or at least to significant degree of detail by a single individual, should probably not be built.

  • Communication problems grow as the size of the design team grows. Whether they are obvious or not, when communication problems predominate, the team and the project are both in deep trouble.

  • Reducing complexity and size must be the goal in every step — in system specification, design, and in detailed programming. A programmer’s competence should be judged by the ability to find simple solutions, certainly not by productivity measured in “number of lines ejected per day.” Prolific programmers contribute to certain disaster.

  • Programs should be written and polished until they acquire publication quality. It is infinitely more demanding to design a publishable program than one that “runs.” Programs should be written for human readers as well as for computers. If this notion contradicts certain vested interests in the commercial world, it should at least find no resistance in academia.

Thursday, 11 January 2024