21 Laws of Computer Programming

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 by definition are limited.
  • The effort required to correct an error increases exponentially with time.
  • Program complexity grows until it exceeds the capabilities of the programmer who must maintain it.
  • Any code of your own that you haven’t looked at in months might as well have been written by someone else.
  • Inside every small program is a large program struggling to get out.
  • The sooner you start coding a program, the longer it will take.
  • A carelessly planned project takes three times longer to complete than expected; a carefully planned project takes only twice as long.
  • Adding programmers to a late project makes it later.
  • A program is never less than 90% complete, and never more than 95% complete.
  • If you automate a mess, you get an automated mess.
  • Build a program that even a fool can use, and only a fool will want to use it.
  • Users truly don’t know what they want in a program until they use it.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.