The laws of computer programming
1. Any given program, when running, is obsolete.
2. Any given program costs more and takes longer each time it is run.
3. If a program is useful, it will have to be changed.
4. If a program is useless, it will have to be documented.
5. Any given program will expand to fill all the available memory.
6. The value of a program is inversely proportional to the weight of its output.
7. Program complexity grows until it exceeds the capability of the programmer who must maintain it.
1. Fuzzy project objectives are used to avoid embarrassment of estimating the corresponding costs.
2. A carelessly planned project takes three longer to complete than expected; a carefully planned project takes only twice as long.
3. The effort required to correct course increases geometrically with time.
4. Project teams detest weekly progress reporting because it so vividly manifests their lack of progress.
Variables won't; constants aren't.
1. Computers are unreliable, but humans are even more unreliable.
2. Any system that depends upon human reliability is unreliable.
3. Undetectable errors are infinite in variety, in contrast to detectable errors, which by definition are limited.
4. Investment in reliability will increase until it exceeds the probable cost of errors, or until someone insists on getting some useful work done.
There's always one more bug.
1. Profanity is the one language understood by all programmers.
2. Not until a program has been in production for six months will the most harmful error be discovered.
3. Job control cards that positively 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 user will discover a method to get bad data past it.
6. If a test installation functions perfectly, all subsequent systems will malfunction.
If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization.
Under the most rigorously controlled conditions of pressure, temperature, volume, humidity and other variables, the computer will do as it darn well pleases.
1. A failure will not appear till a unit has passed final inspection.
2. New systems generate new problems.
3. To err is human, but to really foul things up requires a computer.
4. We don't know one millionth of one percent about anything.
5. Any given program, when running, is obsolete.
6. Any sufficiently advanced technology is indistinguishable from magic.
7. A computer makes as many mistakes in two seconds as 20 men working 20 years make.
8. The faster a computer is, the faster it will reach a crashed state.
9. If it's not in the computer, it doesn't exist.
10. Any attempt to print Murphy's laws will jam the printer