This site will look much better in a browser that supports web standards, but is accessible to any browser or Internet device.
Software Estimation
Steve McConnell
Microsoft Press, 2006
Software Estimation is the latest book on the craft of developing software from Steve McConnell. If you have read any of his earlier books (Code Complete, Rapid Development, or Software Project Survival Guide), you might suspect that the book will contain lots of useful information that is well researched and well presented. You won't be disappointed.
Early in chapter 2, McConnell gives an exercise to find out how good an estimator you are. I did not expect to do very well on this, but was surprised how badly I did. Then, I saw the results from other people who took the test. If you think you don't need to read this book, the results of this test will probably convince you otherwise.
McConnell expands on the concept of the Cone of Uncertainty that he described in earlier books. He also distinguishes between the science and art of estimation. Some of the book's best information is the cataloging of various methods of estimating, including information about their effectiveness. I am amused that almost every approach I have seen was cataloged as a bad method.
The methods specified by McConnell are quite explicit and easy to follow. Despite reading information on software estimation in many books over the years, this is the first description that has actually improved my estimating almost immediately. I find myself applying his methods consistently on small tasks, with an eye towards improving my accuracy for larger estimating tasks.
The techniques are explained very well, with both strengths and limitations clearly defined. He also gives much more convincing explanations of why certain techniques work better with larger projects and longer time frames, while others work with small tasks.
One area that he devotes a fair amount of time to is the problem of getting estimates accepted. McConnell clearly defines three concepts that are often confused when talking about estimates: estimate, target, and commitment. The book makes a strong argument that much of the problem we have concerning estimates really boils down to a misunderstanding of which of these is asked for or which is being presented. The first chapter is devoted to explaining this problem and defining terms. Chapters 22 and 23 describe techniques for getting estimates accepted and for answering the real questions, which usually have more to do with commitments and targets.
If you are working on software, you need to read this book. I suspect it would also be somewhat useful to people in some related fields. This is also one of those rare software books that I would recommend to almost any programmer. A really junior programmer could benefit from learning these skills early. Intermediate and senior programmers will also find suggestions for improving their skills.
Posted by GWade at August 11, 2006 09:32 PM. Email comments