SlideShare a Scribd company logo
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

More Related Content

What's hot

Agile Estimating & Planning by Amaad Qureshi
Agile Estimating & Planning by Amaad QureshiAgile Estimating & Planning by Amaad Qureshi
Agile Estimating & Planning by Amaad Qureshi
Amaad Qureshi
 
Agile planning
Agile planningAgile planning
Agile planning
Kshitij Agrawal
 
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
TechWell
 
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 Projects
Ram Srivastava
 
Basics of Agile
Basics of Agile Basics of Agile
Basics of Agile
Namrata Datta
 
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 problem
Dejan 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 Trenches
Marcio 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 planning
James Whitehead
 
Agile Outside Software
Agile Outside SoftwareAgile Outside Software
Agile Outside Software
allan kelly
 
Limiting WIP - Music City Tech 2021
Limiting WIP - Music City Tech 2021Limiting WIP - Music City Tech 2021
Limiting WIP - Music City Tech 2021
Wm. Hunter Tammaro
 
Monte Carlo presentation for FM
Monte Carlo presentation for FMMonte Carlo presentation for FM
Monte Carlo presentation for FM
Wm. Hunter Tammaro
 
Tools for better storytelling
Tools for better storytellingTools for better storytelling
Tools for better storytelling
Atlassian
 
Agile Planning
Agile PlanningAgile Planning
Agile Planning
Robert Dempsey
 
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
MaRS Discovery District
 
Building Culture In Remote Teams
Building Culture In Remote TeamsBuilding Culture In Remote Teams
Building Culture In Remote Teams
Michael Overell
 
Flow, the Universe and Everything
Flow, the Universe and EverythingFlow, the Universe and Everything
Flow, the Universe and Everything
Clint Edmonson
 
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
India Scrum Enthusiasts Community
 

What's hot (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
 

Viewers also liked

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
Jonathon Hill
 
Travel Ticker 2010
Travel Ticker 2010Travel Ticker 2010
Travel Ticker 2010
kperalta
 
Barrier Electric Commercial Solar
Barrier Electric Commercial SolarBarrier Electric Commercial Solar
Barrier Electric Commercial Solar
SolarAndy67
 
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 Airport
Matthew Willey
 
Guy Stephenson - Gatwick Airport
Guy Stephenson - Gatwick AirportGuy Stephenson - Gatwick Airport
Guy Stephenson - Gatwick Airport
Matthew Willey
 
Sanjay Khanna - Mumbai International Airport Limited
Sanjay Khanna - Mumbai International Airport LimitedSanjay Khanna - Mumbai International Airport Limited
Sanjay Khanna - Mumbai International Airport Limited
Matthew Willey
 
Nicola Wells - Aer Rianta International
Nicola Wells - Aer Rianta InternationalNicola Wells - Aer Rianta International
Nicola Wells - Aer Rianta International
Matthew Willey
 
Francis Gros - Luxottica
Francis Gros - LuxotticaFrancis Gros - Luxottica
Francis Gros - Luxottica
Matthew Willey
 
Cissy Chan - HKIA
Cissy Chan - HKIACissy Chan - HKIA
Cissy Chan - HKIA
Matthew Willey
 
Multi-tasking in PHP
Multi-tasking in PHPMulti-tasking in PHP
Multi-tasking in PHP
Jonathon 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 Limited
Matthew Willey
 
Julian Diaz - Dufry
Julian Diaz - DufryJulian Diaz - Dufry
Julian Diaz - Dufry
Matthew Willey
 
Debates foro humanismo tercero A
Debates foro humanismo tercero ADebates foro humanismo tercero A
Debates foro humanismo tercero A
Martín De La Ravanal
 
Debates foro humanismo
Debates foro humanismoDebates foro humanismo
Debates foro humanismo
Martín De La Ravanal
 
Qué es el amor
Qué es el amorQué es el amor
Qué es el amor
Martín De La Ravanal
 

Viewers also liked (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
 

Similar to 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 Agency
Kara Hansen
 
Eric Naiburg (Scrum.org)
Eric Naiburg (Scrum.org)Eric Naiburg (Scrum.org)
Eric Naiburg (Scrum.org)
AgileNZ Conference
 
The Kanban Retrospective
The Kanban RetrospectiveThe Kanban Retrospective
The Kanban Retrospective
Colleen 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 1
Cprime
 
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
Munish Malik
 
Time management
Time managementTime management
Time management
Dibyajyoti Laha
 
Agile Methodologies
Agile MethodologiesAgile Methodologies
Agile Methodologies
Gurdeep Singh
 
Introduction to agile and scrum
Introduction to agile and scrumIntroduction to agile and scrum
Introduction to agile and scrum
Anat (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 Management
Hannah 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 Management
Aggregage
 
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
XebiaLabs
 
The Dashlane Agile Journey
The Dashlane Agile JourneyThe Dashlane Agile Journey
The Dashlane Agile Journey
Dashlane
 
Managing Work
Managing WorkManaging Work
Managing Work
Jez Humble
 
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
Liandra Bassiane
 
SCRUM Intro
SCRUM IntroSCRUM Intro
SCRUM Intro
Bermon Painter
 
The art of execution
The art of executionThe art of execution
The art of execution
Crystal Taggart
 
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-CPA
LeanAgileTraining
 
Scrum training day 1
Scrum training day 1Scrum training day 1
Scrum training day 1
Elad 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 learned
Kacper Gunia
 

Similar to 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
 

Recently uploaded

How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
Rakesh Kumar R
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
What is Augmented Reality Image Tracking
What is Augmented Reality Image TrackingWhat is Augmented Reality Image Tracking
What is Augmented Reality Image Tracking
pavan998932
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise EditionWhy Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Envertis Software Solutions
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
SOCRadar
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
Gerardo Pardo-Castellote
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 

Recently uploaded (20)

How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
What is Augmented Reality Image Tracking
What is Augmented Reality Image TrackingWhat is Augmented Reality Image Tracking
What is Augmented Reality Image Tracking
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise EditionWhy Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 

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

Editor's Notes

  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