Subj: HUM: Computer Laws (***)

1. Any given program, if 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 and fill all of available memory --

plus one byte.

6. The value of a program is proportional to the weight of its

output.

7. Program complexity grows until it exceeds the capability of the

programmer who must maintain it.

TROUTMAN'S PROGRAMMING POSTULATES

1. If the test installation functions perfectly, all subsequent runs

will fail.

2. The most harmful error of any program will not be discovered until

the program has been in production for at least six months.

3. A Batch Stream that can not be arranged in improper order will be.

4. Constants aren't.

5. Variables won't.

6. Interchangeable Tapes don't.

7. Profanity is the one language that all programmers know the

syntax of.

GILB'S LAWS OF UNRELIABILITY

1. Computers are unreliable. Humans are worse.

2. Any system which depends on human reliability is unreliable.

3. Undetectable error are infinite in variety. Detectable errors do

not exist, unless deadline is less than three hours away.

4. Investment in reliability will increase until it exceeds the

probable cost of errors, or until someone insists on getting

some real work done.

BROOK'S LAW

Any manpower added to a late project makes it later.

LAWS OF COMPUTERDUM ACCORDING TO GOLUB

1. Fuzzy project objectives are used to avoid the embarrassment of

estimating the corresponding costs.

2. Carelessly planned projects take three times longer to complete

than expected.

Carefully planned projects take only three times longer to

complete than expected.

3. Programmers detest weekly status reporting because it so vividly

manifests their lack of progress.

LUBARSKY'S LAW OF CYBERNETIC ENTOMOLOGY

There is always one more bug.

SHAW'S PRINCIPLE

Build a system that even a fool can use,

and only a fool will use it.

IBM POLLYANNA PRINCIPLE

Machines should work. People should think.

GRAY'S LAW OF PROGRAMMING

"n+1" trivial tasks are expected to be accomplished in the same

time as "n" trivial tasks.

LOGG'S REBUTTAL TO GRAY'S LAW

"n+1" trivial tasks take twice as long as "n" trivial tasks.

WEINBERG'S SECOND LAW

If builders built building the way that programmers program

programs, the first woodpecker to come along would destroy

civilization.

MURPHY'S COMPUTER LAW

Murphy never would have used computers, but would have loved

them.

BOVE'S THEOREM

The remaining work required in order to finish a project increases

as the deadline approaches.

BROOK'S LAW

Adding manpower to a late software project makes it later.

CANADA BILL JONES' MOTTO

It's morally wrong to allow naive end users to keep their money.

CANN'S AXIOM

When all else fails, read the instructions.

CLARK'S THIRD LAW

Any sufficiently advanced technology is indistinguishable from

Magic.

DEADLINE DAN'S DEMO DEMONSTRATION

Every task takes twice as long as you think it will take. If you

double the time you think it will take, it will actually take four

times as long.

DEMIAN'S OBSERVATION

There is always one item on the screen menu that is mislabeled

and should read "ABANDON HOPE ALL YE WHO ENTER HERE."

DR. CALIGAR'S COMEBACK

Disk errors occur only after you've done several hours of work

without making a backup.

THOMAS WATSON'S LAW

No matter how large and standardized the marketplace, IBM can

re-define it.