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
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.