How Long Will It Take? A Guide to Software Estimation by Jared - - PowerPoint PPT Presentation

how long will it take
SMART_READER_LITE
LIVE PREVIEW

How Long Will It Take? A Guide to Software Estimation by Jared - - PowerPoint PPT Presentation

How Long Will It Take? A Guide to Software Estimation by Jared Faris @jaredthenerd jaredthenerd.com This work is licensed under http://creativecommons.org/licenses/by-sa/4.0/ About me Characters The Team The Perfectionists Magical


slide-1
SLIDE 1

How Long Will It Take?

A Guide to Software Estimation by Jared Faris @jaredthenerd jaredthenerd.com

slide-2
SLIDE 2

This work is licensed under http://creativecommons.org/licenses/by-sa/4.0/

slide-3
SLIDE 3

About me

slide-4
SLIDE 4

Characters

slide-5
SLIDE 5

The Team

The Perfectionists Magical resistant to deadlines +5 adding too much value

slide-6
SLIDE 6

Software Development

slide-7
SLIDE 7

So I have this idea. <details>

slide-8
SLIDE 8

So I have this idea. <details> Ooh, we can add <stuff>

slide-9
SLIDE 9

<more stuff> <and things!>

slide-10
SLIDE 10

A New Character Appears!

slide-11
SLIDE 11

THE BOSS

Product Owner Talks to Customers Signs Paychecks

slide-12
SLIDE 12

That’s great team, but…

slide-13
SLIDE 13

How long will it take?

slide-14
SLIDE 14

How Long Will It Take?

slide-15
SLIDE 15

Why Does It Matter?

  • Software isn’t built in a vacuum
  • If a project has no ROI, why do it?
  • You can’t prioritize without data
slide-16
SLIDE 16

Real World Examples

slide-17
SLIDE 17
slide-18
SLIDE 18
slide-19
SLIDE 19

RUN!!!!

slide-20
SLIDE 20
slide-21
SLIDE 21

BIG or little

slide-22
SLIDE 22

Today’s Topics

  • What are estimates?
  • Why don’t we like them?
  • Pre-requisites to estimating
  • Types of estimates and how to perform them
  • How to communicate with estimates
slide-23
SLIDE 23

So What Are These Estimates, Really?

slide-24
SLIDE 24
slide-25
SLIDE 25

How Are Estimates Perceived?

slide-26
SLIDE 26
slide-27
SLIDE 27

That’s not funny…

slide-28
SLIDE 28

How Do We Make This Work?

slide-29
SLIDE 29

We Need To

  • Get better at estimating
  • Get better at communicating
slide-30
SLIDE 30

Can You Be Good At Estimating?

Artist Unknown

slide-31
SLIDE 31

Objections

slide-32
SLIDE 32

When will this ship?

slide-33
SLIDE 33

When will this ship? Who knows?

slide-34
SLIDE 34

We don’t do estimates! We don’t want to be held accountable! Requirements change too

  • ften!

This slide looked unbalanced without me!

slide-35
SLIDE 35

We Don’t Do Estimates

  • r

We Don’t Estimate Hours

slide-36
SLIDE 36

http://bit.ly/FixedBidAgile

slide-37
SLIDE 37

We Can’t Estimate Because Requirements Change So Often

slide-38
SLIDE 38

https://ardalis.com/5-laws-of-software-estimates

slide-39
SLIDE 39

If We Don’t Estimate, We Won’t Be Held Accountable

slide-40
SLIDE 40

So how long will it take? We’ll figure it out.

slide-41
SLIDE 41
slide-42
SLIDE 42

Er…

slide-43
SLIDE 43

So now what?

slide-44
SLIDE 44

How Do We Get Started?

slide-45
SLIDE 45

Prerequisites To Estimating

  • Scope
  • Constraints
  • Assumptions
slide-46
SLIDE 46

Types of Work

  • Planning
  • Requirements Gathering
  • Designing
  • Development
  • Testing
  • Documentation
  • Training
  • Deployment
  • Etc
slide-47
SLIDE 47

Estimation Methods

slide-48
SLIDE 48

Estimation Dice!

slide-49
SLIDE 49

Types of Estimates

  • SWAGs
  • Top-Down Estimates
  • Bottom-Up Estimates
slide-50
SLIDE 50

Fermi Estimation

slide-51
SLIDE 51
slide-52
SLIDE 52

What a nerd *Nobel* laureate nerd

slide-53
SLIDE 53

Fermi Estimation

  • There are approximately 9,000,000 people living in Chicago.
  • On average, there are two persons in each household in Chicago.
  • Roughly one household in twenty has a piano that is tuned regularly.
  • Pianos that are tuned regularly are tuned on average about once per year.
  • It takes a piano tuner about two hours to tune a piano, including travel time.
  • Each piano tuner works eight hours in a day, five days in a week, and 50 weeks

in a year.

After all of these assumptions, it’s just math.

Source: http://en.wikipedia.org/wiki/Fermi_problem

slide-54
SLIDE 54

How To Fermi Estimate

  • Make high level assumptions
  • Approximate everything
  • Combine your assumptions and approximations
  • Win a Nobel Prize
slide-55
SLIDE 55

Applied Fermi Estimation

  • There are approximately 20 stakeholders involved in this project
  • Each stakeholder interview will take 30 minutes
  • Documenting the outcome from each interview will take 2 hours
  • We’ll average 3 interviews a day
  • 25% of our days won't have any interviews
  • Minutes of work: 20 * (120 + 30) = 3,000 minutes
  • Days of work: 3000 / (8 * 60) = 6.25 days
  • Total days: 6.25 / .75 = 8.3333 days
slide-56
SLIDE 56

Fermiburger

  • I have 8 people coming over for dinner
  • My grill can hold 4 burgers at a time
  • Each burger takes 3 minutes to cook, per side
  • Each person eats 2 burgers
  • Assumption: Other people bring the sides and set them out
  • Assumption: I’ll only spend a minute between burger sprints
  • 8 people * 2 burgers each = 16 burgers => 4 burger sprints
  • 4 sprints * 7 minutes each = 28 30 minutes of cooking (round)
  • 15 minute grill heat + 30 minutes cooking = Dinner in 45 minutes

Source: Iconshock

slide-57
SLIDE 57

Fermi Estimation Pros & Cons

slide-58
SLIDE 58

Ok… and?

slide-59
SLIDE 59

Top-Down Estimates

slide-60
SLIDE 60
slide-61
SLIDE 61

Top-Down Estimate Steps

  • Identify the size and shape of a project
  • Look for analogs
  • Identify where they are like and unlike
  • Size the new project relatively
slide-62
SLIDE 62

Top-Down Example

slide-63
SLIDE 63

Top-Down Estimation (Cont)

slide-64
SLIDE 64

Iteration Planning

slide-65
SLIDE 65

Top-Down Pros & Cons

slide-66
SLIDE 66

Ok… and?

Top-Down makes sense. What’s next?

slide-67
SLIDE 67

Bottom-Up Estimates

slide-68
SLIDE 68

Source: http://bit.ly/1xQEgLp

slide-69
SLIDE 69

Source: http://bit.ly/1xQEgLp

slide-70
SLIDE 70

Bottom-Up Estimate Steps

  • Break the project down into smaller components
  • r “widgets”
  • Estimate each widget
  • Add up the estimates
slide-71
SLIDE 71

Bottom-Up Example

slide-72
SLIDE 72
slide-73
SLIDE 73

Widgets

  • WCF service endpoint hosted in AcmeApp
  • WCF call
  • Tracking models
  • AcmeApp Tracking Contract implementation
  • AcmeApp Module creation
  • Data-service call (to existing DS)
  • Cache mechanism
  • Error handling call
  • TrackingCo API discovery/research
slide-74
SLIDE 74

Complexity

slide-75
SLIDE 75

Counts

slide-76
SLIDE 76

Multiply + Add

slide-77
SLIDE 77

Rest of the Work

  • Estimate it precisely based on specific work
  • Estimate it roughly based on ratios
slide-78
SLIDE 78

Ratio Estimations

Source: http://bit.ly/1O0ICmR

slide-79
SLIDE 79

What about ____? And _____? _____? Captured that! That too! Yep!

Capture Everything

slide-80
SLIDE 80

Bottom-Up Pros & Cons

slide-81
SLIDE 81

Burger Buffet Method

slide-82
SLIDE 82

Already Doing This?

slide-83
SLIDE 83

What about risk?

slide-84
SLIDE 84

We Aren’t “Guessing”

slide-85
SLIDE 85

Contingency

slide-86
SLIDE 86

Estimating Contingency

  • Look at your assumptions
  • Determine which ones are internal
  • Estimate likelihood and impact
  • Determine your risk
  • Go with 30%
slide-87
SLIDE 87

The Risk Is The Risk

slide-88
SLIDE 88

Let’s go with 100% contingency Ooooh Good idea!

slide-89
SLIDE 89

Let’s go with 100% contingency Ooooh Good idea! What’s that?

slide-90
SLIDE 90

Estimates as Communication

Estimates are useful for:

  • Describing what is and isn’t included
  • Pushing back on unrealistic plans
  • Communicating team needs to management
  • Communicating business goals to teams
  • Explaining the cost of change
slide-91
SLIDE 91

You’re Not Done Estimating

slide-92
SLIDE 92

Summary

  • Estimation is a skill
  • Account for ALL of the work in a project
  • Don’t pad - calculate risk
  • Communicate what you did and didn’t estimate
  • Don’t panic, you can do this
slide-93
SLIDE 93

Software Estimation - Demystifying the Black Art

Steve McConnell

slide-94
SLIDE 94

Thank You!

by Jared Faris @jaredthenerd jaredthenerd.com