Top Banner
The Dark Art of Software Project Estimation Carl Brown 360iDev 2014 2014 @CARLBRWN #360iDev
93

Dark Art of Software Estimation 360iDev2014

Dec 06, 2014

Download

Software

Carl Brown

Dark Art of Software Project Estimation. Presentation from 360iDev 2014.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Dark Art of Software Estimation 360iDev2014

The Dark Art of Software Project

Estimation

Carl Brown 360iDev 2014

2014@CARLBRWN

#360iDev

Page 2: Dark Art of Software Estimation 360iDev2014

The Dark Art of Software Project

Estimation

Carl Brown 360iDev 2014

2014@CARLBRWN

#360iDev

Page 3: Dark Art of Software Estimation 360iDev2014

#ObBio

Who the Hell am I? Why the Hell should you listen to me?

2014@CARLBRWN

#360iDev

Page 4: Dark Art of Software Estimation 360iDev2014

Estimates Are PredictionsPredicting the future is impossible

If you think you can predict the future, why haven’t you won the lottery?

Of course, that doesn’t stop people from trying…

Picture http://pixabay.com/en/lottery-lotto-toto-sphere-luck-146318/ 2014@CARLBRWN

#360iDev

Page 5: Dark Art of Software Estimation 360iDev2014

QWERTYUIOPASDFGHJKLZXCVBNM0123456789

Page 6: Dark Art of Software Estimation 360iDev2014
Page 7: Dark Art of Software Estimation 360iDev2014
Page 8: Dark Art of Software Estimation 360iDev2014
Page 9: Dark Art of Software Estimation 360iDev2014

YOU’RE  NOT  

FOOLING  ANYONE

Page 10: Dark Art of Software Estimation 360iDev2014

Estimates Are PredictionsPredicting the future is impossible

If you think you can predict the future, why haven’t you won the lottery?

Of course, that doesn’t stop people from trying…

Picture http://pixabay.com/en/lottery-lotto-toto-sphere-luck-146318/ 2014@CARLBRWN

#360iDev

Page 11: Dark Art of Software Estimation 360iDev2014

Why Not Just Skip Estimates?

Somebody has to pay for this It sucks to fail because you ran out of resources before you had a chance to ship

Pic: http://pixabay.com/en/clock-time-euro-money-currency-77497/ 2014@CARLBRWN

#360iDev

Page 12: Dark Art of Software Estimation 360iDev2014
Page 13: Dark Art of Software Estimation 360iDev2014

NICE  WORK  IF  YOU  CAN  GET  

IT

Page 14: Dark Art of Software Estimation 360iDev2014

Why Not Just Skip Estimates?

Somebody has to pay for this It sucks to fail because you ran out of resources before you had a chance to ship

Pic: http://pixabay.com/en/clock-time-euro-money-currency-77497/ 2014@CARLBRWN

#360iDev

Page 15: Dark Art of Software Estimation 360iDev2014

2014@CARLBRWN

#360iDev

Failing to Estimate:…Gets you this…

Pic: Office Space

Page 16: Dark Art of Software Estimation 360iDev2014

Estimates Are Of Varying Quality

Estimates can only be judged “Right" or “Wrong” in after project is over. But certain attributes make estimates “Better” or “Worse” and increase your odds

Pic: http://pixabay.com/en/roulette-chips-casino-gambling-298029/ 2014@CARLBRWN

#360iDev

Page 17: Dark Art of Software Estimation 360iDev2014

VARYING  QUALITY  

!

MEANS  !

“THEY  SUCK”

Page 18: Dark Art of Software Estimation 360iDev2014

Estimates Are Of Varying Quality

Estimates can only be judged “Right" or “Wrong” in after project is over. But certain attributes make estimates “Better” or “Worse” and increase your odds

Pic: http://pixabay.com/en/roulette-chips-casino-gambling-298029/ 2014@CARLBRWN

#360iDev

Page 19: Dark Art of Software Estimation 360iDev2014

2014@CARLBRWN

#360iDev

What Affects Quality?

Granularity Familiarity Isolation Certainty

Page 20: Dark Art of Software Estimation 360iDev2014

2014@CARLBRWN

#360iDev

What Affects Quality?

Granularity Familiarity Isolation Certainty

BINGO!!

Page 21: Dark Art of Software Estimation 360iDev2014

Granularity:

The Longer the Estimate, the Greater the Error

2014@CARLBRWN

#360iDev

Page 22: Dark Art of Software Estimation 360iDev2014

This is Not An Estimate

This is A Budget

Project Management 160 Hours

Design 240 Hours

Development 800 Hours

Testing 320 Hours

Page 23: Dark Art of Software Estimation 360iDev2014

Never Fight BS with More BSAll unsupported numbers are created equal

Pic: http://pixabay.com/en/bulls-cattle-animals-fight-fighting-102764/ 2014@CARLBRWN

#360iDev

Page 24: Dark Art of Software Estimation 360iDev2014

Never Fight BS with More BSAll unsupported numbers are created equalEqually bad

Pic: http://pixabay.com/en/bulls-cattle-animals-fight-fighting-102764/ 2014@CARLBRWN

#360iDev

Page 25: Dark Art of Software Estimation 360iDev2014

WHAT  HE’S  TRYING  NOT  TO  SAY  IS  

!

“BULLSHIT”

Page 26: Dark Art of Software Estimation 360iDev2014

Never Fight BS with More BSAll unsupported numbers are created equal Equally bad Your “6 month” guess can’t compete with someone else’s “6 week” guess

Pic: http://pixabay.com/en/bulls-cattle-animals-fight-fighting-102764/ 2014@CARLBRWN

#360iDev

Page 27: Dark Art of Software Estimation 360iDev2014

Quality Estimates: Backed by Plans

Plans are made of tasks Estimate the tasks, not the plan The Estimate for the project is the sum of the estimates for the tasks

Pic: http://pixabay.com/en/map-navigation-geography-312213/ 2014@CARLBRWN

#360iDev

Page 28: Dark Art of Software Estimation 360iDev2014

“But Planning is HARD!”

It does, actually, require effort It gets easier with practice And it has other benefits

Pic: http://pixabay.com/en/magic-cube-patience-games-puzzle-232276/ 2014@CARLBRWN

#360iDev

Page 29: Dark Art of Software Estimation 360iDev2014

Planning is Time-Consuming

The more you do it, the faster you get It’s often reasonable to expect to get paid for effort spent planning and estimating

2014@CARLBRWN

#360iDev

Pic: http://pixabay.com/en/clock-time-calendar-agenda-163202/

Page 30: Dark Art of Software Estimation 360iDev2014

IT  TAKES  MUCH  LESS  TIME  THAN  FAILING

Page 31: Dark Art of Software Estimation 360iDev2014

Planning is Time-Consuming

The more you do it, the faster you get It’s often reasonable to expect to get paid for effort spent planning and estimating

2014@CARLBRWN

#360iDev

Pic: http://pixabay.com/en/clock-time-calendar-agenda-163202/

Page 32: Dark Art of Software Estimation 360iDev2014

Start with WireframesBut don't end there There’s a lot more going on than what you see Don’t forget to estimate storage, network, search, etc etc

Pic: http://www.shutterstock.com/pic-21978565/stock-photo-nighttime-view-of-an-iceberg-with-visible-underwater-surface.html 2014@CARLBRWN

#360iDev

Page 33: Dark Art of Software Estimation 360iDev2014

Plan Via BifurcationChop tasks up into smaller tasks If you’re unsure what duration to put, break it down more If longer than minimum size, repeat

http://commons.wikimedia.org/wiki/File%3ATurtles_all_the_way_down.png

Figure By Pelf at en.wikipedia [Public domain], via Wikimedia Commons 2014@CARLBRWN

#360iDev

Page 34: Dark Art of Software Estimation 360iDev2014

BIFURCATION:  THAT’S  

PRETENTIOUS  ASSHOLE  SPEAK  

FOR  “SPLIT  UP”

Page 35: Dark Art of Software Estimation 360iDev2014

Plan Via BifurcationChop tasks up into smaller tasks If you’re unsure what duration to put, break it down more If longer than minimum size, repeat

http://commons.wikimedia.org/wiki/File%3ATurtles_all_the_way_down.png

Figure By Pelf at en.wikipedia [Public domain], via Wikimedia Commons 2014@CARLBRWN

#360iDev

Page 36: Dark Art of Software Estimation 360iDev2014

Estimate Only Valid For Given Scope

Pic:- http://commons.wikimedia.org/wiki/File:Winchester_House_910px.jpg#mediaviewer/File:Winchester_House_910px.jpg

Page 37: Dark Art of Software Estimation 360iDev2014

BY    CRAZY  PEOPLE  HE  MEANS  

!

“CLIENTS”

Page 38: Dark Art of Software Estimation 360iDev2014

Estimate Only Valid For Given Scope

Pic:- http://commons.wikimedia.org/wiki/File:Winchester_House_910px.jpg#mediaviewer/File:Winchester_House_910px.jpg

Page 39: Dark Art of Software Estimation 360iDev2014

Plan One Feasible Implementation

It won’t necessarily be the one that gets implemented Tasks are likely to be different, but closer than a wild guess

Pic: http://pixabay.com/en/lego-toys-children-play-build-169603/ 2014@CARLBRWN

#360iDev

Page 40: Dark Art of Software Estimation 360iDev2014

2014@CARLBRWN

#360iDev

Familiarity

Have You Done This Before?

Page 41: Dark Art of Software Estimation 360iDev2014

YOU  HAVE  5  YEARS  OF  SWIFT    

EXPERIENCE,  RIGHT?

Page 42: Dark Art of Software Estimation 360iDev2014
Page 43: Dark Art of Software Estimation 360iDev2014

MY  SOURCES  CAN’T  SAY.  

THEY  ARE  ROFL

Page 44: Dark Art of Software Estimation 360iDev2014

2014@CARLBRWN

#360iDev

Familiarity

Have You Done This Before?

Page 45: Dark Art of Software Estimation 360iDev2014

Spikes to handle UnfamiliarityA “Spike” (in the Agile sense) is a time-boxed experiment intended to inform the project Think of it like a small, single-feature prototype on a deadline

Pic: http://commons.wikimedia.org/wiki/File:Hewes_Family_Golden_Spike_at_the_California_State_Railroad_Museum.JPG#mediaviewer/File:Hewes_Family_Golden_Spike_at_the_California_State_Railroad_Museum.JPG 2014

@CARLBRWN#360iDev

Page 46: Dark Art of Software Estimation 360iDev2014

Isolation

Can Tasks Be Done in Parallel?

2014@CARLBRWN

#360iDev

Page 47: Dark Art of Software Estimation 360iDev2014

ISOLATION  DOESN’T  MEAN  WORKING  ALONE  ON  A  SATURDAY

Page 48: Dark Art of Software Estimation 360iDev2014

Architecture to Increase Isolation

Then delay in one area won’t affect others The more interrelated they are, the more errors will propagate

Pic: http://pixabay.com/en/xanten-columnar-greek-roman-279944/ 2014@CARLBRWN

#360iDev

Page 49: Dark Art of Software Estimation 360iDev2014

Beware Merge HELL

Storyboards/XIBs are not a large Dev Team’s friend AutoLayout Helps Somewhat

Pic: http://pixabay.com/en/goats-animal-bock-billy-goat-173940/ 2014@CARLBRWN

#360iDev

Page 50: Dark Art of Software Estimation 360iDev2014

Don’t Delay Integration

Pic: https://www.youtube.com/watch?v=ofUvuQxJwlA 2014@CARLBRWN

#360iDev

Page 51: Dark Art of Software Estimation 360iDev2014

Certainty

When you know everything you need to know

2014@CARLBRWN

#360iDev

Page 52: Dark Art of Software Estimation 360iDev2014
Page 53: Dark Art of Software Estimation 360iDev2014

TERMINOLOGY  UNCERTAIN  PLEASE  GET  A  CLUE

Page 54: Dark Art of Software Estimation 360iDev2014

Certainty

When you know everything you need to know

2014@CARLBRWN

#360iDev

Page 55: Dark Art of Software Estimation 360iDev2014

Know Your TeamPic: http://www.shutterstock.com/en/pic.mhtml?id=82162555&pl=44814-43068

Page 56: Dark Art of Software Estimation 360iDev2014

Know Your ScopePic: http://adventurejay.com/blog/images/SailingGPS.jpg

Page 57: Dark Art of Software Estimation 360iDev2014

Know Your Resources

Pic: http://pixabay.com/en/tools-logo-work-equipment-pictorial-191794/

Page 58: Dark Art of Software Estimation 360iDev2014

WHAT  IF  !

FUCKINGBLOCK\  SYNTAX.COM  

!

GOES  DOWN?

Page 59: Dark Art of Software Estimation 360iDev2014

Know Your Resources

Pic: http://pixabay.com/en/tools-logo-work-equipment-pictorial-191794/

Page 60: Dark Art of Software Estimation 360iDev2014

Improving Requires Feedback

You need to pay attention to how your estimates perform You should do a post-mortem at the end of each project …And Actually learn from it.

Pic: http://www.flickr.com/photos/proimos/4199675334/ 2014@CARLBRWN

#360iDev

Page 61: Dark Art of Software Estimation 360iDev2014

2014@CARLBRWN

#360iDev

Carl’s 4 Estimate Qualities:

Granularity Familiarity Isolation Certainty

Page 62: Dark Art of Software Estimation 360iDev2014

Padding

2014@CARLBRWN

#360iDev

Page 63: Dark Art of Software Estimation 360iDev2014

NOT  JUST  FOR  SHOULDERS  DURING  THE  

80s

Page 64: Dark Art of Software Estimation 360iDev2014

UMM..  GO  ASK  YOUR  

PARENTS

Page 65: Dark Art of Software Estimation 360iDev2014

Padding

2014@CARLBRWN

#360iDev

Page 66: Dark Art of Software Estimation 360iDev2014

Hofstadter's law

It always takes longer than you expect, even when you take into account Hofstadter's Law.

Page 67: Dark Art of Software Estimation 360iDev2014

Probabilities

http://commons.wikimedia.org/wiki/File%3ANormal_Distribution_PDF.svg

Figure By Inductiveload (self-made, Mathematica, Inkscape) [Public domain], via Wikimedia Commons

Page 68: Dark Art of Software Estimation 360iDev2014

Each Task Estimate is Probably WrongAnd likely not in your favor

3-Parameter Weibull Distribution β=3 η = 12 γ = 0.2

Page 69: Dark Art of Software Estimation 360iDev2014

Each Task Estimate is Probably WrongAnd likely not in your favor

3-Parameter Weibull Distribution β=3 η = 12 γ = 0.2

Page 70: Dark Art of Software Estimation 360iDev2014

Each Task Estimate is Probably WrongAnd likely not in your favor

3-Parameter Weibull Distribution β=3 η = 12 γ = 0.2

Page 71: Dark Art of Software Estimation 360iDev2014

Possible

Impossible

Page 72: Dark Art of Software Estimation 360iDev2014

PossibleImpossible

Predicting the Future

Page 73: Dark Art of Software Estimation 360iDev2014

PossibleImpossible

Predicting the Future Estimating Software

Page 74: Dark Art of Software Estimation 360iDev2014

PossibleImpossible

Predicting the Future

Estimating Software

Your Skills

Page 75: Dark Art of Software Estimation 360iDev2014

Possible

Impossibl

e

Predicting the Future

Estimating Software

Your Skills

Page 76: Dark Art of Software Estimation 360iDev2014

Possible

Impossibl

e

Predicting the Future

Estimating Software

Your Skills?

Page 77: Dark Art of Software Estimation 360iDev2014

If There’s Really No Winning...

Page 78: Dark Art of Software Estimation 360iDev2014

Not Playing is Not an Option

http://www.despair.com/stupidity.html

Page 79: Dark Art of Software Estimation 360iDev2014

The Only Way to Win Is To CheatPic: http://www.shutterstock.com/pic-111067073/

Page 80: Dark Art of Software Estimation 360iDev2014

So, How Do You Cheat?

Page 81: Dark Art of Software Estimation 360iDev2014

So, How Do You Cheat?

Page 82: Dark Art of Software Estimation 360iDev2014

So, How Do You Cheat?

Page 83: Dark Art of Software Estimation 360iDev2014

You Already Have a PlanBig added bonus of making a plan for the estimate is you then have a plan to manage from The tasks will likely vary, but the overall schedule should be trackable

Pic: http://pixabay.com/en/directory-signs-north-sea-emden-410867/ 2014@CARLBRWN

#360iDev

Page 84: Dark Art of Software Estimation 360iDev2014

Pic: http://pixabay.com/en/sign-symbol-rock-signs-traffic-40711/

Good Plans Document Scope

2014@CARLBRWN

#360iDev

Page 85: Dark Art of Software Estimation 360iDev2014

PROJECT  ON  SCHEDULE:  WATCH  FOR  FALLING  

IQs

Page 86: Dark Art of Software Estimation 360iDev2014

Pic: http://pixabay.com/en/sign-symbol-rock-signs-traffic-40711/

Good Plans Document Scope

2014@CARLBRWN

#360iDev

Page 87: Dark Art of Software Estimation 360iDev2014

When This Happens

It’s Time to Adjust

Page 88: Dark Art of Software Estimation 360iDev2014

Manage Project to Get Back On Track

May Require Customer Cooperation With an Adversarial Customer, Estimates are the Least of Your Problems Only Possible if you were Close Enough to Start With

Pic: Portal by Valve

Page 89: Dark Art of Software Estimation 360iDev2014

...And then Suddenly, Magically, You Were Right All

Along

Page 90: Dark Art of Software Estimation 360iDev2014

AND  YOU  DIDN’T  EVEN  HAVE  TO    SACRIFICE  A  CHICKEN

Page 91: Dark Art of Software Estimation 360iDev2014

ALTHOUGH  IT  COULDN’T  

HURT  TO  TRY

Page 92: Dark Art of Software Estimation 360iDev2014

Carl Brown

Book: AppAccomplished.com Twitter: @CarlBrwn Email: [email protected]

2014@CARLBRWN

#360iDev

Thank You

Page 93: Dark Art of Software Estimation 360iDev2014

Carl Brown

Book: AppAccomplished.com Twitter: @CarlBrwn Email: [email protected]

2014@CARLBRWN

#360iDev

Thank You