January 1998
One of the great unsolved problems in software development is the task of estmating time required for a software project. Lot's of different reasons have been given for this, ranging from programmer ego, to software development complexity. Rather than focusing on causes, or theoretical approaches, I herein offer a practical guide to improving time estimates for the worst-case scenario, the dreaded Five Minute Task.
(For your convenience, the first two answers have been filled in.)
How long will the five-minute task/project take? 5 minutes
For each item below, please provide your best estimate for the time required for completion. DO NOT enter zero for any field!
basic changes/development: | 5 minutes |
deal with the compile-time errors you failed to anticipate: | |
deal with an obscure compiler error you've never seen before: | |
figure out why it dumps core before executing first line of code: | |
figure out why it still dumps core, even though you fixed the problem: | |
total time of other staff in helping you with previous item: | |
completely rewrite it to work around obscure system or compiler bug that could not be solved even with other peoples help: | |
deal with additional compile-time errors introduced by rewrite: | |
figure out why it dumps core again: | |
it seems to work; now fully test all new/changed functionality by hand: | |
correct problems found: | |
code for obscure error conditions or user input exceptions that you didn't think of until just now: | |
add some features that would be easy and relevant that you didn't think of until just now: | |
compile again: | |
test again: | |
write/update program documentation: | |
write/update user documentation: | |
rewrite documentation that you lost from the power failure: | |
install software: | |
test the installed version: | |
figure out why installed version doesn't work or works differently then before: | |
fix install problem: | |
install documentation: | |
update source control area: | |
deal with installed software changes crashing all systems at random intervals: | |
total time of other staff in helping you with previous item: | |
fix software: | |
compile: | |
test: | |
install: | |
deal with innaccurate bug reports from 2 percent* of your userbase: (*please round up to nearest whole human being) | |
deal with accurate bug reports from 1/2 percent* of your userbase: (*please round up to nearest whole human being) | |
fix user's legitimate complaints: | |
compile: | |
test: | |
install: | |
document the complete redesign that you now realize the system needs, but that you don't have time to do: |
Total of all above answers:
How long will the five-minute task/project ACTUALLY take?
For your interest, I have prepared a sample worksheet filled out with plausible answers.
My Home | Professional Home | TomSaraZac Home | Work Email |