Murphy's Laws of Computer Programming
Any given program, when running, is obsolete.
If a program is useless, it will have to be documented.
If a program is useful, it will have to be changed.
Any non-trivial program contains at least one bug.
Any program will expand to fill all available memory.
The value of a program is directly proportional to the weight of its output.
The complexity of a program will grow until it exceeds the capability of the
programmer to maintain it.
Make it possible for programmers to write in English and you will find that
programmers cannot write in English.
If builders built buildings the way programmers write programs, the first
woodpecker that came along would destroy civilization.
Inside every small program is a large program struggling to get out.
If a test installation functions perfectly, all subsequent systems will
Not until a program has been in production for at least six months will its
most harmful error be discovered.
Undetectable errors are infinite in variety, in contrast to detectable
errors, which are by definition limited.
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.
Build a system that even a fool can use, and only a fool will want to use
Machines work; people should think.
A carelessly planned project takes three times longer to complete than
expected; a carefully planned project will take only twice as long.
Adding manpower to a late project makes it later.
The effort required to correct an error increases geometrically with time.
Only ten percent of the code in any given program will ever be executed.