By Peter Bell

Estimated vs. Actual - Do you KNOW How Well You're Doing?

One of the many reasons I want to instigate a better project tracking system at SystemsForge is that we don't currently consistently track estimated vs. actuals for tasks, so we're not getting the feedback we need to improve our estimates by seeing how close they are.

We've played with a number of tools, from Excel spreadsheets to Unfuddle to Harvest. but we've never kept up with a given system long enough to get meaningful long term data. Do you track estimated vs. actuals? Do you do retrospectives looking at what caused variances? How do you track actuals in a way that isn't intrusive and/or is actually valuable to the team? We're trying to find that balance between data for measurement and keeping the amount of paperwork and busy work to the minimum. What do you do? How's it working? Would you recommend it? Why?!

Comments
it's impossible. anyone that states any different is either delusional or lying.
# Posted By jacob | 10/29/08 3:46 AM
In the classic Andy Hunt and Dave Thomas book "the pragmatic programmer", there's some interesting text about this very topic. Unfortunately I don't have it on me right now ;)

I have to admit that while reading it, I was gung ho about attempting to implement such a thing at our company, but never got around to it. While it's very problematic, I will take on Jacobs challenge and risk lying or being delusional ;)

Estimating effort is something that programmers can get better at doing. I'll be the first to admit that I suck at it, and hate doing it. However, I'm better at it now than I was 5 years ago. Just like stepping on a scale after christmas, comparing estimates and actuals is a reality check that will bring home certain truths. Doing this on a regular basis will probably extract tangible patterns which individuals (and management alike) can learn from. No silver bullets, but we all like improvement.
# Posted By sakri | 10/29/08 5:20 AM
We do track actual versus estimated. It's not perfect but gives you an idea of where the project has been faster or slower than expected. We use an bespoke timesheet system which has the projects broken down as tasks with quoted hours. Time is logged to the tasks, we can instantly see when a task is overrunning. We also have "types" for each timesheet entry of: quoted, addition, meeting etc so that we can then see why a task overrun. If it is addition or an unplanned meeting we can then choose to charge for it.
As I said it's not perfect but is better than not traking at all!
# Posted By John Whish | 10/29/08 5:48 AM
fogbugz is without peer for this. It doesn't provide an easy tool to slap developers around with, makes the person responsible for the work also responsible for the time estimate and the time logged and provides decent projection tools of where the project is going. As the developer completes tasks, their individual estimating error is taken into account in the project estimation process. They also have the power to correct/eliminate statistical anomalies (ie, I left my time tracking on and have 2 weeks of time recorded on a 15 minute task).

biggest hole? missed tasks and task splitting.
# Posted By Mike Rankin | 10/29/08 1:08 PM
Tracking estimating vs. actual is pretty much a requirement if you want to make reasonable estimates, otherwise you're just guessing.

If you store a reasonable amount of info about your projects and tasks, then once you get data on some project accumulated, you can start analyzing your project design processes to figure out where you're off and why that might be happening ... you can also start giving more accurate estimates if you've done similar work in the past.

The use of metrics and models is pretty big in software engineering - I took a class on it about three quarters ago. If you develop an estimating and tracking process and tailor it to your environment, it can be powerful. However, as John points out, it won't help you see the future, it'll just give you an idea of what you might expect.

I'm still in the process of setting up the dev environment at my new job. The department is small - me - but I still need to design a good development process. I'll take a look at fogbugz to see if that might be helpful to me.
# Posted By Dave DuPlantis | 10/29/08 3:10 PM
+1 for Fogbugz
# Posted By Aaron Longnion | 10/31/08 4:27 AM
Just a quick +1 on fogbugz...it can really open your eyes to team and individual performance, especially each person's ability to estimate his/her own work. As with any analysis tool, until you have enough data for it to analyze, it will be less helpful (so don't expect very accurate estimates for the first project or two). But once you have been using it for awhile, it gets pretty darn scary just how accurate it is...as long as everyone is HONEST about how much time they spent on a task (and you need to create an environment that supports that level of honesty -- in both the estimation and the logging processes).

Good luck!
# Posted By Troy Allen | 10/31/08 7:41 AM
@Jacob, I'll admit I'm in the ranks of the delusional fibbers - along with a number of other commentors. Want to expand on why it's not possible?

@Sakri, I also find the more I do this, the better it makes my estimated.

@John, Yep - important to realize your figures won't be perfectly accurate, but ballpark numbers can still tease out useful heuristics for why some estimates are so far off, and soe root cause analysis can often come up with improvements in your processes from those data points.

@Mike, Thanks for the fogbuz recommendation - heard good things about it elsewhere, and of course love reading Joel's stuff.

@Dave, Sounds interesting. Let us know what you end up setting up!
# Posted By Peter Bell | 10/31/08 8:46 AM
@Aaron/Troy, Thanks for the +1's!
# Posted By Peter Bell | 10/31/08 8:47 AM
BlogCFC was created by Raymond Camden. This blog is running version 5.005.