Some time ago, I found a post by Johanna Rothman about “inch-pebbles” and how they can help make your task time estimate a lot closer to what you’re really going to be able to do.
I used this technique (without having a name for it) on my recent security enhancement task, maybe with an embellishment: I had come up with the subtasks that needed to be done, and had preliminarily estimated my task at 300 hours, but I didn’t feel comfortable about the estimate because some of the subtasks I had identified were comparatively large and nebulous. I wanted to try to raise my confidence in my estimate’s accuracy, before committing to it, so in the end* I took a paper calendar and sketched out what I really thought I could accomplish from day to day, week to week. My final estimate was 450 hours, and it ended up being almost right on… except for some subsequent bugfixes that went on a while longer… (this stuff is hard to measure, isn’t it?) But basically it was ready on time.
The Rest of the Story
It wouldn’t be right to act as if by using this technique I singlehandedly assured my success, though. Even though the planning helped, a missed requirement showed up late in the construction: “Oh no, this has to work in a two tier environment???” None of the design or schedule planning had contemplated a two tier setup, which would require special programming and special configuration and testing! (The quirks of two-tier support on our target platform are such that it is often transparent to the programmer, but if you let your guard down, you’re at risk of running into one of those situations where special programming has to be done. This was one of those latter situations.)
My supervisor was very helpful at this point (Thanks, Brice!), arranging a delivery of the basic functionality under the original deadline, with support for the two tier configuration to be delivered in a subsequent installment — kind of iterative! Without this grace, I would have missed the deadline for sure.
* At first I worked the schedule out on my wall calendar, which was fine until I needed to look for ways to shave a couple of weeks off the estimate and my calendar was already covered with writing!