estimation myths debunked

33
Estimations brought by Małgorzata Szweda, Blaze Hadzik, Magdalena Sitarek &

Upload: netguru

Post on 17-Jul-2015

316 views

Category:

Technology


1 download

TRANSCRIPT

Estimationsbrought by Małgorzata Szweda, Blaze Hadzik, Magdalena Sitarek &

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?

why estimate?

plan

budget

communication

so...

how to do it well?is that even possible???

spoiler!

estimation is a well-informed guess

you’re guaranteed to do it wrong from time to time

be prepared!

do your research

know what you want to use

ask around

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.

who should estimate?

not the client

not a dev that isn’t you

you

planning poker

group estimation

different experiences

broader idea of time needed

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

how to estimate features?

add some padding!

the Blaze Time Tax = 1.75

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 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

and finally...

always think of the worst case scenario

and finally...

always think of the worst case scenario

… and then add even more time :)

responsibility

What is responsibility?

responsibility

What am I responsible for?

responsibility

Let your client know in case of delays & blockers

responsibility

Don’t be quiet.

responsibility

Be a friend.

responsibility

The missing feedback loop we want to have.

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.

Questions?

ask us now! :)

fill in the evaluation survey

and share your feedback