1. Any given program, when running, is obsolete.
  2. Any given program costs more and takes longer.
  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 program will expand to fill available memory.
  6. The value of a program is proportional to the weight of its output.
  7. Program complexity grows until it exceeds the capabilities of the programmer who must maintain it.
  8. Any non-trivial program contains at least one bug.
  9. Undetectable errors are infinite in variety, in contrast to detectable errors, which by definition are limited.
  10. Adding manpower to a late software project makes it later.

[ via devtopics.com ]
[ from slim amamou ]