3. II
the three f’s of
priority management
functionality,
fidelity,
efficiency.
h
4. III
the gray dichotomy
structural abstraction can always be
solved by introducing a level of
indirection*
*corollary. there is no performance problem that
cannot be solved by eliminating a level of indirection.
h
Jim Gray
5. IV
the archimedean principle
h
a software system built on top of a
weak architecture will sink due to
the weight of its own success.
9. VIII
the incomplete
by design principle
h
for all practical purposes, it’s
impossible to prove the
correctness of all software*
*corollary. development is a conjecture-making activity.
10. IX
the murphy approximation
h
all programs have errors*
* the number of errors (n) in a given program can be
approximated by n > k, where k is any unsigned integer.
Murphy’s Laws
16. XV
the agile peculiarity
h
there’s always time to make more
changes until there’s no more
time to make changes*
* it’s always the last change that blew it up.
17. XVI
the social responsibility of a
software engineer
h
if the world ends in a catastrophic
scenario… who you gonna call?
the software engineers*
* because they did it!
18. XVII
the dijkstra observation
h
if debugging is the process of
removing software bugs, then
programming must be the
process of putting them in.
Edsger Dijkstra
19. XVIII
the pattis zen
h
when debugging, novices insert
corrective code; experts remove
defective code.
Richard Pattis
20. XIX
the adams pitfall
h
a common mistake that people make
when trying to design something
completely foolproof is to
underestimate the ingenuity of
complete fools.
Douglas Adams
21. XX
the ninety-ninety rule
h
the first 90% of the code accounts
for the first 90% of the
development time. The remaining 10%
of the code accounts for the other
90% of the development time.
Tom Cargill
29. XXVIII
the hoare duality
h
there are two ways of constructing a
piece of software: one is to make it so
simple that there are obviously no errors,
and the other is to make it so complicated
that there are no obvious errors.
Tony Hoare