We have come through a strange cycle in programming, starting with the creation of programming itself as a human activity. Executives with the tiniest smattering of knowledge assume that anyone can write a program, and only now are programmers beginning to win their battle for recognition as true professionals. Not just anyone, with any background, or any training, can do a fine job of programming. Programmers know this, but then why is it that they think that anyone picked off the street can do documentation? One has only to spend an hour looking at papers written by graduate students to realize the extent to which the ability to communicate is not universally held. And so, when we speak about computer program documentation, we are not speaking about the psychology of computer programming at all - except insofar as programmers have the illusion that anyone can do a good job of documentation, provided he is not smart enough to be a programmer.

|
An apprentice carpenter may want only a hammer and saw, but a master craftsman employs many precision tools. Computer programming likewise requires sophisticated tools to cope with the complexity of real applications, and only practice with these tools will build skill in their use.

|
LAWS OF COMPUTER PROGRAMMING, VII: Program complexity grows until it exceeds the capabilities of the programmer who must maintain it.

|
LAWS OF COMPUTER PROGRAMMING, IX: Undetectable errors are infinite in variety, in contrast to detectable errors, which by definition are limited.

|
LAWS OF COMPUTER PROGRAMMING, X: Adding manpower to a late software project makes it later.

|