Laws, Postulate, Axioms, and Rules of Programming
Laws of Computerdom:
Fuzzy project objectives are used to avoid the
embarrassment of estimating the corresponding costs.
A carelessly planned project takes three times
longer to complete than expected; a carefully planned project
takes only twice as long.
The effort required to correct course increases
geometrically with time.
If builder's built buildings the way programmers
wrote programs, then the first woodpecker that came along would
destroy civilization.
Computers are unreliable, but humans are even
more unreliable.
Any system which depends on human reliability
is unreliable.
Undetected errors are infinite in variety, in
contrast to detectable errors, which are by definition
limited.
Investment in reliability will increase until
it exceeds the probable cost of errors, or until someone
insists on getting some useful work done.
To err is human, but to really foul things up
requires a computer.
Teamwork is essential. It allows you to blame
someone else.
Laws of Computer Programming:
Any given program costs more and takes longer
than expected.
If a program is useful, it will have to be
changed.
If a program is useless, it will have to be
documented.
Any given program will expand to fill all
available memory.
The value of a program is proportional to
the weight of its output.
Program complexity grows until it exceeds
the capacity of the programmer who must maintain it.
Programming Postulates:
Profanity is the one language all programmers
know best.
If the input editor has been designed to reject
all bad input, an ingenious idiot will discover a method to
get bad data past it.
Complex problems have simple, easy to understand
wrong answers.
If you hit two keys on the keyboard, the one that
you do not want will appear on the screen.
Observations:
An expert is that person most surprised by the
latest evidence to the contrary.
To spot an expert, pick the one who predicts
the job will take the longest and cost the most.
Axiom:
Only errors exist.
Corollary:
One man's error is another man's data.
Last modified: 6/15/95