Software Estimation Pro Tips

A presentation at AtlantaPHP in September 2013 in Atlanta, GA, USA by Jonathon Hill

Slide 1

Slide 1

ESTIMATION PROTIPS ATLANTA PHP USER GROUP SEPTEMBER 2013

Slide 2

Slide 2

ABOUT ME • Director of Development • 5+ years of full-time web development • Learned estimation from the school of hard knocks

Slide 3

Slide 3

Slide 4

Slide 4

Slide 5

Slide 5

YOUR ANSWER?

Slide 6

Slide 6

PROTIP #1: ESTIMATES ARE NOT PROMISES

Slide 7

Slide 7

“GOOD” ESTIMATES A good estimation approach should provide estimates that are within 25% of the actual results 75% of the time. Conte, Dunsmore, and Shen (1986)

Slide 8

Slide 8

SEEKING CERTAINTY Sadly, people asking for control or visibility really want certainty. Which doesn’t exist. Dan North https://twitter.com/tastapod/status/116271851767992320

Slide 9

Slide 9

DISTINCTIONS Target: a stated desirable business objective Commitment: a promise to deliver a specific product within a timeframe

Slide 10

Slide 10

E T TA A RTGIM ET S E

Slide 11

Slide 11

DEFINITION A good estimate is an estimate that provides a clear enough view of the project reality to allow the project leadership to make good decisions about how to control the project to hit targets. Steve McConnell, Software Estimation

Slide 12

Slide 12

PROTIP #2: GUTS LIE

Slide 13

Slide 13

Slide 14

Slide 14

HEAVIEST BLUE WHALE EVER RECORDED 380,000 LBS

Slide 15

Slide 15

REALISTIC?

Slide 16

Slide 16

BOOK RECOMMENDATION

Slide 17

Slide 17

HOFSTADTER’S LAW “It always takes longer than you expect, even when you take into account Hofstadter’s Law.” Douglas Hofstadter Gödel, Escher, Bach: An Eternal Golden Braid

Slide 18

Slide 18

TIME FRAMES “With software estimation you’ve only realistically got a choice of 5 mins, 1 hour, 1-2 days, about a week, and then all bets are off.” Rob Bowley https://twitter.com/robbowley/status/115430969825181696

Slide 19

Slide 19

WHY ARE ESTIMATES SO HARD?

Slide 20

Slide 20

Slide 21

Slide 21

IT’LL BE DIFFERENT THIS TIME!

Slide 22

Slide 22

THE PLANNING FALLACY Students estimated their senior thesis completion time in a 1994 study: 60 55.5 50 48.6 40 30 20 33.9 27.4 Best Case Expected Case Worst Case Actual 10 0 Source: Wikipedia

Slide 23

Slide 23

E S T AT IM E T H IS !

Slide 24

Slide 24

PROTIP #3: PREMATURE ESTIMATION IS SABOTAGE

Slide 25

Slide 25

DON’T ESTIMATE If there’s as much chance of you coming up with something meaningful by rolling some dice or rubbing the estimate goat then what purpose are you satisfying by doing so? Rob Bowley

Slide 26

Slide 26

CONE OF UNCERTAINTY

Slide 27

Slide 27

OVERESTIMATION • Inflated prices – might lose the job • Lack of urgency – project time fills up the estimate when it could have been done faster • Procrastination

Slide 28

Slide 28

UNDERESTIMATION • • • • • • • • Inadequate planning Missed deadlines Overwork, burnout More bugs Technical debt Damage control Unplanned interim releases Meetings proliferate

Slide 29

Slide 29

PROTIP #4: BIG TEAMS ARE SLOWER THAN SMALL ONES

Slide 30

Slide 30

Slide 31

Slide 31

TIME = ESTIMATE ÷ AVAILABILITY

Slide 32

Slide 32

Slide 33

Slide 33

Slide 34

Slide 34

Slide 35

Slide 35

Slide 36

Slide 36

TEAM EFFICIENCY Developers Communication Paths Individual Efficiency Team Capacity 1 0 100% 1x 2 3 75% 1.5x 3 6 67% 2x 4 10 63% 2.5x 5 15 60% 3x 6 21 58% 3.5x 7 28 57% 4x 8 36 56% 4.5x 9 45 56% 5x 10 55 55% 5.5x Source: Paul M. Jones, http://paul-m-jones.com/archives/1591

Slide 37

Slide 37

PROTIP #5: BEWARE UNWARRANTED PRECISION

Slide 38

Slide 38

“533.5 hours” vs “13 days” vs “3 weeks”

Slide 39

Slide 39

PROTIP #6: COUNT ALL THE THINGS

Slide 40

Slide 40

TIME FRAMES “With software estimation you’ve only realistically got a choice of 5 mins, 1 hour, 1-2 days, about a week, and then all bets are off.” Rob Bowley https://twitter.com/robbowley/status/115430969825181696

Slide 41

Slide 41

DECOMPOSITION AND RECOMPOSITION 1. List all the features 2. Break the features into subfeatures 3. Break the sub-features into components 4. Estimate the components 5. Add the estimates up

Slide 42

Slide 42

LAW OF LARGE NUMBERS The tendency for errors on the high side and errors on the low side to cancel each other out. i.e., The accuracy of the sum is greater than the accuracy of the individual estimates.

Slide 43

Slide 43

PAUL JONES’ METHOD 1. List all the controllers required for each feature 2. List all the methods required for each controller 3. Estimate 1 dev-pair day per controller method

Slide 44

Slide 44

BRANDMOVERS METHOD 1. List all the logical features required 2. Break down each feature into small logical components 3. List all the pages and modals required for each feature 4. Estimate the back-end time required for each logical component 5. Estimate the front-end time required for each page 6. Sum up the back-end and front-end totals

Slide 45

Slide 45

Slide 46

Slide 46

PROTIP #7: WHEN IN A PINCH, USE A PROXY

Slide 47

Slide 47

PROXY ESTIMATION 1. Assign a size classification to each feature 2. Compute the average time required for similarly-sized features from actual past projects 3. Create estimate ranges for each feature based on past performance 4. Sum the result

Slide 48

Slide 48

PROS • Easier • Faster

Slide 49

Slide 49

CONS • Less accurate • Requires collection and archival of project historical data on a perfeature basis

Slide 50

Slide 50

STORY POINTS • Uses a point scale: 1, 2, 4, 8, 16 • Break down the project into epics and stories • Assign a point value to each story • Schedule releases at regular intervals • The number of points completed per release is known as “velocity” • Use the velocity to plan and estimate the delivery dates for future releases

Slide 51

Slide 51

EXAMPLE Iteration 1 • 27 story points delivered • 12 staff weeks expended over 3 calendar weeks • Effort = 27 points / 12 weeks = 2.25 points/week • Schedule = 27 points / 3 weeks = 9 points/week Iteration 2 projection • 33 story points scheduled • Effort = 33 points / 2.25 points/week = 15 staff weeks • Schedule = 33 points / 9 points/week = 4 calendar weeks

Slide 52

Slide 52

Slide 53

Slide 53

T-SHIRT SIZING • Assign a T-shirt size for development cost • Assign a T-shirt size for business value • Create a table of business value to development cost ratios • Look up the net business value for each feature based on the dev cost and business value T-shirt sizes • Prioritize the features in order of net business value

Slide 54

Slide 54

EXAMPLE Feature Feature A Feature B Business Value L S Dev Cost S L Feature C Feature D Feature E L M M L M L

Slide 55

Slide 55

VALUE TO COST RATIOS Business Value Development Cost XL L M S XL 0 -4 -6 -7 L 4 0 -2 -3 M 6 2 0 -1 S 7 3 1 0

Slide 56

Slide 56

BIZ VALUE EXAMPLE Feature Feature A Feature C Feature D Feature E Feature B Business Value L L M M S Dev Cost S L M L L Net Value 3 0 0 -2 -3

Slide 57

Slide 57

PROTIP #8: YOU CAN’T NEGOTIATE MATH

Slide 58

Slide 58

E T TA A RTGIM ET S E

Slide 59

Slide 59

PROBLEM SOLVING When the estimate and target conflict: • Negotiate features • Negotiate time • Negotiate price

Slide 60

Slide 60

ATTITUDE • Try to be helpful, offer solutions • Be creative • Examine what can be done in parallel to save time • Be firm – you can’t change the laws of physics

Slide 61

Slide 61

QUESTIONS?

Slide 62

Slide 62

ONE FINAL WORD A HORROR STORY

Slide 63

Slide 63

THE SETTING • Former employer of mine • Start-up, naïve and inexperienced • Needed cash bad

Slide 64

Slide 64

THE CLIENT • Local company in Atlanta • Had four separate systems in place for managing customer data, billing, inventory, and fulfillment • Wanted this unified and streamlined into a web-based backoffice application • Wanted a customer-facing portal for online ordering and bill paying

Slide 65

Slide 65

THE ESTIMATE • Estimated at 1,039 man-hours • Normal hourly rate was $120/hr • We did a fixed-bid for $50k, at an effective hourly rate of $48/hr

Slide 66

Slide 66

THE FALLOUT • 18 months later… • 2,500 man-hours • 1,500+ Subversion commits • Lots of “unknown unknowns”, hidden complexities, and scope creep

Slide 67

Slide 67

THE MORAL • Don’t succumb to pressure to be optimistic when estimating • Use a good estimation methodology • Try not to do fixed bidding • Always have a thorough scope before starting

Slide 68

Slide 68

THANK YOU! • http://brandmovers.com • http://jonathonhill.net • @compwright