1. Any given program, when running, is obsolete.
2. If a program is useless, it will have to be documented.
3. If a program is useful, it will have to be documented.
4. Any program will expand to fill available memory.
5. The value of a program is proportional to the weight of its output.
6. Program complexity grows until it exceeds the capacity of a programmer to maintain it.
7. Make it possible for programmers to write in English, and you will find out that programmers cannot write in English.
If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization.
Hare’s Law of Large Programs
Inside every large program is a small program struggling to get out.
Troutman’s Programming Laws
1. If a test installation functions perfectly, all subsequent installations will malfunction.
2. Not until a program has been in production for at least six months will the most harmful error then be discovered.
3. Job control cards that cannot be arranged in improper order will be.
4. Interchangeable tapes won’t.
5. If the input editor has been designed to reject all bad input, an ingenious idiot will discover a method to get bad input past it.
6. Machines work. People should think.
Golub’s Laws of Computerdom
1. A carelessly planned project takes three times longer to complete than expected; a carefully planned project will take only twice as long.
2. The effort required to correct the error increases geometrically with time.
If computers get too powerful, organize them into a committee.
I know nothing of programming.
I copied these maxims off a novelty coffee cup which I’ve had a long time, as is apparent from the reference to computer tapes.
I posted them because I find them amusing and because they apply to so many aspects of life besides programming.