Note: This is a post from 2007 that I just updated a little bit because I think there’s still some value in it.
A lot of people have written to say that it’s unfair that I think developers should never say “I’m 75% done,” or “I’m 90% done.”
So, to explain myself, here’s why I think you should never use a phrase like that:
|I hear you’re 75% done with the XYZ effort, is that right?||Yep, absolutely.|
|Well, first things first. When you say “done,” what do you mean exactly?||Um, what do you mean?|
|Let me give you a few standard options: You’re done with initial development and you or a partner haven’t tested it. Or, you’re done with initial development and a partner has tested it. Or, you’re sending your code to QA. Or you’re also including bug-testing time in your estimate. Or you mean something else.||Well, there’s no way to estimate bug-testing time, and nobody else on the team has tested the code, so I guess I’ll be ready to have a partner test it before we send it to QA.|
|Okay, now back to your “75% complete status.” Your original estimate was 10 days, and you haven’t revised that, so you’ll be done in 2.5 days, is that right?||Um, well, it’s probably a little closer to 3.5 days.|
|So, 3.5 days until someone nearby tests it?||Yes.|
|All right. Does that include the changes to component #1?||Um, well, huh, no, I forgot about that. That’s probably an extra day.|
|How about the meeting tomorrow morning to discuss the design changes to the Foo Bar page?||Oh man, I forgot about that meeting. Uh, no.|
|Oh, and you start vacation on Wednesday, right?||Yeah, we’re going to the lake for a few days.|
|Okay (sounding like the manager on Office Space) ... so your initial estimate was 75% done, which meant 2.5 days, but now, barring any further changes, it’s really looking like you won’t be submitting your code for pre-QA testing until the end of next week, at the earliest. Why don’t we get together at the end of next week and see where you are then?||Okay (thinking that his manager sounds like the manager from Office Space), sounds good.|
FWIW, when I’ve been a project lead, this is a typical conversation I’ve had with developers, not an exaggeration or atypical conversation.
I understand that developers are typically introverts, but they/we also need to see the big picture. My biggest problem here is that someone wants me to go to the Project Sponsor and say “It looks like we're 75% done with the XYZ Widget,” when in fact we have no clue when it will be done. That’s just irresponsible. If I say stuff like that too many times the Sponsor is going to quit believing anything I say, and I won’t stand for that.
So that’s where my angst with the “75% done” phrase comes with. First of all, you’re 75% done with what? Next, does this factor in all the changes, meetings, and other time? Finally, let’s put a date on your deliverable.
I know estimating is hard, I used to be as bad at it as anyone, but when people that say they’re “75% done,” that really makes me cringe.