Program Management Software-Technology

Software Estimation: Demystifying the Black Art

Software estimation is a somewhat undefined craft. Most coders simply “go with their gut” in estimating a project, and that gut is often wildly off. Alternative techniques involve intense calculations that take a lot of time, but rarely yield enough accuracy to help, especially for smaller projects. Unlike, say, construction or mechanical tasks, software builds represent a creative process where new territory is tread with each project. There’s a learning curve involved, and it’s hard to determine what that learning curve might be for each individual coder. Steve McConnell, an award-winning author about software development, throws out a series of ideas that might help.

Although the book is twenty years old, the human practices are eerily familiar. It references more agile techniques, which at the book’s writing would have been cutting edge, but it makes a strong case that traditional practices might better estimate each agile sprint’s time than newer techniques (like powers-of-two estimation or Fibonacci estimation) that aren’t bound to any reality-based measure.

My takeaways are that estimation should always involve a confidence interval, and that confidence interval will tighten over time as shown by the “cone of uncertainty.” Programmers should always be heavily consulted when making estimates, but their estimates tend to be overly optimistic. Estimates should never be viewed as commitments by the software business community. Going with one’s gut should first be supplemented by counting tasks and historical analyses of past results. That is, count, then compute, then judge. Finally, hitting the bull’s eye of +/- 10% is a noteworthy accomplishment.

Anyone studying software estimation should also consult more recent books on the topic, but Steve McConnell’s thoroughness should not be avoided. Obviously, some of what he reports here has gone the way of history, but the human practice of software estimation has not evolved that much in twenty years to make his erudite treatment irrelevant. This book should still be consulted on a software development manager’s reading list. I, for one, am glad I consulted it as I educate myself about my personal weaknesses of estimating software times for my team.

Software Estimation: Demystifying the Black Art
By Steve McConnell
Copyright (c) 2006
Microsoft Press
ISBN13 9780735605350
Page Count: 308
Genre: Software
www.amazon.com