How to make accurate estimates

During my days as a consultant, things started-out easy.  I got paid “time and materials”.  Which means that it was somebody else’s responsibility to keep me productive.  After a few years, the consulting world changed a little and the customers started asking for “fixed bid” projects.  They would tell us that they wanted a polly-wally-doodle and they wanted to know “how much”.  Just like that.

At first, our sales reps tried the ole over-the-shoulder-shot-in-the-dark-behind-you-with-a-mirror, while blind-folded, technique for estimating.  After shaking the customer’s hand, the sale rep would hand everything (nothing) over to the developers and require us to fit the (vaguely described) project into that (arbitrary, yet rigid) cost window.  As you can imagine, it didn’t go well. 

After breaking-even (as-in, no profit) a few times, the sales people started asking how we could work together to get more-accurate time estimates.   Thus began our journey. 

A-journey-of-a-thousand-miles

Flash-back to when I was in college: In my “Software Engineering” course (a weeder class at U of M Dearborn), we were required to build a team project and apply all of the principals/techniques that we were learning.  One of those things was estimation techniques.  I recall applying CoCoMo and Function Point analysis to our big project and being shocked at the size of the time estimate (120 hrs).

Throughout the course, we developed our project and logged the hours that we spent on it.  In the end, my hours came out within 8% of one of those estimates.  The winner was Function Point analysis, with a total of 130 hours.  I couldn’t believe it.  I had to check my journals to make sure I hadn’t mis-represented anything.  No.  FP was a clear winner.

Fast-forward to 2000.  I present this anecdote to my boss (a sales rep).  We decide to retry my experiment with a project that just completed.  Once again, FP came out within 8% and CoCoMo was over by 20%.  The original guesstimate was under by 20%.  Ouch.

Now, of course, I make it sound so easy, right?  As long as you know exactly what you are building, you can plop it into this formula and get a reasonably accurate result.  Ha!  However, if for some reason, you don’t know exactly what you are about to build, then forget your stupid formulas.

So, the question behind the question is this:  How do you accurately define your scope, so you can get accurate numbers to plug-into the FP formula?  Oh yes.  That sir, is the right question!


(For further reading on this topic, you might enjoy my discussions about gathering requirements: Part 1, and Part 2)

Advertisements

About Tim Golisch

I'm a geek. I do geeky things.
This entry was posted in Methodology and tagged , , , , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s