||New Reviews| |Software Methodologies| |Popular Science| |AI/Machine Learning| |Programming| |Java| |Linux/Open Source| |XML| |Software Tools| |Other| |Web| |Tutorials| |All By Date| |All By Title| |Resources| |About||
Keywords: Software estimation, project planning
Title: Software Estimation
Author: Steve McConnell
Publisher: Microsoft Press
Verdict: Well-written and interesting.
Steve McConnell, he of Code Complete fame, is not joking when he describes software estimation as a 'black art', though even then he's being generous. An art, even a black one, implies both skill and accomplishment. For most developers software estimation is one part blind panic and the other self-defence. Why should this be? And what can be done to alter the situation? These are the types of question that McConnell sets out to answer.
In setting out to define what software estimation is, McConnell begins to tease out some of those answers, in particular the difference between an estimate and a target. You would think that these terms are clear and well differentiated, but in practice there's very often a confusion between the two. When a manager asks for an estimate often he or she is really looking to set a target. And when a developer responds he or she knows that the manager is really after a target and so makes a political response rather than offering an honest estimate.
Defining terms is all well and good - it certainly helps to clarify things - but the aim of the book is more than to offer a useful set of semantics. To this end McConnell looks at both the science and the art of estimation - and he suggests that it's a mixture of calculation and judgement that is needed to create estimates that are both useful and accurate to developers and managers alike.
As with Code Complete, (which we rate highly as one of the best books on the craft), McConnell has done a lot of homework and has scoured the academic literature. His job here is to popularise work going on in research labs and universities on the best estimation techniques available. Many of these techniques are really only applicable to larger software development organisations and projects. They depend, to a great extent, on having access to historical data and systems for accurately recording existing project details. For the science end of the estimation spectrum counting, computing and making judgements are key.
However, it's not just the big development shops who stand to gain from this book. If the range of 'scientific' software estimation techniques are expensive, there are other techniques that are less science and more art. These range from sound advice - never give off the cuff estimates, try to use ranges in your estimates rather than a single point - to discussion of the 'cone of uncertainty' which shows that there is greater variability earlier in a project and therefore estimates are less likely to be accurate.
While not as immediate as Code Complete, this is still an interesting and well written book. McConnell has the knack of making complex research accessible to practitioners, and most software developers will key in to the issues that he so accurately describes.
Will this book make your estimates more accurate? Well, it will certainly give you a lot more ammunition, and some new techniques to try out. At the very least there's plenty of food for thought, and that should be no bad thing.