Proverbs and quotations
(from Embedded Muse 98 [ganssle.com] and other places)
A clever person solves a problem.
A wise person avoids it.
- Einstein
No matter what the problem is,
it's always a people problem.
- Jerry Weinberg
If the code and the comments disagree, both are probably wrong.
Good judgment comes from experience... and experience comes from bad judgment.
- Fred Brooks
Plan to throw one away, you will anyhow.(Fred Brooks)
Choose two:
Good
Fast
Cheap
Furious activity is no substitute for understanding.
To go faster, slow down. Everybody who knows about orbital mechanics understands
that.
- Scott Cherf
There's no time to stop for gas, we're already late.
- Karin Donker
Discipline is the best tool.
Design first, then code.
Don't patch bugs out, rewrite them out.
Don't test bugs out, design them out.
If you've found 3 bugs in a program, best estimate is that there are 3 more.
For every 7 faults corrected, one of at least equal severity injected.
- N.E. Adams
60% of product cost comes after initial shipment.
If you can't write it down in English, you can't program it.
If something is worth doing once, it's worth building a tool to do it.
Abraham Lincoln reportedly said that, given eight hours to chop down a tree,
he'd spend six sharpening his axe.
- TidBITS 654, quoted by Derek K. Miller, via Art Evans
Your problem is another's solution;
Your solution will be his problem.
The significant problems we face cannot be solved by the same level of thinking
that created them.
- Albert Einstein
Or, as Brian Kernighan put it:
Debugging is twice as hard as writing the code in the first place. Therefore,
if you write the code as cleverly as possible, you are, by definition, not smart
enough to debug it.
do it
do it right
do it right now
- Bobby Riggs
It is not enough to do your best: you must know what to do, and THEN do your
best.
- W. Edwards Deming
One test is worth a thousand opinions.
I am a design chauvinist. I believe that good design is magical and not to
be lightly tinkered with. The difference between a great design and a lousy
one is in the meshing of the thousand details that either fit or don't, and
the spirit of the passionate intellect that has tied them together, or tried.
That's why programming - or buying software - on the basis of "lists of
features" is a doomed and misguided effort. The features can be thrown
together, as in a garbage can, or carefully laid together and interwoven in
elegant unification, as in APL, or the Forth language, or the game of chess.
- Ted Nelson
Software is too important to be left to programmers.
- Meilir Page-Jones.
If you think good architecture is expensive, try bad architecture
- Brian Foote and Joseph Yoder
While we all know that unmastered complexity is at the root of the misery,
we do not know what degree of simplicity can be obtained, nor to what extent
the intrinsic complexity of the whole design has to show up in the interfaces.
We simply do not know yet the limits of disentanglement. We do not know yet
whether intrinsic intricacy can be distinguished from accidental intricacy.
- E. W. Dijkstra
A definition:
Recursive: adj. see Recursive
"When in doubt, use brute force." (Ken Thompson)
"Avoid asymmetry." (Andy Huber)
"Details count." (Peter Weinberger)
"Of all my programming bugs, 80% are syntax errors. Of the remaining 20%, 80% are trivial logical errors. Of the remaining 4%, 80% are pointer errors. And the remaining 0.8% are hard." (Marc Donner)
"A {specification, design, procedure, test plan} that will not fit on one page of 8.5-by-11 inch paper cannot be understood." (Mark Ardis)
"The structure of a system reflects the structure of the organization that built it." (Richard E. Fairley)
"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)
"Good customer relations double productivity." (Larry Bernstein)
"Plan to throw one away, you will anyhow." (Fred Brooks)
"Furious activity is no substitute for understanding." (H. H. Williams)
TOP TEN THINGS ENGINEERING SCHOOL DIDN'T TEACH YOU (from Rich Ries via Embedded Muse) 10. There are at least 10 types of capacitors. 9. Theory tells you how a circuit works, not why it does not work. 8. Not everything works according to the specs in the databook. 7. Anything practical you learn will be obsolete before you use it, except the complex math, which you will never use. 6. Always try to fix the hardware with software. 5. Engineering is like having an 8 a.m. class and a late afternoon lab every day for the rest of your life. 4. Overtime pay? What overtime pay? 3. Managers, not engineers, rule the world. 2. If you like junk food, caffeine and all-nighters, go into software. 1. Dilbert is not a comic strip, it's a documentary.===
Joke for the Week from Embedded Muse 129 ----------------- Late at Night Before Beta Test Whose lines these are I think I know. He's on another project though; He should not mind my pausing here to clarify the logic flow. ... though Management does NOT appear to sanction major changes here. "Fix it not 'fore it shall break" and Beta Test is looming near. Still, best case good ideas enmeshed with side effects will fail the test of year two thousand (coming soon). Change just two lines, and then I'll rest. Half vast possibilities run deep but I have promises to keep And lines to code before I sleep, And lines to code before I sleep. by Robot Frost (with apologies to Robert)
===
I have always wished that my computer would be as
easy to use as my telephone. My wish has come
true. I no longer know how to use my telephone.
- Bjarne Stroustrup
Rajit Manohar's collection of quotes.
Great Quotes from Great Skeptics