SlideShare une entreprise Scribd logo
1  sur  75
ESTIMATION 
PROTIPS 
JONATHON HILL 
NCDEVCON, SEPT. 2014
BACKGROUND 
• Self-taught 
• 5+ years of full-time development 
• Former CTO for a small web startup 
• Former Director of Development for 
a digital marketing agency 
• AtlantaPHP Steering Committee
I DID IT WRONG
PROTIP #1: 
ESTIMATES ARE 
NOT PROMISES
(N) ES-TIM-ATE: 
An attempt to quantify something in 
the face of the unknown. 
By definition, estimates are imprecise 
and tentative, versus
“GOOD” ESTIMATE 
A good estimation approach should 
provide estimates that are within 25% 
of the actual results 75% of the time. 
Conte, Dunsmore, and Shen (1986)
CERTAINTY 
Sadly, people asking for control or 
visibility really want certainty. 
Which doesn’t exist. 
Dan North 
https://twitter.com/tastapod/status/116271851767992320
DISTINCTIONS 
Target: a stated desirable business 
objective 
Commitment: a promise to deliver a 
specific product within a specific 
timeframe
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
PROTIP #2: 
YOUR GUT LIES
HEAVIEST BLUE WHALE EVER RECORDED 
380,000 LBS
REALISTIC?
BOOK 
RECOMMENDATION
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
WHY?
IT’LL BE DIFFERENT 
THIS TIME!
THE PLANNING FALLACY 
Students estimated their senior thesis 
completion time in a 1994 study: 
27.4 
33.9 
48.6 
55.5 
60 
50 
40 
30 
20 
10 
0 
Best Case 
Expected Case 
Worst Case 
Actual 
Source: Wikipedia
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
TIME FRAMES 
Can it be done in… 
• 5 minutes? 
• 1 hour? 
• 1-2 days? 
• 1 week?
PROTIP #3: 
PREMATURE 
ESTIMATION IS 
SABOTAGE
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
CONE OF UNCERTAINTY
OVERESTIMATION 
• Inflated prices – might lose the job 
• Lack of urgency – project time fills 
up the estimate when it could have 
been done faster 
• Procrastination
UNDERESTIMATION 
• Inadequate planning 
• Missed deadlines 
• Overwork, burnout 
• More bugs 
• Technical debt 
• Damage control 
• Unplanned interim releases 
• Meetings proliferate
IS IT USEFUL? 
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
PROTIP #4: 
BIG TEAMS ARE 
SLOWER THAN 
SMALL ONES
TIME 
= 
ESTIMATE 
÷ 
AVAILABILITY
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
PROTIP #5: 
BEWARE 
UNWARRANTED 
PRECISION
“533.5 hours” 
vs 
“13 workdays” 
vs 
“3 weeks”
PROTIP #6: 
COUNT ALL THE 
THINGS!
TIME FRAMES 
Can it be done in… 
• 5 minutes? 
• 1 hour? 
• 1-2 days? 
• 1 week?
DECOMPOSITION AND 
RECOMPOSITION 
1. List all the features 
2. Break the features into sub-features 
3. Break the sub-features into 
components 
4. Estimate the components 
5. Add the estimates up
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.
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
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
PROTIP #7: 
WHEN IN A 
PINCH, USE A 
PROXY
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
PROS 
• Easier 
• Faster
CONS 
• Less accurate 
• Requires collection and archival of 
project historical data on a per-feature 
basis
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
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
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
EXAMPLE 
Feature Business Value Dev Cost 
Feature A L S 
Feature B S L 
Feature C L L 
Feature D M M 
Feature E M L
VALUE TO COST RATIOS 
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 
Business Value
BIZ VALUE EXAMPLE 
Feature Business 
Value 
Dev Cost Net Value 
Feature A L S 3 
Feature C L L 0 
Feature D M M 0 
Feature E M L -2 
Feature B S L -3
PROTIP #8: 
YOU CAN’T 
NEGOTIATE MATH
PROBLEM SOLVING 
When the estimate and target conflict: 
• Negotiate features 
• Negotiate time 
• Negotiate price
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
QUESTIONS?
ONE FINAL WORD 
A HORROR STORY
THE SETTING 
• Former employer of mine 
• Start-up, naïve and inexperienced 
• Needed cash bad
THE CLIENT 
• Small company in Atlanta 
• Four separate disconnected 
systems 
• Wanted web-based workflow 
consolidation 
• Wanted online ordering and 
payments
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
THE FALLOUT 
• 18 months later… 
• 2,500 man-hours 
• 1,500+ Subversion commits 
• Lots of “unknown unknowns”, 
hidden complexities, and scope 
creep
THE MORAL 
• Don’t succumb to optimism or 
planning bias 
• Use a good estimation methodology 
• Try not to do fixed bidding 
• Always have a thorough scope 
before starting
ESTIMATION PROTIPS 
1. Estimates are not promises 
2. Your gut lies 
3. Premature estimation is sabotage 
4. Big teams are slower than small ones 
5. Beware unwarranted precision 
6. Count all the things! 
7. When in a pinch, use a proxy 
8. You can’t negotiate math
JonathonHill.net 
@compwright 
Book Recommendation: 
Software Estimation: 
Demystifying the Black Art 
by Steve McConnell

Contenu connexe

Tendances

Agile Estimating & Planning by Amaad Qureshi
Agile Estimating & Planning by Amaad QureshiAgile Estimating & Planning by Amaad Qureshi
Agile Estimating & Planning by Amaad QureshiAmaad Qureshi
 
Twelve Risks to Enterprise Software Projects—And What to Do about Them
Twelve Risks to Enterprise Software Projects—And What to Do about ThemTwelve Risks to Enterprise Software Projects—And What to Do about Them
Twelve Risks to Enterprise Software Projects—And What to Do about ThemTechWell
 
Xanpan - What do you get if you cross XP and Kanban?
Xanpan - What do you get if you cross XP and Kanban?Xanpan - What do you get if you cross XP and Kanban?
Xanpan - What do you get if you cross XP and Kanban?allan kelly
 
Estimation Agile Projects
Estimation Agile ProjectsEstimation Agile Projects
Estimation Agile ProjectsRam Srivastava
 
Cutting Through the Noise: Breaking Down Hierarchical Communication Channels ...
Cutting Through the Noise: Breaking Down Hierarchical Communication Channels ...Cutting Through the Noise: Breaking Down Hierarchical Communication Channels ...
Cutting Through the Noise: Breaking Down Hierarchical Communication Channels ...Atlassian
 
Initial sprint velocity problem
Initial sprint velocity problemInitial sprint velocity problem
Initial sprint velocity problemDejan Radic
 
Agile Australia 2017 - Memories from the Trenches
Agile Australia 2017 - Memories from the TrenchesAgile Australia 2017 - Memories from the Trenches
Agile Australia 2017 - Memories from the TrenchesMarcio Sete
 
How To Build Scrum Task Boards that Radiate Information
How To Build Scrum Task Boards that Radiate Information How To Build Scrum Task Boards that Radiate Information
How To Build Scrum Task Boards that Radiate Information mikedep01
 
An introduction to agile estimation and release planning
An introduction to agile estimation and release planningAn introduction to agile estimation and release planning
An introduction to agile estimation and release planningJames Whitehead
 
Agile Outside Software
Agile Outside SoftwareAgile Outside Software
Agile Outside Softwareallan kelly
 
Limiting WIP - Music City Tech 2021
Limiting WIP - Music City Tech 2021Limiting WIP - Music City Tech 2021
Limiting WIP - Music City Tech 2021Wm. Hunter Tammaro
 
Monte Carlo presentation for FM
Monte Carlo presentation for FMMonte Carlo presentation for FM
Monte Carlo presentation for FMWm. Hunter Tammaro
 
Tools for better storytelling
Tools for better storytellingTools for better storytelling
Tools for better storytellingAtlassian
 
Building a Software Development Team - MaRS Best Practices
Building a Software Development Team - MaRS Best PracticesBuilding a Software Development Team - MaRS Best Practices
Building a Software Development Team - MaRS Best PracticesMaRS Discovery District
 
Building Culture In Remote Teams
Building Culture In Remote TeamsBuilding Culture In Remote Teams
Building Culture In Remote TeamsMichael Overell
 
Flow, the Universe and Everything
Flow, the Universe and EverythingFlow, the Universe and Everything
Flow, the Universe and EverythingClint Edmonson
 

Tendances (20)

Agile Estimating & Planning by Amaad Qureshi
Agile Estimating & Planning by Amaad QureshiAgile Estimating & Planning by Amaad Qureshi
Agile Estimating & Planning by Amaad Qureshi
 
Agile planning
Agile planningAgile planning
Agile planning
 
Twelve Risks to Enterprise Software Projects—And What to Do about Them
Twelve Risks to Enterprise Software Projects—And What to Do about ThemTwelve Risks to Enterprise Software Projects—And What to Do about Them
Twelve Risks to Enterprise Software Projects—And What to Do about Them
 
Xanpan - What do you get if you cross XP and Kanban?
Xanpan - What do you get if you cross XP and Kanban?Xanpan - What do you get if you cross XP and Kanban?
Xanpan - What do you get if you cross XP and Kanban?
 
Estimation Agile Projects
Estimation Agile ProjectsEstimation Agile Projects
Estimation Agile Projects
 
Basics of Agile
Basics of Agile Basics of Agile
Basics of Agile
 
Cutting Through the Noise: Breaking Down Hierarchical Communication Channels ...
Cutting Through the Noise: Breaking Down Hierarchical Communication Channels ...Cutting Through the Noise: Breaking Down Hierarchical Communication Channels ...
Cutting Through the Noise: Breaking Down Hierarchical Communication Channels ...
 
Initial sprint velocity problem
Initial sprint velocity problemInitial sprint velocity problem
Initial sprint velocity problem
 
Agile Australia 2017 - Memories from the Trenches
Agile Australia 2017 - Memories from the TrenchesAgile Australia 2017 - Memories from the Trenches
Agile Australia 2017 - Memories from the Trenches
 
How To Build Scrum Task Boards that Radiate Information
How To Build Scrum Task Boards that Radiate Information How To Build Scrum Task Boards that Radiate Information
How To Build Scrum Task Boards that Radiate Information
 
An introduction to agile estimation and release planning
An introduction to agile estimation and release planningAn introduction to agile estimation and release planning
An introduction to agile estimation and release planning
 
Agile Outside Software
Agile Outside SoftwareAgile Outside Software
Agile Outside Software
 
Limiting WIP - Music City Tech 2021
Limiting WIP - Music City Tech 2021Limiting WIP - Music City Tech 2021
Limiting WIP - Music City Tech 2021
 
Monte Carlo presentation for FM
Monte Carlo presentation for FMMonte Carlo presentation for FM
Monte Carlo presentation for FM
 
Tools for better storytelling
Tools for better storytellingTools for better storytelling
Tools for better storytelling
 
Agile Planning
Agile PlanningAgile Planning
Agile Planning
 
Building a Software Development Team - MaRS Best Practices
Building a Software Development Team - MaRS Best PracticesBuilding a Software Development Team - MaRS Best Practices
Building a Software Development Team - MaRS Best Practices
 
Building Culture In Remote Teams
Building Culture In Remote TeamsBuilding Culture In Remote Teams
Building Culture In Remote Teams
 
Flow, the Universe and Everything
Flow, the Universe and EverythingFlow, the Universe and Everything
Flow, the Universe and Everything
 
Madhur Kathuria Release planning using feature points
Madhur Kathuria Release planning using feature pointsMadhur Kathuria Release planning using feature points
Madhur Kathuria Release planning using feature points
 

En vedette

Building for success and failure with Disqus
Building for success and failure with DisqusBuilding for success and failure with Disqus
Building for success and failure with DisqusJonathon Hill
 
Travel Ticker 2010
Travel Ticker 2010Travel Ticker 2010
Travel Ticker 2010kperalta
 
Barrier Electric Commercial Solar
Barrier Electric Commercial SolarBarrier Electric Commercial Solar
Barrier Electric Commercial SolarSolarAndy67
 
smart & tech clothing, is the future near?
smart & tech clothing, is the future near?smart & tech clothing, is the future near?
smart & tech clothing, is the future near?Cecilia Rocha
 
Amazon: deal or debacle?
Amazon: deal or debacle?Amazon: deal or debacle?
Amazon: deal or debacle?Jonathon Hill
 
Wolfgang Weil - Xi’an Xianyang International Airport
Wolfgang Weil - Xi’an Xianyang International AirportWolfgang Weil - Xi’an Xianyang International Airport
Wolfgang Weil - Xi’an Xianyang International AirportMatthew Willey
 
Guy Stephenson - Gatwick Airport
Guy Stephenson - Gatwick AirportGuy Stephenson - Gatwick Airport
Guy Stephenson - Gatwick AirportMatthew Willey
 
Sanjay Khanna - Mumbai International Airport Limited
Sanjay Khanna - Mumbai International Airport LimitedSanjay Khanna - Mumbai International Airport Limited
Sanjay Khanna - Mumbai International Airport LimitedMatthew Willey
 
Nicola Wells - Aer Rianta International
Nicola Wells - Aer Rianta InternationalNicola Wells - Aer Rianta International
Nicola Wells - Aer Rianta InternationalMatthew Willey
 
Francis Gros - Luxottica
Francis Gros - LuxotticaFrancis Gros - Luxottica
Francis Gros - LuxotticaMatthew Willey
 
Multi-tasking in PHP
Multi-tasking in PHPMulti-tasking in PHP
Multi-tasking in PHPJonathon Hill
 
Sang J. Ahn - Bangalore International Airport Limited
Sang J. Ahn - Bangalore International Airport LimitedSang J. Ahn - Bangalore International Airport Limited
Sang J. Ahn - Bangalore International Airport LimitedMatthew Willey
 

En vedette (17)

Building for success and failure with Disqus
Building for success and failure with DisqusBuilding for success and failure with Disqus
Building for success and failure with Disqus
 
Travel Ticker 2010
Travel Ticker 2010Travel Ticker 2010
Travel Ticker 2010
 
Barrier Electric Commercial Solar
Barrier Electric Commercial SolarBarrier Electric Commercial Solar
Barrier Electric Commercial Solar
 
smart & tech clothing, is the future near?
smart & tech clothing, is the future near?smart & tech clothing, is the future near?
smart & tech clothing, is the future near?
 
Amazon: deal or debacle?
Amazon: deal or debacle?Amazon: deal or debacle?
Amazon: deal or debacle?
 
Wolfgang Weil - Xi’an Xianyang International Airport
Wolfgang Weil - Xi’an Xianyang International AirportWolfgang Weil - Xi’an Xianyang International Airport
Wolfgang Weil - Xi’an Xianyang International Airport
 
Guy Stephenson - Gatwick Airport
Guy Stephenson - Gatwick AirportGuy Stephenson - Gatwick Airport
Guy Stephenson - Gatwick Airport
 
Sanjay Khanna - Mumbai International Airport Limited
Sanjay Khanna - Mumbai International Airport LimitedSanjay Khanna - Mumbai International Airport Limited
Sanjay Khanna - Mumbai International Airport Limited
 
Nicola Wells - Aer Rianta International
Nicola Wells - Aer Rianta InternationalNicola Wells - Aer Rianta International
Nicola Wells - Aer Rianta International
 
Francis Gros - Luxottica
Francis Gros - LuxotticaFrancis Gros - Luxottica
Francis Gros - Luxottica
 
Cissy Chan - HKIA
Cissy Chan - HKIACissy Chan - HKIA
Cissy Chan - HKIA
 
Multi-tasking in PHP
Multi-tasking in PHPMulti-tasking in PHP
Multi-tasking in PHP
 
Sang J. Ahn - Bangalore International Airport Limited
Sang J. Ahn - Bangalore International Airport LimitedSang J. Ahn - Bangalore International Airport Limited
Sang J. Ahn - Bangalore International Airport Limited
 
Julian Diaz - Dufry
Julian Diaz - DufryJulian Diaz - Dufry
Julian Diaz - Dufry
 
Debates foro humanismo tercero A
Debates foro humanismo tercero ADebates foro humanismo tercero A
Debates foro humanismo tercero A
 
Debates foro humanismo
Debates foro humanismoDebates foro humanismo
Debates foro humanismo
 
Qué es el amor
Qué es el amorQué es el amor
Qué es el amor
 

Similaire à Estimation Protips - NCDevCon 2014

Scoping and Estimating WordPress Projects as an Agency
Scoping and Estimating WordPress Projects as an AgencyScoping and Estimating WordPress Projects as an Agency
Scoping and Estimating WordPress Projects as an AgencyKara Hansen
 
The Kanban Retrospective
The Kanban RetrospectiveThe Kanban Retrospective
The Kanban RetrospectiveColleen Johnson
 
Optimize Portfolio Performance with Simple Agile Techniques and Jira - Part 1
Optimize Portfolio Performance with Simple Agile Techniques and Jira - Part 1Optimize Portfolio Performance with Simple Agile Techniques and Jira - Part 1
Optimize Portfolio Performance with Simple Agile Techniques and Jira - Part 1Cprime
 
Measure what matters for your agile project
Measure what matters for your agile projectMeasure what matters for your agile project
Measure what matters for your agile projectMunish Malik
 
Introduction to agile and scrum
Introduction to agile and scrumIntroduction to agile and scrum
Introduction to agile and scrumAnat (Alon) Salhov
 
Analytics in Action: Project Analytics: Visibility that Aids Risk Management
Analytics in Action: Project Analytics: Visibility that Aids Risk ManagementAnalytics in Action: Project Analytics: Visibility that Aids Risk Management
Analytics in Action: Project Analytics: Visibility that Aids Risk ManagementHannah Flynn
 
Project Analytics: Visibility that Aids Risk Management
Project Analytics: Visibility that Aids Risk ManagementProject Analytics: Visibility that Aids Risk Management
Project Analytics: Visibility that Aids Risk ManagementAggregage
 
The Business Case for DevOps - Justifying the Journey
The Business Case for DevOps - Justifying the JourneyThe Business Case for DevOps - Justifying the Journey
The Business Case for DevOps - Justifying the JourneyXebiaLabs
 
The Dashlane Agile Journey
The Dashlane Agile JourneyThe Dashlane Agile Journey
The Dashlane Agile JourneyDashlane
 
Retrospective and different ways to run it
Retrospective and different ways to run itRetrospective and different ways to run it
Retrospective and different ways to run itLiandra Bassiane
 
Chapter 5,6,7 (group 1 project man)
Chapter 5,6,7 (group 1 project man)Chapter 5,6,7 (group 1 project man)
Chapter 5,6,7 (group 1 project man)Arvin Dela Cruz
 
Short Intro to Agile-Scrum for NCA-CPA
Short Intro to Agile-Scrum for NCA-CPAShort Intro to Agile-Scrum for NCA-CPA
Short Intro to Agile-Scrum for NCA-CPALeanAgileTraining
 
Scrum training day 1
Scrum training day 1Scrum training day 1
Scrum training day 1Elad Sofer
 
Rebuilding Legacy Apps with Domain-Driven Design - Lessons learned
Rebuilding Legacy Apps with Domain-Driven Design - Lessons learnedRebuilding Legacy Apps with Domain-Driven Design - Lessons learned
Rebuilding Legacy Apps with Domain-Driven Design - Lessons learnedKacper Gunia
 

Similaire à Estimation Protips - NCDevCon 2014 (20)

Scoping and Estimating WordPress Projects as an Agency
Scoping and Estimating WordPress Projects as an AgencyScoping and Estimating WordPress Projects as an Agency
Scoping and Estimating WordPress Projects as an Agency
 
Eric Naiburg (Scrum.org)
Eric Naiburg (Scrum.org)Eric Naiburg (Scrum.org)
Eric Naiburg (Scrum.org)
 
The Kanban Retrospective
The Kanban RetrospectiveThe Kanban Retrospective
The Kanban Retrospective
 
Optimize Portfolio Performance with Simple Agile Techniques and Jira - Part 1
Optimize Portfolio Performance with Simple Agile Techniques and Jira - Part 1Optimize Portfolio Performance with Simple Agile Techniques and Jira - Part 1
Optimize Portfolio Performance with Simple Agile Techniques and Jira - Part 1
 
Measure what matters for your agile project
Measure what matters for your agile projectMeasure what matters for your agile project
Measure what matters for your agile project
 
Time management
Time managementTime management
Time management
 
Agile Methodologies
Agile MethodologiesAgile Methodologies
Agile Methodologies
 
Introduction to agile and scrum
Introduction to agile and scrumIntroduction to agile and scrum
Introduction to agile and scrum
 
Analytics in Action: Project Analytics: Visibility that Aids Risk Management
Analytics in Action: Project Analytics: Visibility that Aids Risk ManagementAnalytics in Action: Project Analytics: Visibility that Aids Risk Management
Analytics in Action: Project Analytics: Visibility that Aids Risk Management
 
Project Analytics: Visibility that Aids Risk Management
Project Analytics: Visibility that Aids Risk ManagementProject Analytics: Visibility that Aids Risk Management
Project Analytics: Visibility that Aids Risk Management
 
The Business Case for DevOps - Justifying the Journey
The Business Case for DevOps - Justifying the JourneyThe Business Case for DevOps - Justifying the Journey
The Business Case for DevOps - Justifying the Journey
 
The Dashlane Agile Journey
The Dashlane Agile JourneyThe Dashlane Agile Journey
The Dashlane Agile Journey
 
Managing Work
Managing WorkManaging Work
Managing Work
 
Retrospective and different ways to run it
Retrospective and different ways to run itRetrospective and different ways to run it
Retrospective and different ways to run it
 
SCRUM Intro
SCRUM IntroSCRUM Intro
SCRUM Intro
 
The art of execution
The art of executionThe art of execution
The art of execution
 
Chapter 5,6,7 (group 1 project man)
Chapter 5,6,7 (group 1 project man)Chapter 5,6,7 (group 1 project man)
Chapter 5,6,7 (group 1 project man)
 
Short Intro to Agile-Scrum for NCA-CPA
Short Intro to Agile-Scrum for NCA-CPAShort Intro to Agile-Scrum for NCA-CPA
Short Intro to Agile-Scrum for NCA-CPA
 
Scrum training day 1
Scrum training day 1Scrum training day 1
Scrum training day 1
 
Rebuilding Legacy Apps with Domain-Driven Design - Lessons learned
Rebuilding Legacy Apps with Domain-Driven Design - Lessons learnedRebuilding Legacy Apps with Domain-Driven Design - Lessons learned
Rebuilding Legacy Apps with Domain-Driven Design - Lessons learned
 

Dernier

Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 

Dernier (20)

Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 

Estimation Protips - NCDevCon 2014

  • 1. ESTIMATION PROTIPS JONATHON HILL NCDEVCON, SEPT. 2014
  • 2. BACKGROUND • Self-taught • 5+ years of full-time development • Former CTO for a small web startup • Former Director of Development for a digital marketing agency • AtlantaPHP Steering Committee
  • 3.
  • 4.
  • 5.
  • 6. I DID IT WRONG
  • 7. PROTIP #1: ESTIMATES ARE NOT PROMISES
  • 8. (N) ES-TIM-ATE: An attempt to quantify something in the face of the unknown. By definition, estimates are imprecise and tentative, versus
  • 9. “GOOD” ESTIMATE A good estimation approach should provide estimates that are within 25% of the actual results 75% of the time. Conte, Dunsmore, and Shen (1986)
  • 10. CERTAINTY Sadly, people asking for control or visibility really want certainty. Which doesn’t exist. Dan North https://twitter.com/tastapod/status/116271851767992320
  • 11. DISTINCTIONS Target: a stated desirable business objective Commitment: a promise to deliver a specific product within a specific timeframe
  • 12.
  • 13. 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
  • 14. PROTIP #2: YOUR GUT LIES
  • 15.
  • 16. HEAVIEST BLUE WHALE EVER RECORDED 380,000 LBS
  • 19. 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
  • 20. WHY?
  • 21.
  • 22. IT’LL BE DIFFERENT THIS TIME!
  • 23. THE PLANNING FALLACY Students estimated their senior thesis completion time in a 1994 study: 27.4 33.9 48.6 55.5 60 50 40 30 20 10 0 Best Case Expected Case Worst Case Actual Source: Wikipedia
  • 24.
  • 25. 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
  • 26. TIME FRAMES Can it be done in… • 5 minutes? • 1 hour? • 1-2 days? • 1 week?
  • 27. PROTIP #3: PREMATURE ESTIMATION IS SABOTAGE
  • 28. 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
  • 30. OVERESTIMATION • Inflated prices – might lose the job • Lack of urgency – project time fills up the estimate when it could have been done faster • Procrastination
  • 31. UNDERESTIMATION • Inadequate planning • Missed deadlines • Overwork, burnout • More bugs • Technical debt • Damage control • Unplanned interim releases • Meetings proliferate
  • 32.
  • 33. IS IT USEFUL? 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
  • 34. PROTIP #4: BIG TEAMS ARE SLOWER THAN SMALL ONES
  • 35.
  • 36. TIME = ESTIMATE ÷ AVAILABILITY
  • 37.
  • 38.
  • 39.
  • 40.
  • 41. 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
  • 42. PROTIP #5: BEWARE UNWARRANTED PRECISION
  • 43. “533.5 hours” vs “13 workdays” vs “3 weeks”
  • 44.
  • 45. PROTIP #6: COUNT ALL THE THINGS!
  • 46. TIME FRAMES Can it be done in… • 5 minutes? • 1 hour? • 1-2 days? • 1 week?
  • 47. DECOMPOSITION AND RECOMPOSITION 1. List all the features 2. Break the features into sub-features 3. Break the sub-features into components 4. Estimate the components 5. Add the estimates up
  • 48. 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.
  • 49. 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
  • 50. 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
  • 51.
  • 52. PROTIP #7: WHEN IN A PINCH, USE A PROXY
  • 53. 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
  • 54. PROS • Easier • Faster
  • 55. CONS • Less accurate • Requires collection and archival of project historical data on a per-feature basis
  • 56. 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
  • 57. 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
  • 58.
  • 59. 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
  • 60. EXAMPLE Feature Business Value Dev Cost Feature A L S Feature B S L Feature C L L Feature D M M Feature E M L
  • 61. VALUE TO COST RATIOS 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 Business Value
  • 62. BIZ VALUE EXAMPLE Feature Business Value Dev Cost Net Value Feature A L S 3 Feature C L L 0 Feature D M M 0 Feature E M L -2 Feature B S L -3
  • 63. PROTIP #8: YOU CAN’T NEGOTIATE MATH
  • 64.
  • 65. PROBLEM SOLVING When the estimate and target conflict: • Negotiate features • Negotiate time • Negotiate price
  • 66. 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
  • 68. ONE FINAL WORD A HORROR STORY
  • 69. THE SETTING • Former employer of mine • Start-up, naïve and inexperienced • Needed cash bad
  • 70. THE CLIENT • Small company in Atlanta • Four separate disconnected systems • Wanted web-based workflow consolidation • Wanted online ordering and payments
  • 71. 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
  • 72. THE FALLOUT • 18 months later… • 2,500 man-hours • 1,500+ Subversion commits • Lots of “unknown unknowns”, hidden complexities, and scope creep
  • 73. THE MORAL • Don’t succumb to optimism or planning bias • Use a good estimation methodology • Try not to do fixed bidding • Always have a thorough scope before starting
  • 74. ESTIMATION PROTIPS 1. Estimates are not promises 2. Your gut lies 3. Premature estimation is sabotage 4. Big teams are slower than small ones 5. Beware unwarranted precision 6. Count all the things! 7. When in a pinch, use a proxy 8. You can’t negotiate math
  • 75. JonathonHill.net @compwright Book Recommendation: Software Estimation: Demystifying the Black Art by Steve McConnell

Notes de l'éditeur

  1. Dan North sez…
  2. Targets: “We need v2.1 ready to demo at a trade show in May.” “Our budget is $2mm, we must limit the cost of the next release to that budget.”
  3. Here’s the problem: estimates and targets often collide. Good estimates are probability statements based on what is known about the project and available resources, and targets are specific business objects that are sometimes quite solid. At Brandmovers, if we’re building a promotion to help generate buzz and excitement for the next Avengers movie, and that movie launches on a particular date, it isn’t really an option to delay launching the promotion if the project runs over. So if an estimate isn’t a promise, what is a good estimate?
  4. Ever been asked for a “gut estimate?” It’s not at all uncommon to be asked to estimate something about which you have next to no knowledge. To illustrate the point, I’d like to do a little exercise.
  5. I’d like you to estimate the weight, in pounds, of the heaviest blue whale ever recorded. No cheating, don’t Google it. Give a high and a low estimate. Here’s the catch: I want you to estimate this with a wide enough range so that you are 90% confident that the correct answer is in the range that you set. You’ve got one minute. Go.
  6. Now, I’d like to get a show of hands of how many of you captured the correct answer in your range. Almost everyone gets this wrong.
  7. You might be thinking, “c’mon, this is not a realistic exercise.” Folks, estimating in the face of this kind of uncertainty is business as usual for software estimators. Fortunately, there are techniques that will help you get within 25% of the actual number 75% of the time. The other takeaway here is unless you are into statistics and you have have a mathematical reason for saying so, don’t use terms like “90% confident” or “75% confident.”
  8. Before we go any further, I’d like to share a book recommendation. The exercise we just did comes from chapter 2 of the book Software Estimation, by Steve McConnell. Steve is a former Microsoft employee and also authored the book Code Complete. Software Estimation is pretty much required reading for anyone who is responsible for estimating software projects. This book really helped me to understand why good estimation practices work, and what I had been doing wrong for years before.
  9. Hofstadter’s Law illustrates why estimation is so hard, and why so many people get it wrong. In fact, the difficulties with producing even a ballpark estimate and the the tendency to misunderstand and abuse estimation have led some to seek workflows which eliminate estimation altogether. Some agile methodologies do this. Sadly, the dynamics and business models of many companies do not allow such a luxury.
  10. We’ve talked about a lot of theory, what estimates are, what they’re good for. Now let’s talk about some practical methodology.
  11. Remember Rob Bowley’s timeframes?
  12. This is the underlying idea behind estimation by decomposition. Essentially, you break down the project features, and then you break down those sub-features down even further to the individual components that must be built. Estimate each component, and sum the individual estimates to produce the overall estimate.
  13. There are a few different ways to do this. The first way was pretty hard for me to swallow at first. I learned it from Paul Jones and in practice it works very well. This method includes front-end, back-end, and QA time built in and was created based on his personal observations from working on many different projects. Notice the large unit of measure (1 day), and the fact that it assumes two people will be pair programming. I never understood why this method worked so well until I learned about the law of large numbers. Simple methods are often quite effective! It doesn’t take complex mathematics or estimation modeling software to produce a useful estimate. A spreadsheet and a good method are all you need.
  14. Had four separate systems in place for managing customer data, billing, inventory, and fulfillment
  15. Did I mention we needed the money?
  16. $25-30/hr effectively