Software Development Pearls - Book Review
I like everything Karl Wiegers writes. He writes it well, and he has impressive content. This book is no exception. I suppose that means either this is a glowing review, or it's so biased you needn't read any further!
The book is, as the title says, a collection of programming pearls, 60 in all, presented as "lessons." It is organized in chapters regarding requirements, design, project management, culture and teamwork, quality, process improvement, and the final chapter, What to do next? Each chapter is preceded by a "first steps" section and concluded with a "next steps" one.
I like to judge a book on, among other things, the number of "pithy quotes" (alias pearls of wisdom) the author chooses in the book. Here are several of them from this one:
- In the section titled "Requirements are Foundational," the author quotes a seminar attendee as asking "How do companies that are really good at requirements handle them?" and then comes up with the wonderfully apt answer "I don't know; they don't call me" (presumably because they don't need his consulting help).
- Lesson 12, in the section "Elicitation techniques," is "Requirements elicitation must bring the customer's voice close to the developer's ear."
- In the section "Progressive Refinement of Detail," the author notes "I could never discover all the requirements up front, even for a small application...But that's OK."
- Under lesson 9, the author says "If someone finds problems with my requirements, it doesn't matter how good I think they are."
- At the beginning of the chapter on Design, he says "The boundary between requirements and design is a fuzzy grey area, not a crisp black line."
- In lesson 21, he says "An ounce of design is worth a pound of recoding."
- And lesson 24 is "Don't give anyone an estimate off the top of your head."
- In the section "Where did you get that number?" he notes "Hope is not a strategy."
- After lesson 33, he concludes "The customer is not always right, but the customer always has a point."
- Appropriate to contemporary issues, lesson 38 is "People talk a lot about their rights, but the flip side of every right is a responsibility."
- And lesson 49 is "Software people love tools, but a fool with a tool is an amplified fool."
- And finally, this light bulb joke:
"Q: How many process improvement leaders does it take to change a light bulb?
A: Only one, but the light bulb must be willing to change."