What do you say when your vice president asks you over lunch, “About how long do you think it will take to implement this project?” Besides mumbling, ”I’ll get back to you on that,” how do you estimate how long a software project will take? Do you go with a mathematical formula to spit out time estimates, or do you rely on intuition?
Just the numbers, ma’am
If you’re a believer in using algorithms and mathematical models to forecast software development time, check out Carnegie Mellon’s Software Engineering Institute’s Capability Maturity Model for Software (CMM or SW-CMM).
Make that a double
“We don’t calculate by the number of lines of code or any of the other formulas from Carnegie Mellon because our timeframes are so short and because, after going through a number of projects, our ability to estimate the time required for each piece is fairly good as long as we use our doubling rule,” said Matt Tucker, CTO and cofounder of Jive Software.
Jive’s development team’s “doubling rule” means they add up the time requirements and double the estimates. “We use a whiteboard to break up the work for a project into distinct pieces and then hash out our best estimates for how long development of each piece will take,” said Tucker. “At the end, we add up the pieces to get an estimate for the total development time and then instantly double that estimate.”
Jeff Davis, a regular Builder.com contributor and contract database developer, doesn’t go with the “gut instinct” method, either. “Every time I've relied on my gut feeling, I've gotten burned. It isn't like playing Name That Tune,” said Davis. “You can't say, ‘I can do that job in 100 hours,’ just because you think that's all it will take, based on your conversations with the client or business driver.”
Davis has his own version of the doubling rule. He takes the number of pages in the design specification document and doubles it to get his number of billable hours. “Two hours per page may be a little higher or lower than the time it actually takes to do the work, but it's been a good rule of thumb for me,” said Davis. But, he added, “that ratio will vary depending on the way the design spec is written.”
What do you think?
Do you rely on your gut feeling or tweaked mathematical formula for your estimates? Tell us how you estimate the time needed for software development or post a comment below.