Three Hundred and Eight Days
Have you heard this one before?
A programmer walks into his manager's office. "I've started the update. All the data is being refreshed now."
The manager asks, "How long will it take to finish?"
"A long time," the programmer replies.
"Well, how long?" asks the manager. He's wondering -- will we have this data in time to send the final report this afternoon, or should he push it off until tomorrow?
"I have no clue," says the programmer.
The manager pauses for a moment, thinking to himself that there ought to be a clue. "How many words have been refreshed already? And how long has it taken to do that?"
"Four hundred words are already done, and it's been about an hour and a half."
"And how many words are we refreshing?"
"Two and a half million. Well, no. A lot of those don't need to be refreshed. Just over two million, probably."
The manager scribbles a few calculations. "So, it will take just under a year to finish."
"Yeah," replies the programmer. "Wait, no! Er... Yeah."
The manager suggests, "Maybe we can speed that up, somehow."
After a moment's thought, the programmer says, "Well, maybe by a factor of two thousand or so... if I use the 'update multiple words at a time' function."
The manager suggests again, "Why don't you go look into that."
(Audience laughs.)
It's weird, managing technical projects. Makes me wonder how often I completely miss the real point of the project when I'm actually doing the technical stuff myself. It's hard for a programmer to really see both sides -- the technical complexities and the business needs. That's what a good manager is supposed to do, I guess. Understand both, so the right trade-offs and decisions get made.