-
Any given program,
when running, is obsolete.
-
Any given
program costs more and takes longer each time it is run.
-
If a program is
useful, it will have to be changed.
-
If a
program is useless, it will have to be documented.
-
Any given
program will expand to fill all the available memory.
-
The value
of a program is inversely proportional to the weight of its output.
-
Program
complexity grows until it exceeds the capability of the programmer who must
maintain it.
-
Every non-
trivial program has at least one bug
Corollary 1 - A sufficient condition for program triviality is that it have no
bugs.
Corollary 2 - At least one bug will be observed after the author leaves the
organization.
-
Bugs will
appear in one part of a working program when another 'unrelated' part is
modified.
-
The
subtlest bugs cause the greatest damage and problems.
Corollary - A subtle bug will modify storage thereby masquerading as some other
problem.
-
A 'debugged' program that crashes will wipe out source files on storage devices
when there is the least available backup.
-
Undetectable
errors are infinite in variety, in contrast to detectable errors, which by
definition are limited.
-
Adding
manpower to a late ERP project makes it later.
-
Make it
possible for programmers to write programs in English, and you will find that
programmers can not write in English.
-
The
documented interfaces between standard software modules will have undocumented
quirks.
-
The
probability of a hardware failure disappearing is inversely proportional to the
distance between the computer and the customer engineer.
-
A working
program is one that has only unobserved bugs.
-
No matter
how many resources you have, it is never enough.
-
Any cool
program always requires more memory than you have.
-
When you
finally buy enough memory, you will not have enough disk space.
-
Disks are
always full. It is futile to try to get more disk space. Data expands to fill
any void.
-
If a
program actually fits in memory and has enough disk space, it is guaranteed to
crash.
-
If such a
program has not crashed yet, it is waiting for a critical moment before it
crashes.
-
No matter
how good of a deal you get on computer components, the price will always drop
immediately after the purchase.
-
All
components become obsolete.
-
The speed
with which components become obsolete is directly proportional to the price of
the component.
-
Software
bugs are impossible to detect by anybody except the end user.
-
The
maintenance engineer will never have seen a model quite like yours before.
-
It is
axiomatic that any spares required will have just been discontinued and will be
no longer in stock.
-
Any VDU,
from the cheapest to the most expensive, will protect a twenty cent fuse by
blowing first.
-
Any
manufacturer making his warranties dependent upon the device being earthed will
only supply power cabling with two wires.
-
If a
circuit requires n components, then there will be only n - 1 components in
locally-held stocks.
-
A failure
in a device will never appear until it has passed final inspection.
-
Adding
manpower to a late software project makes it later.
-
A program
generator creates programs that are more buggy than the program generator.
-
All Constants are Variables. Constants aren't.
Variables
won't