April 18, 2014
1.2k

Unreasonable Estimates & Improbable Goals

Your job doesn't start when your fingers touch the keyboard. It starts when someone utters the words: "How hard would it be?"

This is a crash course in estimating work, identifying hidden costs, and dealing with constraints. Along the way we will also learn how to defend against tricks from the Dark Side such as estimation bargaining, ego manipulation, and crunch time.

They taught me Big-O notation, I wish they taught me this.

April 18, 2014

Transcript

3. Online project management software: Probabilistic scheduling Collaboration Time tracking By

watching this talk, you're obviously brilliant, so come work with me, heck yes! 3

6. Clarify How hard would it be to add email integration

to our product? Does that mean: Sending mail Receiving mail A Plugin for Outlook “ 6
7. Clarify Can you upload each image in the email? Make

sure you understand why you are implementing the feature. Does a solution already exist? Is there a better approach? “ 7
8. Estimating What are the major pieces of work you need

to do? Break down large tasks Group small, but similar details Compare to similar work you have done 8

10. Seriously An estimate is an informed guess. It's ok to

be wrong. It's ok to be uncertain. 10
11. Quantify Uncertainty Embrace uncertainty, you clearly don't know the future

* Identify uncertain issues Play a spread * If you did, you wouldn't be here right now. 11
12. Deal With Uncertainty You can and should change your estimates.

Do the uncertain things first Re-estimate as you learn Communicate often 12

14. PM: So how long will it take? You: About three

weeks. PM: We need this quick, could you do it in one? You: Well, maybe two weeks. Estimation Bargaining “ 14
15. Estimation Bargaining It's natural for people to haggle, but nobody

wins in estimation bargaining. You can't negotiate time You can negotiate features You can re-estimate as you learn The assumption is that you are either lazy or lying. 15

17. Complexity Costs Some features incur a cost for every future

feature. API Support Access Controls Mobile Support Watch for cross cutting concerns 17
18. Operational Costs Are you introducing new architecture? How will you

test it? How will you monitor it? How will you deploy it? 18

21. Weigh the Costs Everything you do will cost something down

the road. Choose which costs you are willing to pay. 21

23. PM: How long will it take? You: About a week.

PM: Really? I thought you were smarter than that... PM: I'll ask the intern, she seems pretty sharp. You: On second thought, it's probably not that hard. Ego Manipulation “ 23

27. Dealing With It When you are going to miss a

deadline, you have options: Ship late Cut features Add People Work Overtime 27
28. Overtime Overtime can work, but it's not sustainable. You have:

8 hours to work 8 hours to sleep 8 hours to commute, clean up after the dog, make dinner, do dishes, vacuum, read a book, watch tv, go for a run, take a shower, buy me coffee, and spend time with friends and family. 28

30. PM: Lets try to release at the end of the

month. You: I don't think we can make that, but I'll try. …cue spinning clock… PM: We need to release at the end of the month! You: There's no way we'll be ready! PM: Look we've got customers waiting on this. Deadline Hardening “ 30

meet. People are less likely to turn a goal into a deadline if it's risky. Communicate status and risk often. 31
32. Any Questions? Thinking of good questions is hard, I've thought

of some for you: If estimates are just guesses, why even bother? Is there some magic product that solves all these problems? Do you have any more Dark Arts to share? Can I buy you coffee? Don't ask scary questions if you don't want scary answers. 32

34. Defense Against the Dark Arts All the other ways we

get suckered into absurd situations 34
35. The Secret Project How would you like to work on

a special project this weekend? “ 35
36. The Secret Project This is a great way for the

business to get extra features without cutting anything. Will this be meaningful to you? Is this a precedent you want to set? Does this fit with development best practices? It's your time, if you want to work, that's your call. 36
37. Estimate Pride I said a day, and damnit I'll do

it in a day if it takes me all night. “ 37
38. Estimate Pride An estimate is just a guess. It's perfectly

alright to change an estimate when you learn more about the issue. Just remember to tell anyone who is depending on that estimate! 38

three. “ 39
40. Certainizing You might think you are agreeing to the expected

outcome, but you actually just cut your estimate. 40

it one. “ 41
42. “Optimizing” Ingredients: One part Ego Manipulation One part Certanizing One

part Optimism Mix thoroughly, serve hot. 42

“ 43
44. Time Boxing Putting a limit on very uncertain tasks is

OK, but: Be clear about what happens if you stop early If you reach the limit, wrap up and let people know Wrapping up and communicating takes time too. 44
45. You: We really need to do this, it will only

take a week. PM: A week? There are a dozen things I'd rather do in a week. You: Ok, what about 3 days? PM: Sold! The Price Tag 45
46. The Price Tag If someone knows you want to do

work, they might make you bargain for the privilege. Sell them on the value, not the time. 46
47. Call in the Cavalry I think this project could use

some outside help... “ 47
48. Call in the Cavalry Contractors can help on some projects,

but remember: You'll be the one maintaining it later They'll need time to get up to speed There will be coordination costs 48
49. Even More Dark Arts? Let me know @ a d

a m s a n d e r s o n 49