The original Murphy's Law was "If there are two or more ways to do something, and one of those ways can result in a catastrophe, then someone will do it." The law's author was Edward A. Murphy, Jr., a U.S. Air Force engineer, who, in 1947, was involved in a rocket-sled experiment in which all 16 accelerator instruments were installed in the wrong way, resulting in Murphy's observation. Murphy's Law is sometimes expressed as "Anything that can go wrong, will -- at the worst possible moment." In that format, the Law was popularized by science-fiction writer Larry Niven as "Finagle's Law of Dynamic Negatives " (sometimes known as "Finagle's corollary to Murphy's Law").
Extrapolating from the original, we arrive at Murphy's Laws of Information Technology, a set of principles that may seem to be jokes but which events sometimes prove to be fundamental truths.
Here are a few examples of Murphy's Laws relative to hardware.
- Law of Inconvenient Malfunction: A device will fail at the least opportune possible moment.
- Law of Cable Compatibility: If you choose a cable and a connector at random, the probability that they are compatible is equal to zero.
- Law of Hardware Compatibility: The probability of a given peripheral being compatible with a PC is inversely proportional to the immediate need for that peripheral.
- Law of Bad Sectors: The probability that an untested diskette will have bad sectors is directly proportional to the importance of the data written onto the diskette.
- First Law of Selective Gravitation: When an object is dropped, it will fall in such a way as to cause the greatest possible damage to itself and/or other objects on which it lands.
- Second Law of Selective Gravitation: The tendency for an object to be dropped is directly proportional to its value.
- Law of Reality Change: Unalterable hardware specifications will change as necessary to maximize frustration for personnel affected by said specifications.
- Law of Noise: Noise bursts occur so as to cause the most, and/or most serious, errors in data communications, regardless of the actual amount of noise present.
- Law of Expectation: Consumer expectations always outpace advances in hardware technology.
- Law of the Titanic: If a device cannot malfunction, it will.
Here are a few greatly simplified examples of Murphy's Laws as they relate to programming.
- Law of Debugging: The difficulty of debugging software is directly proportional to the number of people who will ultimately use it.
- Law of Neurosis: The chances of software being neurotic (developing bugs spontaneously without apparent reason) is directly proportional to the confusion such neurosis can cause.
- Law of Available Space: If there are n bytes in a crucial software program, the available space for its convenient storage or loading is equal to n-1 bytes.
- First Law of Bad Sectors: The probability of software being mutilated by bad sectors is directly proportional to the value and/or importance of the programs.
- Second Law of Bad Sectors: When a program is mutilated by bad sectors, the damage will occur at the point(s) that result in the most frequent and/or severe errors when the program is run.
- Law of Noise: When a downloaded program is corrupted by noise, the corruption will occur at the point(s) that result in the most frequent and/or severe errors when the program is run.
- Law of Software Compatibility: If two programs are chosen at random, the probability that they are compatible is equal to zero.
- Law of Option Preferences: When two people share a computer, their software option preferences will differ in every possible way.
- Law of Expectation: Consumer expectations always outpace advances in software technology.
- Law of the Titanic: Bug-free software isn't.
As you gain experience, you'll discover, and learn to live with, most aspects of Murphy's Laws. It's best that way. If neophytes were fully aware of all the things that could go wrong, they might avoid technology careers altogether. Then they'd miss out on all the benefits, and all the fun, that technology has to offer.