The Dark Art of Software Project Estimation Carl Brown 360iDev 2014 2014 @CARLBRWN #360iDev
Dec 06, 2014
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: [email protected]
2014@CARLBRWN
#360iDev
Thank You
Carl Brown
Book: AppAccomplished.com Twitter: @CarlBrwn Email: [email protected]
2014@CARLBRWN
#360iDev
Thank You