I love reading books by Gerald Weinberg, I try to read at least one book a year from him (he has many). I came across a very short (129 pages) book on problem solving, which was a lesser known book of him,
so for my next book I decided to do the same. This time I picked up
ERRORS: bugs, boo-boos, blunders, a book about everything error related in programming. It was a good choice! The book is well written, funny at times, full of examples and made me think about errors differently. In the last chapter, he describes the experience of Alice, a person who has to use software to do their job. At the end of the chapter, you have eight laws of error defense from a user perspective, which I thought was very interesting.
The eight Laws of Error Defense
- IF YOU DESTROY THE SYSTEM FROM THE KEYBOARD IT’S NEVER YOUR FAULT.
- THE THIRD TIME YOU DESTROY THE SYSTEM FROM THE KEYBOARD IN THE SAME WAY, IT IS YOUR FAULT.
- IT WON’T GO AWAY BY ITSELF, SO GET AROUND IT ANY WHICH WAY YOU CAN.
- IF THE PROGRAMMERS DO IT WRONG ONCE, THEY ARE LIKELY TO DO IT WRONG AGAIN.
- IT NEVER HURTS TO KNOW HOW THINGS LOOK BEHIND THE IRON CURTAIN.
- WHEN THE FILES GROW SUFFICIENTLY BIG THE APPLICATION WILL FAIL.
- ONE THING WORSE THAN AN ERROR IS AN ERROR FARM.
- IF THEY WILL NOT LET YOU TEST IT AT HOME, LEAVE IT IN THE STORE.
Part 1. How Do We Think About Errors?
You cannot say that someone is morally inferior because they don’t do something they cannot do. (Location 273)
I doubt it, because to have value, software must be more than perfect. It must be useful to someone. (Location 295)
The workers in a software organization are one sample. The managers are a different sample. The managers are not “ just like ” the rest of the people — else why were they selected to be managers, and why are they being paid more money? (Location 526)
Part 2. What Do Errors Cost?
the first step in managing failures is to manage customer expectations — but that’s always the first step in managing quality. (Location 769)
Nobody notices that statement 3 is a statement about the difficulty of making the change, not the consequences of making it, or of making it wrong. (Location 845)
Higher managers are left untouched. After all, what could they have done? (Location 855)
Nobody wants to believe the Second Law of Thermodynamics applies to them. (Location 927)
If no relationship can be traced, then the secondary requirement is not a real requirement at all. (Location 951)
Discontent over standards arises when people who must conform to the standards cannot make the cause - effect connection between the standard and the value of the standard. (Location 978)
Your errors will be worthless if you believe they are worthless, so you don’t investigate why they happened. (Location 1037)
Part 3. Where Do Errors Come From?
If they were truly identical, they would find the identical errors, so the second wouldn’t add any value to the first. (Location 1614)
Part 4. How Do We Get Rid of Errors?
Developers quickly throw code “ over the wall ” to testers, so that errors are seen as somehow arising during test, rather than from coding. (Location 1750)
Variation provides the new ideas ; selection weeds out the ones lacking promise ; and retention propagates the ones that survive the selection. (Location 2085)
Less effective organizations believe that such error sequences are inevitable. (Location 2128)
if we can’t provide what our users want, then convince those users that what we do provide is what they really wanted in the first place. (Location 2188)
Much of the dissatisfaction with computers arises from unkept promises. Sometimes the programmers simply can’t do what the specification has promised. (Location 2199)
Part 5. How Do We Prevent Errors?<h3 class='noteHeading'>Highlight (yellow) - 5.3 Go Slow, Go Fast >
the more different people use code or data, the more constraints there will be when it comes time to change. (Location 2364)
They can look forward to more maintenance, more difficult maintenance, done under greater constraints, with greater shortages of professional staff — and, of course, more errors. (Location 2367)
Because they’re in a dopey daze, however, many managers won’t be looking forward at all. (Location 2368)
If you wish to remove errors, then, start by testing your thinking. (Location 2417)
Contrary to simple - minded intuition, it turns out that “ tiny ” changes are more likely than larger ones to be flawed. (Location 2586)
In development, you simply fix errors and go on your merry way. (Location 2594)
If you’re afraid to do what you know is right, then you’re not a real programmer, tester, or manager. (Location 2673)
Version of the book
Weinberg, Gerald M. ERRORS: bugs, boo-boos, blunders. leanpub.com. Kindle Edition.