Laws of Computer Programming
- Any given program, when running, is obsolete.
- Any given program costs more and takes longer.
- If a program is useful, it will have to be changed.
- If a program is useless, it will have to be documented.
- Any program will expand to fill available memory.
- The value of a program is proportional to the weight of its output.
- Program complexity grows until it exceeds the capabilities of the programmer who must maintain it.
- Any non-trivial program contains at least one bug.
- Undetectable errors are infinite in variety, in contrast to detectable errors, which by definition are limited.
- Adding manpower to a late software project makes it later.