Download - Estimation myths debunked
what is an estimation?
estimationnoun es·ti·ma·tion \ˌes-tə-ˈmā-shən\
: a judgment or opinion about something
: the act of judging the size, amount, cost, etc., of something : the act of estimating something
: a guess about the size, amount, cost, etc., of something
why estimate?there is one truth:
all clients love estimations
they mostly think:
you have knowledge, you’ve done
that before, that’s piece of cake, isn’
t it?
the golden ruleFrom The Pragmatic Programmer: From Journeyman to Master:
What to Say When Asked for an Estimate
You say "I'll get back to you."
You almost always get better results if you slow the process down and spend some time going through the steps we describe in this section. Estimates given at the coffee machine will (like the coffee) come back to haunt you.
case studyClient thought of a new feature and asked me to estimate on the call.
What do I do?
never estimate unexpected things on a call!
ask for some time for research
case studyClient thinks he knows better and tells me I can do it faster.
What do I do?explain why you think it’s not correct
work with your PM
if s/he’s right you finish faster
if s/he’s wrong there can be a delay
case studyLead dev from the client’s team estimated the ticket for me and it’s wrong.
What do I do?communicate it’s possible you won’t make it
they insisted and you ran out of time - explain why
work with your PM so you can estimate instead
how to estimate features?
make sure you know what needs to be done
remember that you need to write tests
remember about code review
there WILL be problems
how to estimate features?
feature = planning + actual work + tests + code review
+ bugs-that-never-happen-but-sometimes-do
DOsok, so here we are…
1) Gather requirements (ping pm/ client if needed) and do your research (mockups, APIs, edge cases...)
2) Ask when in doubt and explain when something’s amiss
3) There is always room to screw up and for things to go wrong - add padding
4) Track elapsed time and learn from past experiences
5) Ask around - check with others / internet / seniors / grandma / PM /
6) Use more than one method to arrive at an estimate, and look for a midpoint among all of them.
DON’Ts1) Never estimate during the call !!
2) Don’t let anyone estimate for you
3) Don’t estimate without checking that you have everything
why we fail sometimes...1. The presence of hidden or unknown variables that are difficult or impossible to anticipate,
and sometimes even more difficult to resolve.
2. Our often-idealistic views of our own capabilities. We frequently believe that we can
achieve much more than is possible in the available time.
3. A strong human desire to please other people by telling them what they want to hear.
(After all, who wants to be the bearer of bad news?)
how to estimate bugs?
Don’t.
No, seriously - DON’T.
But if you have to:
some bugs can’t be estimated - they need a no-idea label
if your guess was wrong - explain why you need more time
how to estimate projects?
that might surprise you, but…
you usually don’t work 8h a day :)
how come?
9am 11am 1pm 3pm 5pm
help reqlunchemail checking call email
checking
Cases
The API that has just been updated.
The integration no one knows about.
The project you don’t know about.
Cases
The client changes requirements.
The client is too cool.
The client asks you how long sth would take on a call.