Dark Art of Software Estimation 360iDev2014

Post on 06-Dec-2014

271 views 3 download

Tags:

description

Dark Art of Software Project Estimation. Presentation from 360iDev 2014.

Transcript of Dark Art of Software Estimation 360iDev2014

The Dark Art of Software Project

Estimation

Carl Brown 360iDev 2014

2014@CARLBRWN

#360iDev

The Dark Art of Software Project

Estimation

Carl Brown 360iDev 2014

2014@CARLBRWN

#360iDev

#ObBio

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

2014@CARLBRWN

#360iDev

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

QWERTYUIOPASDFGHJKLZXCVBNM0123456789

YOU’RE  NOT  

FOOLING  ANYONE

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

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

NICE  WORK  IF  YOU  CAN  GET  

IT

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

2014@CARLBRWN

#360iDev

Failing to Estimate:…Gets you this…

Pic: Office Space

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

VARYING  QUALITY  

!

MEANS  !

“THEY  SUCK”

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

2014@CARLBRWN

#360iDev

What Affects Quality?

Granularity Familiarity Isolation Certainty

2014@CARLBRWN

#360iDev

What Affects Quality?

Granularity Familiarity Isolation Certainty

BINGO!!

Granularity:

The Longer the Estimate, the Greater the Error

2014@CARLBRWN

#360iDev

This is Not An Estimate

This is A Budget

Project Management 160 Hours

Design 240 Hours

Development 800 Hours

Testing 320 Hours

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

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

WHAT  HE’S  TRYING  NOT  TO  SAY  IS  

!

“BULLSHIT”

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

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

“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

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/

IT  TAKES  MUCH  LESS  TIME  THAN  FAILING

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/

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

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

BIFURCATION:  THAT’S  

PRETENTIOUS  ASSHOLE  SPEAK  

FOR  “SPLIT  UP”

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

Estimate Only Valid For Given Scope

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

BY    CRAZY  PEOPLE  HE  MEANS  

!

“CLIENTS”

Estimate Only Valid For Given Scope

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

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

2014@CARLBRWN

#360iDev

Familiarity

Have You Done This Before?

YOU  HAVE  5  YEARS  OF  SWIFT    

EXPERIENCE,  RIGHT?

MY  SOURCES  CAN’T  SAY.  

THEY  ARE  ROFL

2014@CARLBRWN

#360iDev

Familiarity

Have You Done This Before?

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

Isolation

Can Tasks Be Done in Parallel?

2014@CARLBRWN

#360iDev

ISOLATION  DOESN’T  MEAN  WORKING  ALONE  ON  A  SATURDAY

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

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

Don’t Delay Integration

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

#360iDev

Certainty

When you know everything you need to know

2014@CARLBRWN

#360iDev

TERMINOLOGY  UNCERTAIN  PLEASE  GET  A  CLUE

Certainty

When you know everything you need to know

2014@CARLBRWN

#360iDev

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

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

Know Your Resources

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

WHAT  IF  !

FUCKINGBLOCK\  SYNTAX.COM  

!

GOES  DOWN?

Know Your Resources

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

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

2014@CARLBRWN

#360iDev

Carl’s 4 Estimate Qualities:

Granularity Familiarity Isolation Certainty

Padding

2014@CARLBRWN

#360iDev

NOT  JUST  FOR  SHOULDERS  DURING  THE  

80s

UMM..  GO  ASK  YOUR  

PARENTS

Padding

2014@CARLBRWN

#360iDev

Hofstadter's law

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

Probabilities

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

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

Each Task Estimate is Probably WrongAnd likely not in your favor

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

Each Task Estimate is Probably WrongAnd likely not in your favor

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

Each Task Estimate is Probably WrongAnd likely not in your favor

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

Possible

Impossible

PossibleImpossible

Predicting the Future

PossibleImpossible

Predicting the Future Estimating Software

PossibleImpossible

Predicting the Future

Estimating Software

Your Skills

Possible

Impossibl

e

Predicting the Future

Estimating Software

Your Skills

Possible

Impossibl

e

Predicting the Future

Estimating Software

Your Skills?

If There’s Really No Winning...

Not Playing is Not an Option

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

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

So, How Do You Cheat?

So, How Do You Cheat?

So, How Do You Cheat?

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

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

Good Plans Document Scope

2014@CARLBRWN

#360iDev

PROJECT  ON  SCHEDULE:  WATCH  FOR  FALLING  

IQs

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

Good Plans Document Scope

2014@CARLBRWN

#360iDev

When This Happens

It’s Time to Adjust

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

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

Along

AND  YOU  DIDN’T  EVEN  HAVE  TO    SACRIFICE  A  CHICKEN

ALTHOUGH  IT  COULDN’T  

HURT  TO  TRY

Carl Brown

Book: AppAccomplished.com Twitter: @CarlBrwn Email: CarlB@PDAgent.com

2014@CARLBRWN

#360iDev

Thank You

Carl Brown

Book: AppAccomplished.com Twitter: @CarlBrwn Email: CarlB@PDAgent.com

2014@CARLBRWN

#360iDev

Thank You