Past Book Review (July 4, 2006): "Software Estimation"
Past book review (i.e. posted prior to starting this blog) for Software Estimation: Demystifying the Black Art (Best Practices), by Steve McConnell, Microsoft Press, 2006, reposted here:
McConnell immediately differentiates between software estimation as a science and software estimation as an art within the first pages of the introduction to this work – he explains that while software estimation research is currently focused on improving estimation techniques so that project results are achieved within +/- 5% of esimated results, the techniques of which are best included in commerical software estimation tools that are used to pursue the science of estimation for very large projects, the typical software organization struggles to avoid estimates that are incorrect by 100% or more, and Software Estimation discusses the estimation techniques comprising, although not limited to, the art of estimation that will reduce estimation error to about 25% or less, which is what the vast majority of software projects need.
This book is absolutely the best software estimation text I have read to date. As Joel Spolsky mentions on the back cover of the book, the vast majority of software project managers still think that estimates are based on multiples of a gut feel. This philosophy completely ignores the vast body of research and hands-on experience of the last few decades. McConnell explains with sufficient depth all of the ways to create "ball park" estimates, and if there is one chapter of this book that you read, Chapter 4 "Where Does Estimation Error Come From?" is the one that I recommend – the explanation of the Cone of Uncertainty is so well explained that anyone can understand it.
Although I have never read Code Complete by the same author, I did purchase Rapid Development several years ago – and I must say that McConnell (or at least his editors) has vastly improved his writing skills. This book is less than half the size of Rapid Development, and while I fell asleep while reading that book I was able to conduct a cursory reading of over half of Software Estimation in one evening and immediately apply some of its concepts on a work project the following day. A great modern follow-up to The Mythical Man-Month by Brooks and an excellent primer to reading SEI's Estimating Software-Intensive Systems by Stutzke on the science of estimation.