I was a fortunate young developer. In my first three months at work, I ran into the 90% done schedule game. I did it to myself.
I estimated a particular task was going to take 6 weeks. Of course, being an arrogant and naive developer, it never occurred to me to break the task down into inch-pebbles. (That would have told me whether I even knew what to do for the task.)
At the end of the first week, I was 20% done. At the end of the second week, I was 40% done. At the end of the third week I was 60% done. At the end of the fourth week, I was 80% done. Right on time, at the end of the fifth week, I was 90% done. At the end of the sixth week, I was 92% done. Seventh week, 93% done. Time and I both marched onward. At the end of the 10th week, I was 97% done. But this time, I actually believed I was within a week of being done — I only had three one-day tasks left to complete. It took me two more weeks. A total of 12 weeks for a 6 week task.
During the time I was 92%, 93%, 94% done, I wrote status reports to my manager, explaining I'd run into unanticipated problems and that I hadn't estimated all the things I needed to do. He was lovely about it, and kept saying, “Ok, let me know your updated estimate.”
At the end of this task, when I was finally done, he was all set to move on. I told him I would be estimating differently from now on, with much more detail, and several deliverables each week. If I couldn't give him a date to be done, was that ok with him. We talked and I agreed to supply a date with a risk factor with each estimate.
I wish I could tell you I became a perfect estimator then. I didn't. I'm still learning to estimate. But I now know that when I think I'm 90% done, I'm probably only 50% done.
I'm not the only one. The 90% done schedule game can occur under any conditions: reasonable or unreasonable schedule, low or high risk technology. 90% done is about our ability to predict the future, to perform accurate estimation, and to understand — in advance — if we will be interrupted. Not a trivial problem.
The 90% done schedule game is the reason I like feedback during project work, in the form of inch pebble estimation, one-on-one meetings with managers, visible project status, and project-wide rolling wave planning.