Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Unreasonable Estimates & Improbable Goals

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.

Adam Sanderson

April 18, 2014
Tweet

More Decks by Adam Sanderson

Other Decks in Programming

Transcript

  1. Adam Sanderson I have been a full stack developer at

    LiquidPlanner for about 6 years. Github: adamsanderson Twitter: adamsanderson Speaker Deck: adamsanderson Blog: http://monkeyandcrow.com 2
  2. 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
  3. 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
  4. 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
  5. 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
  6. Seriously An estimate is an informed guess. It's ok to

    be wrong. It's ok to be uncertain. 10
  7. 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
  8. Deal With Uncertainty You can and should change your estimates.

    Do the uncertain things first Re-estimate as you learn Communicate often 12
  9. 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
  10. 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
  11. Complexity Costs Some features incur a cost for every future

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

    test it? How will you monitor it? How will you deploy it? 18
  13. Support Costs Features can be technically simple, but conceptually difficult.

    Will your users understand it? Will your support team understand it? Will your business understand it? 19
  14. Opportunity Costs What is the priority of this work? For

    you For your team For the business 20
  15. Weigh the Costs Everything you do will cost something down

    the road. Choose which costs you are willing to pay. 21
  16. 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
  17. Deadlines Not all deadlines are created equal. They come on

    a spectrum. Soft deadlines: Goals Hard deadlines: Promises 26
  18. Dealing With It When you are going to miss a

    deadline, you have options: Ship late Cut features Add People Work Overtime 27
  19. 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
  20. 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
  21. Deadline Hardening Don't commit to making any deadline you can't

    meet. People are less likely to turn a goal into a deadline if it's risky. Communicate status and risk often. 31
  22. 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
  23. Defense Against the Dark Arts All the other ways we

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

    a special project this weekend? “ 35
  25. 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
  26. Estimate Pride I said a day, and damnit I'll do

    it in a day if it takes me all night. “ 37
  27. 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
  28. Certainizing You might think you are agreeing to the expected

    outcome, but you actually just cut your estimate. 40
  29. 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
  30. 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
  31. 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
  32. 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
  33. Even More Dark Arts? Let me know @ a d

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