# More Eternal Verities

How Computers Process Math, Time and Money

• Computers always start counting from zero, except sometimes.

Grabel's Law: Two is not equal to three - not even for very large values of two.

Skinner's Constant: That factor which, when multiplied by, divided by, added to or subtracted from the answer you got, gives you the answer you should have gotten.

Best's Law: If data resides in two places, it will be inconsistent.

Estimating Time: Everything takes longer than you think or want. To estimate the time required for any given project, first guess at the time you think it should take; multiply that by 2 and change to the next higher unit of measurement. Thus, if you think you can complete a project in one hour, tell your boss you will need two days; if four weeks, ask for eight months.

The 90-90 Rule of Project Scheduling: The first 90% of the project takes 90% of the time, and the last 10% of the project takes the other 90% of the time.

• When you get a computer to do a job for you, the time you save will usually be spent watching the computer to make sure it works properly.

• No matter how expensive you expect a system to be, it will always end up costing more.

The Futility of Programming

• The computer is always right. Programmers are occasionally right.

Gutterson's Laws: Any programming project that begins well ends badly. Any programming project that begins badly ends worse.

Klienbrunner's Corollaries: If a programming task looks easy, it's tough. If a programming task looks tough, it's damn-well impossible.

Farvour's Law: There is always one more bug.

Dykstra's Observation: If debugging is the process of removing bugs, then programming must be the process of putting them in.

Hardware

Pournelle's Law: Cables do matter. When something doesn't work, always check the cables and their connectors first.

Parkinson's Law of Data: Data expands to fill the space available for storage.

Atkinson's Seventh Law of Computing: All disk drives fill up.

Hardware/Software Paradigm: A program is a device to show up hardware faults; hardware is the equipment used to show up software faults.

The Customer Is Always Wrong

• You can make it foolproof, but you can't make it damn-fool-proof.

• When a system is designed so that fools can use it, only fools can use it.

The Disconnect Between English and Computers

• Fail-safe systems do. Operating systems don't. Machine-independent code isn't.

• Applications don't apply; facilities don't facilitate; plug-ins always come factory-fitted with the wrong type of plug.

• The two most abused words in all of computing are user friendly.

Self-Evident Observations, Or 'Why Didn't I Think of That?'

Lansam's Laws: Everything depends. Nothing is always. Everything is sometimes.

Glasgow's Third Law: Quality is not free, but it is cheaper than the alternatives.

Atkinson's Third Law: If you need to read a computer manual, you can't. If you can read a computer manual, you don't need to.

Atkinson's Fourth Law:There will be one operating system, one programming language and one philosophy of system administration only after there is only one language spoken and one religion practiced on the face of the earth.

Glasgow's Fourth Law: If you can't describe it in writing, you can't build it. If you haven't described it in writing, don't try to build it. If it's so small it doesn't need documentation, then it doesn't do anything worthwhile.

Laws of Revelation: The hidden flaw always remains hidden. Nature always sides with the hidden flaw. And the universe is laughing behind your back.

Related:

``` ```