Debugging the Development Process
by Steve Maguire (Microsoft
Press, 1994, ISBN 1-55615-650-2)
reviewed by Brian Marick on October 18, 1996
Buy this book from fatbrain.com technical bookstore
From the introduction:
"The typical lead is usually embarking on the development of version 4.21 of an application or working on some other project that has a fairly straightforward future everybody is in basic agreement about. The typical software lead doesn't need to be a radically inspiring leader capable of getting team members to do outlandish things. The typical software lead simply needs to be effective, which is quite learnable and doesn't require anything like a personality transformation. It just requires learning the habits and strategies that have been found to work in bringing quality products to market on schedule - and without working 80-hour weeks."
This book is about adopting small, sensible strategies rather than grand schemes. As such, it should appeal to any fan of gradual process improvement. Now, many among us shy away from anything containing the word "process". Such works are often ponderous, impractical, overbearing, and evangelical. Those people will be reassured by Maguire's very first motto, on page 2:
Any work that does not result in an improved product is potentially wasted or misguided effort.
Maguire is writing for the development lead, who he believes is the servant of the product and the developers. His book describes habits of thought and action that protect the project from disruption. Two examples:
I like all of Maguire's suggestions, but I fear they may have this problem:
This is exactly the way good resolutions fade away: one compromise at a time. I've seen this book in many offices, so I suspect many development leads have read it, resolved to follow these strategies, but found themselves a year later in the same morass as before. To avoid this problem, you can apply the book recursively:
But as important as building in countervailing pressures is avoiding the single most common reason for getting sloppy: schedule pressure. Maguire recommends aggressive but attainable schedules, on the grounds that they keep the team focused. I agree, but that only increases the need for good estimation, something hardly common in our field. The greatest flaw in this book is that it does not discuss estimation, only scheduling once you've estimated.
Click on the task name to see other works that address the same task.
This book is for the developer lead. Writing Solid Code, also by Steve Maguire, is directed to the individual developer. Unsurprisingly, the two books go well together. Read them both.
Gerald Weinberg's Software Quality Management, Volume 1, is rooted in the notion of feedback loops. Volume 3 describes the addictive feedback loop that often prevents small, sensible strategies from taking hold.
1. Laying the Groundwork
2. The Systematic Approach
3. Of Strategic Importance
4. Unbridled Enthusiasm
5. Scheduling Madness
6. Constant, Unceasing Improvement
7. It's All About Attitude
8. That Sinking Feeling
Epilogue: A Word on Leading