
Often one of the most overlooked and poorly understood disciplines in the software development arena, estimation techniques can spell the difference between a project that goes smoothly or one that, in the best case, will require constant resetting of expectations and frequent change orders. Even in the best cases, poor estimation burns productivity cycles in the engagement management overhead required to keep the client happy and deliver a product that will fulfill the functional requirements of the project. In post mortem unexpected complexity, uncontrolled change, faulty team dynamics, and undefined acceptance criteria, among other things, are often cited as reasons that projects fail, when the root cause is a failure to appropriately plan for the unexpected and build this into the project estimate.
Building an estimate that can accurately address all of the inputs that go into a software development project can be a complicated and daunting task with many different approaches and methodologies in the body of knowledge. Steve McConnell deftly presents a wide and encompassing treatment of the subject matter while neither simplifying to the point of inutility nor presenting complex scenarios that would only be useful to huge teams working on Department of Defense-sized projects. Instead of giving the reader a formula and defining it over scores of pages, this book addresses practical applications of project estimation by demonstrating the connection between the estimate and the project lifecycle. This more human approach uses hard project metrics to feed back into the estimate allowing the software architect or project manager to hone estimation techniques to be appropriate for a specific project team or client.
I have found huge value using the techniques presented here conversely to get control of project milestones that are in crisis to identify the points of influence that can be manipulated to produce the greatest effect in bringing the failing project back into line and producing an updated estimate for a change order. The careful attention to producing measurable outcomes as tied to the project success makes dealing with political situations and executive expectations much easier as this provides a stable foundation for root cause analysis and justifies the push back that is often felt in the change management process.
Steve McConnell's book should be considered essential equipment on any Software Architect or Project Manager's utility belt.