SlideShare a Scribd company logo

Stop multiplying by 4: Practical Software Estimation

Chuck Reeves
Chuck Reeves
Chuck ReevesPHP Developer at Freelancer

Many developers are often asked by project owners to give time estimates for features or bug fixes. But how many developers have the ability to provide project owners a reasonable estimate? Many developers will just follow irrational formulas or arbitrary methods to create a number that is not only wrong, but costly. "Stop Multiplying by 4" will teach developers of all skill levels easy techniques to provide accurate estimations. We will start with a small calibration exercise to find out how good you are. We will then go over procedures to improve accuracy . At the end of the talk, you will possess the skills to get you started on improving the certainty of your estimates.

Stop multiplying by 4: Practical Software Estimation

1 of 29
Download to read offline
Stop Multiplying by 4
Practical software estimation
Chuck Reeves @manchuck
About Me
Why even estimate?
Why should developers estimate?
I'll tell you how I estimate things. I sit down and figure out how long I think
it would take me to do it. Then I double that time and then I push it up to
the next point on the “Time Progression Scale”. Were the “Time Progress
Scale” starts off: seconds, minuets, hours and days. So if I think
something is going to take me 4 hours to do. I will double it to 8 and then I
would say it would take me 8 days to get it all completely done start to
finish. And I'm usually right, because there are so many impediments. If
you are the only one doing it yourself your schedule can be very accurate.
Once you have to involve other people, you might as well just make
numbers up. You might as well say “I think this will take me Blue days to
get done”
Stop multiplying by 4: Practical Software Estimation
Requirements were the key
Measure what is measurable, but make measurable what is not so
-Galileo Galilei
Ad

Recommended

Stop multiplying by 4 PHP Tour 2014
Stop multiplying by 4 PHP Tour 2014Stop multiplying by 4 PHP Tour 2014
Stop multiplying by 4 PHP Tour 2014Chuck Reeves
 
Stop multiplying by 4 Laracon
Stop multiplying by 4 LaraconStop multiplying by 4 Laracon
Stop multiplying by 4 LaraconChuck Reeves
 
Stop multiplying by 4 Lone Star PHP
Stop multiplying by 4 Lone Star PHPStop multiplying by 4 Lone Star PHP
Stop multiplying by 4 Lone Star PHPChuck Reeves
 
Stop multiplying by 4 nyphp
Stop multiplying by 4 nyphpStop multiplying by 4 nyphp
Stop multiplying by 4 nyphpChuck Reeves
 
Iterate. Calculate. Communicate.
Iterate. Calculate. Communicate.Iterate. Calculate. Communicate.
Iterate. Calculate. Communicate.Laure Parsons
 
[CXL Live 16] When, Why and How to Do Innovative Testing by Marie Polli
[CXL Live 16] When, Why and How to Do Innovative Testing by Marie Polli[CXL Live 16] When, Why and How to Do Innovative Testing by Marie Polli
[CXL Live 16] When, Why and How to Do Innovative Testing by Marie PolliCXL
 
Overcome Your Mind: The Psychology of Better Product Decisions
Overcome Your Mind: The Psychology of Better Product DecisionsOvercome Your Mind: The Psychology of Better Product Decisions
Overcome Your Mind: The Psychology of Better Product DecisionsLaure Parsons
 
[CXL Live 16] Beyond Test-by-Test Results: CRO Metrics for Performance & Insi...
[CXL Live 16] Beyond Test-by-Test Results: CRO Metrics for Performance & Insi...[CXL Live 16] Beyond Test-by-Test Results: CRO Metrics for Performance & Insi...
[CXL Live 16] Beyond Test-by-Test Results: CRO Metrics for Performance & Insi...CXL
 

More Related Content

What's hot

[CXL Live 16] How to Utilize Your Test Capacity? by Ton Wesseling
[CXL Live 16] How to Utilize Your Test Capacity? by Ton Wesseling[CXL Live 16] How to Utilize Your Test Capacity? by Ton Wesseling
[CXL Live 16] How to Utilize Your Test Capacity? by Ton WesselingCXL
 
Introducing HOSTING Labs - Ed Schaefer
Introducing HOSTING Labs - Ed Schaefer Introducing HOSTING Labs - Ed Schaefer
Introducing HOSTING Labs - Ed Schaefer Hostway|HOSTING
 
My Mozcon 2015 Slide Deck - Rocking Your CRO Efforts with Radical Redesigns
My Mozcon 2015 Slide Deck - Rocking Your CRO Efforts with Radical RedesignsMy Mozcon 2015 Slide Deck - Rocking Your CRO Efforts with Radical Redesigns
My Mozcon 2015 Slide Deck - Rocking Your CRO Efforts with Radical RedesignsChris Dayley
 
10 Guidelines for A/B Testing
10 Guidelines for A/B Testing10 Guidelines for A/B Testing
10 Guidelines for A/B TestingEmily Robinson
 
6 Guidelines for A/B Testing
6 Guidelines for A/B Testing6 Guidelines for A/B Testing
6 Guidelines for A/B TestingEmily Robinson
 
Relationship Business-Projects-Operations
Relationship Business-Projects-OperationsRelationship Business-Projects-Operations
Relationship Business-Projects-OperationsHari Thapliyal
 
No estimates - 10 new principles for testing
No estimates  - 10 new principles for testingNo estimates  - 10 new principles for testing
No estimates - 10 new principles for testingVasco Duarte
 
Nc lab for business (1)
Nc lab for business (1)Nc lab for business (1)
Nc lab for business (1)JennyGrossman
 
Ecommerce Conversion World, London March 23 2017 - Ton Wesseling keynote
Ecommerce Conversion World, London March 23 2017 - Ton Wesseling keynoteEcommerce Conversion World, London March 23 2017 - Ton Wesseling keynote
Ecommerce Conversion World, London March 23 2017 - Ton Wesseling keynoteOnline Dialogue
 
When to run how many A/B-tests (based on data) - MeasureCamp Amsterdam - Ton ...
When to run how many A/B-tests (based on data) - MeasureCamp Amsterdam - Ton ...When to run how many A/B-tests (based on data) - MeasureCamp Amsterdam - Ton ...
When to run how many A/B-tests (based on data) - MeasureCamp Amsterdam - Ton ...Online Dialogue
 
Ellicium Solutions - Making Data Science Work
Ellicium  Solutions - Making Data Science Work Ellicium  Solutions - Making Data Science Work
Ellicium Solutions - Making Data Science Work Ellicium Solutions Inc.
 
Estimating software development
Estimating software developmentEstimating software development
Estimating software developmentJane Prusakova
 
You Got Your Engineering in my Data Science - Addressing the Reproducibility ...
You Got Your Engineering in my Data Science - Addressing the Reproducibility ...You Got Your Engineering in my Data Science - Addressing the Reproducibility ...
You Got Your Engineering in my Data Science - Addressing the Reproducibility ...jonbodner
 
Keys to Better Problem Solving
Keys to Better Problem SolvingKeys to Better Problem Solving
Keys to Better Problem SolvingMike Wicker
 
A/B Testing and the Infinite Monkey Theory
A/B Testing and the Infinite Monkey TheoryA/B Testing and the Infinite Monkey Theory
A/B Testing and the Infinite Monkey TheoryUseItBetter
 
What is the story with agile data keynote agile 2018 (Magennis)
What is the story with agile data keynote   agile 2018 (Magennis)What is the story with agile data keynote   agile 2018 (Magennis)
What is the story with agile data keynote agile 2018 (Magennis)Troy Magennis
 
D. Aitcheson. How to make forecasts that are actually accurate.
D. Aitcheson. How to make forecasts that are actually accurate.D. Aitcheson. How to make forecasts that are actually accurate.
D. Aitcheson. How to make forecasts that are actually accurate.Agile Lietuva
 
Voxxed Athens 2018 - The secret for high quality software: Listen to your people
Voxxed Athens 2018 - The secret for high quality software: Listen to your peopleVoxxed Athens 2018 - The secret for high quality software: Listen to your people
Voxxed Athens 2018 - The secret for high quality software: Listen to your peopleVoxxed Athens
 
CYCLE TIME ANALYTICS: RELIABLE #NOESTIMATES FORECASTING USING DATA, TROY MAGE...
CYCLE TIME ANALYTICS: RELIABLE #NOESTIMATES FORECASTING USING DATA, TROY MAGE...CYCLE TIME ANALYTICS: RELIABLE #NOESTIMATES FORECASTING USING DATA, TROY MAGE...
CYCLE TIME ANALYTICS: RELIABLE #NOESTIMATES FORECASTING USING DATA, TROY MAGE...Lean Kanban Central Europe
 

What's hot (20)

[CXL Live 16] How to Utilize Your Test Capacity? by Ton Wesseling
[CXL Live 16] How to Utilize Your Test Capacity? by Ton Wesseling[CXL Live 16] How to Utilize Your Test Capacity? by Ton Wesseling
[CXL Live 16] How to Utilize Your Test Capacity? by Ton Wesseling
 
Introducing HOSTING Labs - Ed Schaefer
Introducing HOSTING Labs - Ed Schaefer Introducing HOSTING Labs - Ed Schaefer
Introducing HOSTING Labs - Ed Schaefer
 
My Mozcon 2015 Slide Deck - Rocking Your CRO Efforts with Radical Redesigns
My Mozcon 2015 Slide Deck - Rocking Your CRO Efforts with Radical RedesignsMy Mozcon 2015 Slide Deck - Rocking Your CRO Efforts with Radical Redesigns
My Mozcon 2015 Slide Deck - Rocking Your CRO Efforts with Radical Redesigns
 
10 Guidelines for A/B Testing
10 Guidelines for A/B Testing10 Guidelines for A/B Testing
10 Guidelines for A/B Testing
 
6 Guidelines for A/B Testing
6 Guidelines for A/B Testing6 Guidelines for A/B Testing
6 Guidelines for A/B Testing
 
Relationship Business-Projects-Operations
Relationship Business-Projects-OperationsRelationship Business-Projects-Operations
Relationship Business-Projects-Operations
 
No estimates - 10 new principles for testing
No estimates  - 10 new principles for testingNo estimates  - 10 new principles for testing
No estimates - 10 new principles for testing
 
Nc lab for business (1)
Nc lab for business (1)Nc lab for business (1)
Nc lab for business (1)
 
A3 Process intro
A3 Process introA3 Process intro
A3 Process intro
 
Ecommerce Conversion World, London March 23 2017 - Ton Wesseling keynote
Ecommerce Conversion World, London March 23 2017 - Ton Wesseling keynoteEcommerce Conversion World, London March 23 2017 - Ton Wesseling keynote
Ecommerce Conversion World, London March 23 2017 - Ton Wesseling keynote
 
When to run how many A/B-tests (based on data) - MeasureCamp Amsterdam - Ton ...
When to run how many A/B-tests (based on data) - MeasureCamp Amsterdam - Ton ...When to run how many A/B-tests (based on data) - MeasureCamp Amsterdam - Ton ...
When to run how many A/B-tests (based on data) - MeasureCamp Amsterdam - Ton ...
 
Ellicium Solutions - Making Data Science Work
Ellicium  Solutions - Making Data Science Work Ellicium  Solutions - Making Data Science Work
Ellicium Solutions - Making Data Science Work
 
Estimating software development
Estimating software developmentEstimating software development
Estimating software development
 
You Got Your Engineering in my Data Science - Addressing the Reproducibility ...
You Got Your Engineering in my Data Science - Addressing the Reproducibility ...You Got Your Engineering in my Data Science - Addressing the Reproducibility ...
You Got Your Engineering in my Data Science - Addressing the Reproducibility ...
 
Keys to Better Problem Solving
Keys to Better Problem SolvingKeys to Better Problem Solving
Keys to Better Problem Solving
 
A/B Testing and the Infinite Monkey Theory
A/B Testing and the Infinite Monkey TheoryA/B Testing and the Infinite Monkey Theory
A/B Testing and the Infinite Monkey Theory
 
What is the story with agile data keynote agile 2018 (Magennis)
What is the story with agile data keynote   agile 2018 (Magennis)What is the story with agile data keynote   agile 2018 (Magennis)
What is the story with agile data keynote agile 2018 (Magennis)
 
D. Aitcheson. How to make forecasts that are actually accurate.
D. Aitcheson. How to make forecasts that are actually accurate.D. Aitcheson. How to make forecasts that are actually accurate.
D. Aitcheson. How to make forecasts that are actually accurate.
 
Voxxed Athens 2018 - The secret for high quality software: Listen to your people
Voxxed Athens 2018 - The secret for high quality software: Listen to your peopleVoxxed Athens 2018 - The secret for high quality software: Listen to your people
Voxxed Athens 2018 - The secret for high quality software: Listen to your people
 
CYCLE TIME ANALYTICS: RELIABLE #NOESTIMATES FORECASTING USING DATA, TROY MAGE...
CYCLE TIME ANALYTICS: RELIABLE #NOESTIMATES FORECASTING USING DATA, TROY MAGE...CYCLE TIME ANALYTICS: RELIABLE #NOESTIMATES FORECASTING USING DATA, TROY MAGE...
CYCLE TIME ANALYTICS: RELIABLE #NOESTIMATES FORECASTING USING DATA, TROY MAGE...
 

Similar to Stop multiplying by 4: Practical Software Estimation

Adaptive Case Management Workshop 2014 - Keynote
Adaptive Case Management Workshop 2014 - KeynoteAdaptive Case Management Workshop 2014 - Keynote
Adaptive Case Management Workshop 2014 - KeynoteKeith Swenson
 
optimizing_site_performance
optimizing_site_performanceoptimizing_site_performance
optimizing_site_performanceBryan Farrow
 
Metric Abuse: Frequently Misused Metrics in Oracle
Metric Abuse: Frequently Misused Metrics in OracleMetric Abuse: Frequently Misused Metrics in Oracle
Metric Abuse: Frequently Misused Metrics in OracleSteve Karam
 
7 DIGITAL BEST PRACTICES FOR HR PROFESSIONALS: WAYS TO RECRUIT AND HIRE FASTER
7 DIGITAL BEST PRACTICES FOR HR PROFESSIONALS: WAYS TO RECRUIT AND HIRE FASTER7 DIGITAL BEST PRACTICES FOR HR PROFESSIONALS: WAYS TO RECRUIT AND HIRE FASTER
7 DIGITAL BEST PRACTICES FOR HR PROFESSIONALS: WAYS TO RECRUIT AND HIRE FASTERHuman Capital Media
 
Test design techniques nopri wahyudi
Test design techniques nopri wahyudiTest design techniques nopri wahyudi
Test design techniques nopri wahyudiNopriwahyudi
 
Sales Email Hacks for Gmail and Salesforce
Sales Email Hacks for Gmail and SalesforceSales Email Hacks for Gmail and Salesforce
Sales Email Hacks for Gmail and SalesforceRingLead
 
Agile Delivery Can Be Predictable.docx
Agile Delivery Can Be Predictable.docxAgile Delivery Can Be Predictable.docx
Agile Delivery Can Be Predictable.docxJamey Lees
 
Testing – Why We Do It Badly2
Testing – Why We Do It Badly2Testing – Why We Do It Badly2
Testing – Why We Do It Badly2adevney
 
Software Development in the Brave New world
Software Development in the Brave New worldSoftware Development in the Brave New world
Software Development in the Brave New worldDavid Leip
 
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
 
Error Message Improvement
Error Message ImprovementError Message Improvement
Error Message Improvementmschwirzke
 
TitleABC123 Version X1Two Population MeansQNT351 V.docx
TitleABC123 Version X1Two Population MeansQNT351 V.docxTitleABC123 Version X1Two Population MeansQNT351 V.docx
TitleABC123 Version X1Two Population MeansQNT351 V.docxherthalearmont
 
Rinse and Repeat : The Spiral of Applied Machine Learning
Rinse and Repeat : The Spiral of Applied Machine LearningRinse and Repeat : The Spiral of Applied Machine Learning
Rinse and Repeat : The Spiral of Applied Machine LearningAnna Chaney
 
Pin the tail on the metric v00 75 min version
Pin the tail on the metric v00 75 min versionPin the tail on the metric v00 75 min version
Pin the tail on the metric v00 75 min versionSteven Martin
 
The High Performance Workplace slideshow
The High Performance Workplace slideshowThe High Performance Workplace slideshow
The High Performance Workplace slideshowSteuart G. Snooks
 
Process Evolution and Product Maturity
Process Evolution and Product MaturityProcess Evolution and Product Maturity
Process Evolution and Product MaturityQAware GmbH
 

Similar to Stop multiplying by 4: Practical Software Estimation (20)

Adaptive Case Management Workshop 2014 - Keynote
Adaptive Case Management Workshop 2014 - KeynoteAdaptive Case Management Workshop 2014 - Keynote
Adaptive Case Management Workshop 2014 - Keynote
 
optimizing_site_performance
optimizing_site_performanceoptimizing_site_performance
optimizing_site_performance
 
Test design techniques
Test design techniquesTest design techniques
Test design techniques
 
Metric Abuse: Frequently Misused Metrics in Oracle
Metric Abuse: Frequently Misused Metrics in OracleMetric Abuse: Frequently Misused Metrics in Oracle
Metric Abuse: Frequently Misused Metrics in Oracle
 
Test design techniques
Test design techniquesTest design techniques
Test design techniques
 
7 DIGITAL BEST PRACTICES FOR HR PROFESSIONALS: WAYS TO RECRUIT AND HIRE FASTER
7 DIGITAL BEST PRACTICES FOR HR PROFESSIONALS: WAYS TO RECRUIT AND HIRE FASTER7 DIGITAL BEST PRACTICES FOR HR PROFESSIONALS: WAYS TO RECRUIT AND HIRE FASTER
7 DIGITAL BEST PRACTICES FOR HR PROFESSIONALS: WAYS TO RECRUIT AND HIRE FASTER
 
DBA Best Practices.ppt
DBA Best Practices.pptDBA Best Practices.ppt
DBA Best Practices.ppt
 
Test design techniques nopri wahyudi
Test design techniques nopri wahyudiTest design techniques nopri wahyudi
Test design techniques nopri wahyudi
 
Sales Email Hacks for Gmail and Salesforce
Sales Email Hacks for Gmail and SalesforceSales Email Hacks for Gmail and Salesforce
Sales Email Hacks for Gmail and Salesforce
 
Agile Delivery Can Be Predictable.docx
Agile Delivery Can Be Predictable.docxAgile Delivery Can Be Predictable.docx
Agile Delivery Can Be Predictable.docx
 
Testing – Why We Do It Badly2
Testing – Why We Do It Badly2Testing – Why We Do It Badly2
Testing – Why We Do It Badly2
 
Software Development in the Brave New world
Software Development in the Brave New worldSoftware Development in the Brave New world
Software Development in the Brave New world
 
3685807
36858073685807
3685807
 
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
 
Error Message Improvement
Error Message ImprovementError Message Improvement
Error Message Improvement
 
TitleABC123 Version X1Two Population MeansQNT351 V.docx
TitleABC123 Version X1Two Population MeansQNT351 V.docxTitleABC123 Version X1Two Population MeansQNT351 V.docx
TitleABC123 Version X1Two Population MeansQNT351 V.docx
 
Rinse and Repeat : The Spiral of Applied Machine Learning
Rinse and Repeat : The Spiral of Applied Machine LearningRinse and Repeat : The Spiral of Applied Machine Learning
Rinse and Repeat : The Spiral of Applied Machine Learning
 
Pin the tail on the metric v00 75 min version
Pin the tail on the metric v00 75 min versionPin the tail on the metric v00 75 min version
Pin the tail on the metric v00 75 min version
 
The High Performance Workplace slideshow
The High Performance Workplace slideshowThe High Performance Workplace slideshow
The High Performance Workplace slideshow
 
Process Evolution and Product Maturity
Process Evolution and Product MaturityProcess Evolution and Product Maturity
Process Evolution and Product Maturity
 

Recently uploaded

Semiconductor Review Magazine Feature.pdf
Semiconductor Review Magazine Feature.pdfSemiconductor Review Magazine Feature.pdf
Semiconductor Review Magazine Feature.pdfkeyaramicrochipusa
 
Zi-Stick UBS Dongle ZIgbee from Aeotec manual
Zi-Stick UBS Dongle ZIgbee from  Aeotec manualZi-Stick UBS Dongle ZIgbee from  Aeotec manual
Zi-Stick UBS Dongle ZIgbee from Aeotec manualDomotica daVinci
 
LLMs, LMMs, their Improvement Suggestions and the Path towards AGI.pdf
LLMs, LMMs, their Improvement Suggestions and the Path towards AGI.pdfLLMs, LMMs, their Improvement Suggestions and the Path towards AGI.pdf
LLMs, LMMs, their Improvement Suggestions and the Path towards AGI.pdfThomas Poetter
 
Importance of magazines in education ppt
Importance of magazines in education pptImportance of magazines in education ppt
Importance of magazines in education pptsafnarafeek2002
 
AWS reInvent 2023 recaps from Chicago AWS user group
AWS reInvent 2023 recaps from Chicago AWS user groupAWS reInvent 2023 recaps from Chicago AWS user group
AWS reInvent 2023 recaps from Chicago AWS user groupAWS Chicago
 
Put a flag on it. A busy developer's guide to feature toggles.
Put a flag on it. A busy developer's guide to feature toggles.Put a flag on it. A busy developer's guide to feature toggles.
Put a flag on it. A busy developer's guide to feature toggles.Mateusz Kwasniewski
 
Artificial-Intelligence-in-Marketing-Data.pdf
Artificial-Intelligence-in-Marketing-Data.pdfArtificial-Intelligence-in-Marketing-Data.pdf
Artificial-Intelligence-in-Marketing-Data.pdfIsidro Navarro
 
Microsoft Azure News - Feb 2024
Microsoft Azure News - Feb 2024Microsoft Azure News - Feb 2024
Microsoft Azure News - Feb 2024Daniel Toomey
 
OTel Orientation_ How to Train Teams (OTel in Practice).pdf
OTel Orientation_ How to Train Teams (OTel in Practice).pdfOTel Orientation_ How to Train Teams (OTel in Practice).pdf
OTel Orientation_ How to Train Teams (OTel in Practice).pdfPaige Cruz
 
Bit N Build Poland
Bit N Build PolandBit N Build Poland
Bit N Build PolandGDSC PJATK
 
Q1 Memory Fabric Forum: Advantages of Optical CXL​ for Disaggregated Compute ...
Q1 Memory Fabric Forum: Advantages of Optical CXL​ for Disaggregated Compute ...Q1 Memory Fabric Forum: Advantages of Optical CXL​ for Disaggregated Compute ...
Q1 Memory Fabric Forum: Advantages of Optical CXL​ for Disaggregated Compute ...Memory Fabric Forum
 
Introduction to Serverless with AWS Lambda in C#.pptx
Introduction to Serverless with AWS Lambda in C#.pptxIntroduction to Serverless with AWS Lambda in C#.pptx
Introduction to Serverless with AWS Lambda in C#.pptxBrandon Minnick, MBA
 
Bringing nullability into existing code - dammit is not the answer.pptx
Bringing nullability into existing code - dammit is not the answer.pptxBringing nullability into existing code - dammit is not the answer.pptx
Bringing nullability into existing code - dammit is not the answer.pptxMaarten Balliauw
 
My self introduction to know others abut me
My self  introduction to know others abut meMy self  introduction to know others abut me
My self introduction to know others abut meManoj Prabakar B
 
Avoiding Bad Stats and the Benefits of Playing Trivia with Friends: PancakesC...
Avoiding Bad Stats and the Benefits of Playing Trivia with Friends: PancakesC...Avoiding Bad Stats and the Benefits of Playing Trivia with Friends: PancakesC...
Avoiding Bad Stats and the Benefits of Playing Trivia with Friends: PancakesC...Adrian Sanabria
 
Z-Wave Fan coil Thermostat Heltun_HE-HT01_User_Manual.pdf
Z-Wave Fan coil Thermostat Heltun_HE-HT01_User_Manual.pdfZ-Wave Fan coil Thermostat Heltun_HE-HT01_User_Manual.pdf
Z-Wave Fan coil Thermostat Heltun_HE-HT01_User_Manual.pdfDomotica daVinci
 
Dynamical systems simulation in Python for science and engineering
Dynamical systems simulation in Python for science and engineeringDynamical systems simulation in Python for science and engineering
Dynamical systems simulation in Python for science and engineeringMassimo Talia
 
Unlocking the Cloud's True Potential: Why Multitenancy Is The Key?
Unlocking the Cloud's True Potential: Why Multitenancy Is The Key?Unlocking the Cloud's True Potential: Why Multitenancy Is The Key?
Unlocking the Cloud's True Potential: Why Multitenancy Is The Key?GleecusTechlabs1
 
H3 Platform CXL Solution_Memory Fabric Forum.pptx
H3 Platform CXL Solution_Memory Fabric Forum.pptxH3 Platform CXL Solution_Memory Fabric Forum.pptx
H3 Platform CXL Solution_Memory Fabric Forum.pptxMemory Fabric Forum
 

Recently uploaded (20)

Semiconductor Review Magazine Feature.pdf
Semiconductor Review Magazine Feature.pdfSemiconductor Review Magazine Feature.pdf
Semiconductor Review Magazine Feature.pdf
 
Zi-Stick UBS Dongle ZIgbee from Aeotec manual
Zi-Stick UBS Dongle ZIgbee from  Aeotec manualZi-Stick UBS Dongle ZIgbee from  Aeotec manual
Zi-Stick UBS Dongle ZIgbee from Aeotec manual
 
LLMs, LMMs, their Improvement Suggestions and the Path towards AGI.pdf
LLMs, LMMs, their Improvement Suggestions and the Path towards AGI.pdfLLMs, LMMs, their Improvement Suggestions and the Path towards AGI.pdf
LLMs, LMMs, their Improvement Suggestions and the Path towards AGI.pdf
 
Importance of magazines in education ppt
Importance of magazines in education pptImportance of magazines in education ppt
Importance of magazines in education ppt
 
AWS reInvent 2023 recaps from Chicago AWS user group
AWS reInvent 2023 recaps from Chicago AWS user groupAWS reInvent 2023 recaps from Chicago AWS user group
AWS reInvent 2023 recaps from Chicago AWS user group
 
Put a flag on it. A busy developer's guide to feature toggles.
Put a flag on it. A busy developer's guide to feature toggles.Put a flag on it. A busy developer's guide to feature toggles.
Put a flag on it. A busy developer's guide to feature toggles.
 
Artificial-Intelligence-in-Marketing-Data.pdf
Artificial-Intelligence-in-Marketing-Data.pdfArtificial-Intelligence-in-Marketing-Data.pdf
Artificial-Intelligence-in-Marketing-Data.pdf
 
Microsoft Azure News - Feb 2024
Microsoft Azure News - Feb 2024Microsoft Azure News - Feb 2024
Microsoft Azure News - Feb 2024
 
OTel Orientation_ How to Train Teams (OTel in Practice).pdf
OTel Orientation_ How to Train Teams (OTel in Practice).pdfOTel Orientation_ How to Train Teams (OTel in Practice).pdf
OTel Orientation_ How to Train Teams (OTel in Practice).pdf
 
Bit N Build Poland
Bit N Build PolandBit N Build Poland
Bit N Build Poland
 
Q1 Memory Fabric Forum: Advantages of Optical CXL​ for Disaggregated Compute ...
Q1 Memory Fabric Forum: Advantages of Optical CXL​ for Disaggregated Compute ...Q1 Memory Fabric Forum: Advantages of Optical CXL​ for Disaggregated Compute ...
Q1 Memory Fabric Forum: Advantages of Optical CXL​ for Disaggregated Compute ...
 
Introduction to Serverless with AWS Lambda in C#.pptx
Introduction to Serverless with AWS Lambda in C#.pptxIntroduction to Serverless with AWS Lambda in C#.pptx
Introduction to Serverless with AWS Lambda in C#.pptx
 
Bringing nullability into existing code - dammit is not the answer.pptx
Bringing nullability into existing code - dammit is not the answer.pptxBringing nullability into existing code - dammit is not the answer.pptx
Bringing nullability into existing code - dammit is not the answer.pptx
 
My self introduction to know others abut me
My self  introduction to know others abut meMy self  introduction to know others abut me
My self introduction to know others abut me
 
Avoiding Bad Stats and the Benefits of Playing Trivia with Friends: PancakesC...
Avoiding Bad Stats and the Benefits of Playing Trivia with Friends: PancakesC...Avoiding Bad Stats and the Benefits of Playing Trivia with Friends: PancakesC...
Avoiding Bad Stats and the Benefits of Playing Trivia with Friends: PancakesC...
 
Z-Wave Fan coil Thermostat Heltun_HE-HT01_User_Manual.pdf
Z-Wave Fan coil Thermostat Heltun_HE-HT01_User_Manual.pdfZ-Wave Fan coil Thermostat Heltun_HE-HT01_User_Manual.pdf
Z-Wave Fan coil Thermostat Heltun_HE-HT01_User_Manual.pdf
 
Dynamical systems simulation in Python for science and engineering
Dynamical systems simulation in Python for science and engineeringDynamical systems simulation in Python for science and engineering
Dynamical systems simulation in Python for science and engineering
 
Unlocking the Cloud's True Potential: Why Multitenancy Is The Key?
Unlocking the Cloud's True Potential: Why Multitenancy Is The Key?Unlocking the Cloud's True Potential: Why Multitenancy Is The Key?
Unlocking the Cloud's True Potential: Why Multitenancy Is The Key?
 
5 Tech Trend to Notice in ESG Landscape- 47Billion
5 Tech Trend to Notice in ESG Landscape- 47Billion5 Tech Trend to Notice in ESG Landscape- 47Billion
5 Tech Trend to Notice in ESG Landscape- 47Billion
 
H3 Platform CXL Solution_Memory Fabric Forum.pptx
H3 Platform CXL Solution_Memory Fabric Forum.pptxH3 Platform CXL Solution_Memory Fabric Forum.pptx
H3 Platform CXL Solution_Memory Fabric Forum.pptx
 

Stop multiplying by 4: Practical Software Estimation

  • 1. Stop Multiplying by 4 Practical software estimation Chuck Reeves @manchuck
  • 3. Why even estimate? Why should developers estimate?
  • 4. I'll tell you how I estimate things. I sit down and figure out how long I think it would take me to do it. Then I double that time and then I push it up to the next point on the “Time Progression Scale”. Were the “Time Progress Scale” starts off: seconds, minuets, hours and days. So if I think something is going to take me 4 hours to do. I will double it to 8 and then I would say it would take me 8 days to get it all completely done start to finish. And I'm usually right, because there are so many impediments. If you are the only one doing it yourself your schedule can be very accurate. Once you have to involve other people, you might as well just make numbers up. You might as well say “I think this will take me Blue days to get done”
  • 6. Requirements were the key Measure what is measurable, but make measurable what is not so -Galileo Galilei
  • 7. “Wordy” Expression Our new contact form for the sales team to call or email potential leads, will require the potential leads to provide the following contact information: First and Last name, Email address, and Phone number
  • 8. Misplaced Modifier The contact form has fields for entering a valid First and Last Name, Email address and Phone number Top Tip: Prevent children from ingesting dangerous medicines by locking them in a childproof cupboard. 3 children per cupboard is a good fit -Periwinkle Jones @peachesanscream
  • 9. The contact form has fields for First and Last Name, Email address and Phone number. All fields are required and must be validated (202) 456-1111 555-1212 212-867-5309 1-800-MATTRES 911 +44 871 984 6352 +852 2280 2898 +91 11 2679 1234 Valid Phone numbers:
  • 10. fast, rapid, efficient Use a set time: "5 seconds" valid, including but not limited too, etc., and so on Describe what is valid or invalid. use comprehensive list maximize, minimize, optimize, at least, between, several Be sure to include appropriate values simple, easy, quick, user-friendly Describe what makes it these reasonable, when necessary How do you make this judgment? Source: Software Requirements 2 – Karl Weigers
  • 11. In order to estimate, you must define the parameters of what you are estimating: UTF-8 First and Last name must be between 3 and 100 characters Email complies with RFC 822 and no longer than 300 characters Phone Number < 25 characters and validated with Foo-Bar REST service
  • 12. Historical data Dry run / Unit test Confidence Interval (CI) It is better to be roughly right than precisely wrong. - John Maynard Keynes
  • 13. What is the wingspan of a 747 How far is NY from LA The average house in the United States uses how many gallons/liters of water per day? Francis Scott Key wrote the lyrics, but not the music, for the American National Anthem 28 degrees Fahrenheit is colder than -15 degrees Celsius. America On Line purchased Netscape.
  • 14. Equivalent Bet Repetition Pros and Cons Absurdity Test
  • 15. Q. What is the wingspan of a 747 A. 211 ft (64m) Q. How far is NY from LA A. 2,808 mi (4,519 km) Q. The average house in the United States uses how many gallons/liters of water per day? A. 350 g (1,324 l) Q. Francis Scott Key wrote the lyrics, but not the music, for the American National Anthem A. True Q. 28 degrees Fahrenheit is colder than -15 degrees Celsius. A. False Q. America On Line purchased Netscape. A. True
  • 16. Fuzzy Logic / Tee Shirt Size Average LOC Very Small 127 Small 253 Medium 500 Large 1,014 Very Large 1,988 Source: Software Estimation 2 – Steve McConnell
  • 17. Wideband Delphi Or Group Round 1 Round 2 Round 3 Hours 1 2 3 4 65 7 8 9
  • 19. Priorities – Urgency Matrix Important Not Important Urgent High Priority Not Urgent Medium Priority Low Priority Source: Software Requirements 2 – Karl Weigers
  • 20. Priorities – Prioritization Spreadsheet Source: Software Requirements 2 – Karl Weigers https://www.microsoftpressstore.com/store/software-requirements-9780735679665 Feature Relative Benefit Relative Penalty Total Value Value % Relative Cost Cost % Relative Risk Risk % Priority Validate Phone 2 4 8 13.1 1 9.1 1 14.3 0.81 Connect to Service 5 3 13 21.3 2 18.2 1 14.3 0.84 Report on Data 9 7 25 41.0 5 45.5 3 42.9 0.61 Mark off for contacted leads 5 5 15 24.6 3 27.3 2 28.6 0.59 Totals 21 19 61 100.0 11 100.0 7 100.0
  • 22. Remove people from the problem
  • 23. Focus on Interests not Positions
  • 24. DO NOT NEGOTIATE YOUR ESTIMATE!!!!!
  • 29. Thank You! Chuck Reeves @manchuck http://joind.in/talk/view/10634 Software Estimation: Demystifying the Black Art – by Steve McConnell | ISBN-13: 978-0735605350 Software Requirements: Practical Techniques for Gathering and Managing Requirements – by Karl Wiegers How to Measure Anything: Finding the Value of Intangibles in Business – by Douglas Hubbard | ISBN-13: 978-1118539279 Dev Hell Podcast - Episode 29: Snappy Answers to Stupid Questions

Editor's Notes

  1. With Companies like Google and Spotify, not caring about deadlines, why should we care about estimating software?Why should we estimate?Estimation is not just about meeting deadlines. Managers need to know if the cost of building is worth the effort. Banks, budgets and backers need to gage how their investment is going to be used.Why should developers Estimate?Developers own the code MagneJørgensen + Stein Grimstad proved If you have any inkling of budget or time line, Your estimate will be biased. Project Managers and Owners know this information and might try to “fit” the cost into what they are willing to spend
  2. What Developers do Wrong?Developers are capable of taking problems and break it down into smaller parts. When it comes to Estimating, we follow arbitrary means that can cause projects to go over budget or worse, fail completely.
  3. A story about estimation that went “well”I needed a developer that was working on another project. He was working with someone who has been programming 30 years. Both were not sure on how long it would take to complete the huge laundry list of items. I sat down with both of them, went over the whole project and broke it up into smaller parts. We then came up with estimates for each items, then sat down with the Project Manager to come up with a time line the client was happy with. The project goes along, for a month, then panic. One of the libs we were using was not working with some version of Safari. Everyone panicked to get a fix in. There was fear that we would miss the deadline. Which would set back my project. We got a fix in, deployed all the changes, and when the smoke cleared, we found that we launched a day early.
  4. How did we do it?When dealing with estimates, you are fighting a battle of uncertainty. Remember this:Its easy to estimate what you knowIts hard to estimate what you don’t know Its very hard to estimate what you don’t know you don’t know**Use driving to work example**
  5. Requirements – Wordy ExpressionsManagers try to “sell” requirements to you. Which means that some times they will add “fluff” to requirements.Wordy expressions add useless information to a statement
  6. Requirements – Misplaced ModifiersMisplaced modifier happens when a word, phrase or clause is improperly separated from the word it describes. In this case, we have valid next to first and last name. Valid modifies First and Last name. Does that mean that we can enter an invalid email address or phone number?Groucho Marx has a famous one: I shot an elephant in my pajamas the other day. How it got into my pajamas Ill never know
  7. Requirements – ClarityNow that we have cleaned up the format and grammar of the requirement, we now look for smells in the requirement. For example, what is considered a “valid” phone number?
  8. Requirement – SmellsIf estimation is a battle for uncertainty, requirement gathering is a battle against ambiguity. Words used in requirements that cause ambiguity, I like to call Requirement smells. Like Code Smells, these words or phrases raise some red flags about the requirements. Take the time to clarify the requirements before making an estimate.
  9. Requirements – Finial Once you have defined the requirements as best you can, you can now start estimating. We now see that our one requirement for a contact form has grown into a much bigger project then we thought. We need to break down our requirements into smaller parts. Break the requirement into smaller more manageable units. We can then take a look and see which parts have the most uncertainty.
  10. Tools for EstimatingBefore getting into some techniques, we are going to need some more information. Using the following tools we can then break down our requirementHistorical dataTake current data about development and proxy it to new requirements. Start tracking metrics like LOC, Number of Functions, Avg LOC / Function. Apply time to each of those metrics to get a rough idea on how long it takes to create each metric: LOC / Hour / Day.I wrote a script that would run git commit every hour to help with thisDry run / Unit testYou don’t need to use a full stack testing framework, but you can test out some critical functions. If you have not previous experience with a service, you therefore have no historical data to base your estimate on. Spending an hour or two on testing out the logic, can provide you with better insight on the complexity for the requirement. Even if you have worked on something similar in the past, do a dry run for the more complex tasks. I was asked to connect to the OH tax service using a SOAP service. In the past I made many SOAP calls, so my estimate reflected that experience. After spending about 15 hours of my 12 hour estimate, I was unable to make the connection for technical reasons and the requirement was dropped (I was told by the developer that I need to use .NET or Java and not PHP in order to use the service).Confidence Interval (CI)This is a statistical model that represents uncertainty. It is calculated by using means and variances. We see them in the real world with hurricane paths. They are great because we do not need to “pad” our estimate. The interval uses a High and Low range that represents our 90% confidence that the “True” value is between them.
  11. Calibration ExerciseWe are going to do a practice calibration test. Three questions have a number value, for these try use the confidence interval. Three questions will be true or false, do not answer those with null ;).
  12. Equivalent BetThis works on a gut feeling. Imagine a spinner that pays out 90% of the time. You choose between your estimate and betting against the spinner. If you choose the spinner, you most likely not confident your value. If you choose your estimate, you might be overconfident and your range is too wide. RepetitionTake a lunch break come back in an hour and try your estimate again. Clear your mind and try the estimate again. Don’t read your 1st estimate before trying again to avoid anchoring to your original estimate.Pros and ConsMake a list of things that will happen if your estimate is right and if your estimate is wrong. This helps bring clarity to the problem and remove some bias. After the list, try againAbsurdity TestNarrow down your range by using absurd values for your CI and making them smaller. For example, for the wingspan of a 747, starting with a range of 1 to 1000 ft. is absurd. Is 80 to 250 ft sound better? What about 180 to 220 ft?
  13. Fuzzy logicA simple estimation tool to get an idea on effort. Classify features into Very Small, Small, Medium Large, Very Large. You then have an idea on how much work is needed based on Historical data or Industry average. Keep track of your estimate with hours.
  14. Wideband Delphi AKA GroupBased on the statistical Law of Large Numbers. Where by the more information you have, the closer your average is to the true value. This requires a team of at lease 4 people and works best with about 10 total. First choose a coordinator. The coordinator presents the feature requested and takes estimates from each member, and averages the numbers. The coordinator then presents the data to the team. A vote is then cast and if it fails, the team estimates again. It is critical that estimates are kept secret to avoid bias. Traditional Wideband Delphi fails to represent uncertainty since the average is voted on, I recommend that you take ranges and then average the high and low numbers.
  15. Bayes TheoremAs stated in the beginning of this presentation, we are going to avoid math as much as possible. However you cannot talk about probabilities with out talking about Bayes Theorem. It was developed by Howard Bayes in the 17th century and is widely used in many applications today from predictive text to suggested ads. The simplicity of the equation makes for highly complex “Bayesian trees”. The take away from Bayes Theorem is this: when you have more information about a probability, you must change your original estimate. The estimate at the start of a project might not always reflect the estimate half way through. By that point you have more clarity and now can better predict the outcome.
  16. PrioritiesOnce all the features have estimates attached, how do you set the priorities on when items are going to get done? Most of the time we use order them in High, Medium, or Low. How effective is that? Based on surveys from project managers, you will find that ~85% of your tasks become High, ~10% Medium and ~5% Low. Three level scale is an easy way to avoid this trap. We create a matrix of Importance vs Urgency. By comparing the values, you get a grasp of the priority scale.
  17. Priorities Prioritization SpreadsheetThis is the ultimate way to reduce bias. Have the customer rate relative benefit for each feature on a scale of 1-9. 9 is extremely valuable. Then estimate the penalty on a scale of 1 – 9, 9 means a serious impact on businessDevelopers Rate the relative on a scale of 1 – 9, 1 is quick an easy. Then rate the technical risk. 1 means you can do in your sleepThen sort the list descending on priority. The priority is based on the Value % / Cost % + Risk %
  18. PoliticsDealing with the rest of the company can be a challenge. Keep in mind that there will be politics everywhere you go but you can curve some of resistance you will get. When dealing with managers or product owners remember this: You are responsible for the code. Imagine a scenario where a patient needs to be operated on by a Dr. The patient is on the table and sees the Dr. washing his hands. If the patient yells out to the Dr to stop washing his hands and get in the OR to start, is the Dr. going to listen? The patient is the boss because he is paying the Dr. but the Dr. is going to act in a manner that benefits the Patient.
  19. Remove people from the problemEveryone will want everything done yesterday. You also have your own needs for the project that must be met. If you focus on what is best for the project (or better yet the dollar amount), it helps change the perspective. In the example early with connecting to the FooBar Rest service, if development will cost $2,000 plus another $500 per month to maintain, but saves $2.00 per lead. If you only get 2 leads a day, the savings per lead per month is only about $120. If a sales rep is demanding that this feature be implemented, prove that there is a loss per month with this service, make the priority lower.
  20. Focus on Interests not PositionsIf the estimate takes the project longer than the ship date, work out with the project owners what you can deliver in the time. Try to get features implemented with known bugs and workarounds that you can fix the ship. If this is needed for a trade show, work out a “white page” demoing the features that you wont be able to deliver
  21. DO NOT NEGOTIATE YOUR ESTIMATE!!!!!If you start down this path, managers are going wont believe your estimates. They will stop asking your for estimates, or think you are over or under estimating. Using the Dr. example again, if a Dr diagnoses you with cancer and tells you that you only have 6 months to live. Would the Dr. look at your face, see your sorrow and change the estimate to 3 years?
  22. Karl WiegersISBN-13: 978-0735618794
  23. Steve McConnellISBN-13: 978-0735605350
  24. Douglas W. HubbardISBN-13: 978-0735605350
  25. Questions?
  26. Thank You