As any experienced computer programmer knows, there are unwritten laws that govern software development. However there are no penalties for breaking these laws; rather, there is often a reward. Following are 21 Laws of Computer Programming: Any given program, once deployed, is already obsolete. It is easier to change the specification to fit the program than vice versa. If a program is useful, it will have to be changed. If a program is useless, it will have to be documented. Only ten percent of the code in any given program will ever execute. Software expands to consume all available resources. Any non-trivial program contains at least one error. The probability of a flawless demo is inversely proportional to the number of people watching, raised to the power of the amount of money involved. 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 b...