SlideShare a Scribd company logo
1 of 65
Estimating in Software
     Development:
No Silver Bullets Allowed
     Kent J. McDonald
      @beyondreqs
Disclaimer
A Familiar Situation?




                 Issues with Estimating



    Estimating Techniques
Don’t worry, we’ll get to these…
Has this ever happened to you?
Ok, great. The Sales
   How long will it
  VP promised an         I just found out
  take to build the
  estimate to the           about it this
     commission
CEO next Monday.       morning, so I’ll need
       system?
 It better be right.   to do some analysis .
Issues with Estimating



Initial Uncertainty   Accuracy/Effort Tradeoff




False Precision          Differing Skill Levels
Initial Uncertainty
Cone of Uncertainty
Cone of Uncertainty a Practical Use
Hurricane Sandy – Actual Path
Accuracy/Effort
   Tradeoff
Point of Diminishing Returns
False Precision
How precise do you have to be?
 How long, and         Approximately 374
  how much?                 days and
                         $2,548,931.27.
Differing
skill levels
People finish tasks at different speeds
Estimating Techniques



Guestimate                  Break it down, add it up




             Relative Estimating
Guestimate
Aka “Gut Feel” or “Ball Park”
How long, and
 how much?              About a year and
                         $2.5 million.
Comparison to Past Projects




$1,000          $100K     $10M
           ??




                          $1M
Your turn…
Want to create an online application for Mortgage Insurance
How long to deliver the online
application for Mortgage
Insurance?

A ballpark answer is sufficient.
Does it address our issues?



Initial Uncertainty   Accuracy/Effort Tradeoff




False Precision           Differing Skill Levels
When to use it
Break it down
Add it up
Break overall effort into bits
Assign factor to each small bit
Tasks                                           Time Factor   # of   Total Time
                                                 (hour/bit)   bits    (hours)
Interfaces
GUI - Simple                                        8
GUI - Medium                                        16
GUI - Hard                                          24
System Interface - Simple                           12
System Interface - Complex                          30
                             Total Interfaces
Processes
Simple Process                                      16
Medium Process                                      32
Complex Process                                     48
                             Total Processes
Where do we come up with the
          factors?
This is where time cards may be
            useful…
                 Know ahead of time
                  what you want to track
                 Build up information
                  over time
                 Often requires
                  excruciating detail in
                  time collection.
Identify How Many Bits
Tasks                                           Time Factor   # of   Total Time
                                                 (hour/bit)   bits    (hours)
Interfaces
GUI - Simple                                        8          3
GUI - Medium                                        16         2
GUI - Hard                                          24         1
System Interface - Simple                           12         3
System Interface - Complex                          30         2
                             Total Interfaces                 11
Processes
Simple Process                                      16         5
Medium Process                                      32         4
Complex Process                                     48         3
                             Total Processes                  12
Do the math to get an estimate
Tasks                                           Time Factor   # of   Total Time
                                                 (hour/bit)   bits    (hours)
Interfaces
GUI - Simple                                        8          3        24
GUI - Medium                                        16         2        32
GUI - Hard                                          24         1        24
System Interface - Simple                           12         3        36
System Interface - Complex                          30         2        60
                             Total Interfaces                 11        176
Processes
Simple Process                                      16         5        80
Medium Process                                      32         4        128
Complex Process                                     48         3        144
                             Total Processes                  12        352
This gives us development hours
What about analysis & testing &…
                 Percentage of
                  development hours
                 Estimate tasks
                  separately
                 You mean we have to
                  estimate analysis &
                  testing?
Data Warehouse Example
Adding a new source to
data warehouse
 Count of sources
 Count of tables/source
 Count of
  elements/table
 Considerations of
  complexity
Data Warehouse Example

           1. Gather all the info
           2. Plug it into a
              spreadsheet
           3. Look at the resulting
              (realistic but “too
              high”) number
           4. Revise…
Your turn…
Want to create an online application for Mortgage Insurance
How long to deliver the online
application for Mortgage
Insurance?

Identify how you would break
this down to estimate
Of Course there’s always
    Function Points…
Or, you could always add up tasks
Does it address our issues?



Initial Uncertainty   Accuracy/Effort Tradeoff




False Precision         Differing Skill Levels
When to use it
Another Look - Decomposition
Calibrated Estimates in Ranges

   Manage         Moderate      Manage        Build        Manage
   Tracks         Content       Deadlines     Program      Venue
    1 – 2 Days     3 – 5 Days    1 – 2 Days   4 – 6 Days   .5 – 1 Days



                         9.5 – 16 Days
                 @ $100/hour & 8 hours/day
                      $7,600 – $12,800

Note, Entire team calibrated and
involved in determining these estimates.
For More information
          How to Measure Anything:
          Finding the Value of
          Intangibles in Business
          by
          Douglas W. Hubbard

          HowToMeasureAnything.com
Where it Helps



Initial Uncertainty   Accuracy/Effort Tradeoff




False Precision         Differing Skill Levels
Relative Estimating
Ah ha! Here’s the poker connection!
Discuss (briefly) the item to estimate

    As an Event Organizer
    I want to know how
    audience members vote by
    athlete by gender So That
    I can determine if men
    and women vote differently.
The Delphi Technique
Everyone selects an estimate
Estimating Scales
(Modified) Fibonacci
Sequence:
0, ½, 1, 2, 3, 5, 8, 13, 20,
40, 80, 100
Using a regular deck of
cards:
A, 2, 3, 5, 8, King
Team Member Hands:
1–5
                               Leonardo Pisano Bigollo aka Fibonacci
                               Italian Mathematician
Reveal estimates all at once
Discuss outliers
 Well, we changed the voting
I wasn’t sure we knew how
machines to ask gender a
  Andwhy did youthe two
   So how about pick during
     Yeah, what she said.
     to tell an audience
   sign in last iteration, so it
             king?
             aces?
      member’s gender.
         should be easy
Repeat until convergence
Extrapolate based on Velocity
       Assumptions:
        2 week iterations
        Overall backlog size: 600 points
        Planning Velocity: 30
        5 Person Team
        Avg Cost/person/wk: $4,000

        Estimate: $800,000
Your turn…
Determine relative sizes of these various
features using the scale 1,2,3,4,5

Based on this feature being sized an 1.
Does it address our issues?



Initial Uncertainty   Accuracy/Effort Tradeoff




False Precision           Differing Skill Levels
When to use it
An Alternative to Planning Poker
    1            2        3       5            8


User Story   User Story       User Story   User Story


User Story   User Story       User Story   User Story



User Story   User Story


User Story   User Story
How should we approach estimating
          for a project?
Calibrated
Guestimate
                    Phase Based
 Estimates

                            Break it
                           down add
                             it up




         Set
    expectation
    for revisions
Agile
Comparison
 Calibrated
  to past
 Estimates
  projects          Extrapolate
                       from
                     Velocity




     Set
expectation
for revisions
If you remember nothing else
Initial            Don’t spend
uncertainty        more effort
means you will     than it’s
not be accurate.   worth.


Don’t imply        Incorporate
more precision     multiple
than is            perspectives.
possible.
Questions?
Kent J. McDonald
kent@kentmcdonald.com
www.BeyondRequirements.com
Twitter: @BeyondReqs
Slides available from:
http://www.knowledgebridgepart
ners.com/presentations/software
estimating/




                                      65

More Related Content

Viewers also liked

Anyone Can Write User Stories. It's the (Shared) Understanding That's Important
Anyone Can Write User Stories. It's the (Shared) Understanding That's ImportantAnyone Can Write User Stories. It's the (Shared) Understanding That's Important
Anyone Can Write User Stories. It's the (Shared) Understanding That's ImportantKent McDonald
 
Decision Making Techniques for Not for Profits
Decision Making Techniques for Not for ProfitsDecision Making Techniques for Not for Profits
Decision Making Techniques for Not for ProfitsKent McDonald
 
Collaborative Modeling In A Nutshell
Collaborative Modeling In A NutshellCollaborative Modeling In A Nutshell
Collaborative Modeling In A NutshellKent McDonald
 
How to find the real need with socratic questioning
How to find the real need with socratic questioningHow to find the real need with socratic questioning
How to find the real need with socratic questioningKent McDonald
 
Analysis In Agile: It's More than Just User Stories
Analysis In Agile: It's More than Just User StoriesAnalysis In Agile: It's More than Just User Stories
Analysis In Agile: It's More than Just User StoriesKent McDonald
 
Is It Worth It? Using A Business Value Model To Guide Decisions
Is It Worth It?  Using A Business Value Model To Guide DecisionsIs It Worth It?  Using A Business Value Model To Guide Decisions
Is It Worth It? Using A Business Value Model To Guide DecisionsKent McDonald
 
Tis better to be effective than efficient
Tis better to be effective than efficientTis better to be effective than efficient
Tis better to be effective than efficientKent McDonald
 
Agile India 2016 Conference
Agile India 2016 ConferenceAgile India 2016 Conference
Agile India 2016 ConferenceNaresh Jain
 
Understanding Roles on an Agile Project
Understanding Roles on an Agile ProjectUnderstanding Roles on an Agile Project
Understanding Roles on an Agile ProjectKent McDonald
 
Techniques for Effectively Slicing User Stories by Naresh Jain
Techniques for Effectively Slicing User Stories by Naresh JainTechniques for Effectively Slicing User Stories by Naresh Jain
Techniques for Effectively Slicing User Stories by Naresh JainNaresh Jain
 
Examining the Product Owner Role
Examining the Product Owner RoleExamining the Product Owner Role
Examining the Product Owner RoleKent McDonald
 
21 Story Splitting Patterns
21 Story Splitting Patterns21 Story Splitting Patterns
21 Story Splitting PatternsKent McDonald
 

Viewers also liked (13)

Anyone Can Write User Stories. It's the (Shared) Understanding That's Important
Anyone Can Write User Stories. It's the (Shared) Understanding That's ImportantAnyone Can Write User Stories. It's the (Shared) Understanding That's Important
Anyone Can Write User Stories. It's the (Shared) Understanding That's Important
 
Positive Politics
Positive PoliticsPositive Politics
Positive Politics
 
Decision Making Techniques for Not for Profits
Decision Making Techniques for Not for ProfitsDecision Making Techniques for Not for Profits
Decision Making Techniques for Not for Profits
 
Collaborative Modeling In A Nutshell
Collaborative Modeling In A NutshellCollaborative Modeling In A Nutshell
Collaborative Modeling In A Nutshell
 
How to find the real need with socratic questioning
How to find the real need with socratic questioningHow to find the real need with socratic questioning
How to find the real need with socratic questioning
 
Analysis In Agile: It's More than Just User Stories
Analysis In Agile: It's More than Just User StoriesAnalysis In Agile: It's More than Just User Stories
Analysis In Agile: It's More than Just User Stories
 
Is It Worth It? Using A Business Value Model To Guide Decisions
Is It Worth It?  Using A Business Value Model To Guide DecisionsIs It Worth It?  Using A Business Value Model To Guide Decisions
Is It Worth It? Using A Business Value Model To Guide Decisions
 
Tis better to be effective than efficient
Tis better to be effective than efficientTis better to be effective than efficient
Tis better to be effective than efficient
 
Agile India 2016 Conference
Agile India 2016 ConferenceAgile India 2016 Conference
Agile India 2016 Conference
 
Understanding Roles on an Agile Project
Understanding Roles on an Agile ProjectUnderstanding Roles on an Agile Project
Understanding Roles on an Agile Project
 
Techniques for Effectively Slicing User Stories by Naresh Jain
Techniques for Effectively Slicing User Stories by Naresh JainTechniques for Effectively Slicing User Stories by Naresh Jain
Techniques for Effectively Slicing User Stories by Naresh Jain
 
Examining the Product Owner Role
Examining the Product Owner RoleExamining the Product Owner Role
Examining the Product Owner Role
 
21 Story Splitting Patterns
21 Story Splitting Patterns21 Story Splitting Patterns
21 Story Splitting Patterns
 

Similar to Estimating in Software Development: No Silver Bullets Allowed

BP206 - Let's Give Your LotusScript a Tune-Up
BP206 - Let's Give Your LotusScript a Tune-Up BP206 - Let's Give Your LotusScript a Tune-Up
BP206 - Let's Give Your LotusScript a Tune-Up Craig Schumann
 
Improving your Agile Process
Improving your Agile ProcessImproving your Agile Process
Improving your Agile ProcessDavid Copeland
 
How to not fail at security data analytics (by CxOSidekick)
How to not fail at security data analytics (by CxOSidekick)How to not fail at security data analytics (by CxOSidekick)
How to not fail at security data analytics (by CxOSidekick)Dinis Cruz
 
Slides Cost Based Performance Modelling
Slides Cost Based Performance ModellingSlides Cost Based Performance Modelling
Slides Cost Based Performance ModellingEugene Margulis
 
Kusto (Azure Data Explorer) Training for R&D - January 2019
Kusto (Azure Data Explorer) Training for R&D - January 2019 Kusto (Azure Data Explorer) Training for R&D - January 2019
Kusto (Azure Data Explorer) Training for R&D - January 2019 Tal Bar-Zvi
 
Meetup 29042015
Meetup 29042015Meetup 29042015
Meetup 29042015lbishal
 
Mantis: Netflix's Event Stream Processing System
Mantis: Netflix's Event Stream Processing SystemMantis: Netflix's Event Stream Processing System
Mantis: Netflix's Event Stream Processing SystemC4Media
 
Approaches for application request throttling - dotNetCologne
Approaches for application request throttling - dotNetCologneApproaches for application request throttling - dotNetCologne
Approaches for application request throttling - dotNetCologneMaarten Balliauw
 
An Introduction to ORYX Software
An Introduction to ORYX SoftwareAn Introduction to ORYX Software
An Introduction to ORYX SoftwareAccountagility
 
Approaches for application request throttling - Cloud Developer Days Poland
Approaches for application request throttling - Cloud Developer Days PolandApproaches for application request throttling - Cloud Developer Days Poland
Approaches for application request throttling - Cloud Developer Days PolandMaarten Balliauw
 
Performance Management in ‘Big Data’ Applications
Performance Management in ‘Big Data’ ApplicationsPerformance Management in ‘Big Data’ Applications
Performance Management in ‘Big Data’ ApplicationsMichael Kopp
 
Bug prediction + sdlc automation
Bug prediction + sdlc automationBug prediction + sdlc automation
Bug prediction + sdlc automationAlexey Tokar
 
parellel computing
parellel computingparellel computing
parellel computingkatakdound
 
Simplified Data Processing On Large Cluster
Simplified Data Processing On Large ClusterSimplified Data Processing On Large Cluster
Simplified Data Processing On Large ClusterHarsh Kevadia
 
Week1 programming challenges
Week1 programming challengesWeek1 programming challenges
Week1 programming challengesDhanu Srikar
 
QConSF 2014 talk on Netflix Mantis, a stream processing system
QConSF 2014 talk on Netflix Mantis, a stream processing systemQConSF 2014 talk on Netflix Mantis, a stream processing system
QConSF 2014 talk on Netflix Mantis, a stream processing systemDanny Yuan
 
Structured Software Design
Structured Software DesignStructured Software Design
Structured Software DesignGiorgio Zoppi
 
Itc lec5-24+sep+2012
Itc lec5-24+sep+2012Itc lec5-24+sep+2012
Itc lec5-24+sep+2012Rehan Qadri
 

Similar to Estimating in Software Development: No Silver Bullets Allowed (20)

BP206 - Let's Give Your LotusScript a Tune-Up
BP206 - Let's Give Your LotusScript a Tune-Up BP206 - Let's Give Your LotusScript a Tune-Up
BP206 - Let's Give Your LotusScript a Tune-Up
 
Improving your Agile Process
Improving your Agile ProcessImproving your Agile Process
Improving your Agile Process
 
How to not fail at security data analytics (by CxOSidekick)
How to not fail at security data analytics (by CxOSidekick)How to not fail at security data analytics (by CxOSidekick)
How to not fail at security data analytics (by CxOSidekick)
 
Slides Cost Based Performance Modelling
Slides Cost Based Performance ModellingSlides Cost Based Performance Modelling
Slides Cost Based Performance Modelling
 
Kusto (Azure Data Explorer) Training for R&D - January 2019
Kusto (Azure Data Explorer) Training for R&D - January 2019 Kusto (Azure Data Explorer) Training for R&D - January 2019
Kusto (Azure Data Explorer) Training for R&D - January 2019
 
Meetup 29042015
Meetup 29042015Meetup 29042015
Meetup 29042015
 
Mantis: Netflix's Event Stream Processing System
Mantis: Netflix's Event Stream Processing SystemMantis: Netflix's Event Stream Processing System
Mantis: Netflix's Event Stream Processing System
 
Approaches for application request throttling - dotNetCologne
Approaches for application request throttling - dotNetCologneApproaches for application request throttling - dotNetCologne
Approaches for application request throttling - dotNetCologne
 
An Introduction to ORYX Software
An Introduction to ORYX SoftwareAn Introduction to ORYX Software
An Introduction to ORYX Software
 
Approaches for application request throttling - Cloud Developer Days Poland
Approaches for application request throttling - Cloud Developer Days PolandApproaches for application request throttling - Cloud Developer Days Poland
Approaches for application request throttling - Cloud Developer Days Poland
 
Performance Management in ‘Big Data’ Applications
Performance Management in ‘Big Data’ ApplicationsPerformance Management in ‘Big Data’ Applications
Performance Management in ‘Big Data’ Applications
 
Bug prediction + sdlc automation
Bug prediction + sdlc automationBug prediction + sdlc automation
Bug prediction + sdlc automation
 
parellel computing
parellel computingparellel computing
parellel computing
 
Raising the Bar
Raising the BarRaising the Bar
Raising the Bar
 
Simplified Data Processing On Large Cluster
Simplified Data Processing On Large ClusterSimplified Data Processing On Large Cluster
Simplified Data Processing On Large Cluster
 
Week1 programming challenges
Week1 programming challengesWeek1 programming challenges
Week1 programming challenges
 
QConSF 2014 talk on Netflix Mantis, a stream processing system
QConSF 2014 talk on Netflix Mantis, a stream processing systemQConSF 2014 talk on Netflix Mantis, a stream processing system
QConSF 2014 talk on Netflix Mantis, a stream processing system
 
Code Refactoring
Code RefactoringCode Refactoring
Code Refactoring
 
Structured Software Design
Structured Software DesignStructured Software Design
Structured Software Design
 
Itc lec5-24+sep+2012
Itc lec5-24+sep+2012Itc lec5-24+sep+2012
Itc lec5-24+sep+2012
 

More from Kent McDonald

Moving from Business Analyst to Product Owner to Product Manager
Moving from Business Analyst to Product Owner to Product ManagerMoving from Business Analyst to Product Owner to Product Manager
Moving from Business Analyst to Product Owner to Product ManagerKent McDonald
 
21 Story Splitting Patterns
21 Story Splitting Patterns21 Story Splitting Patterns
21 Story Splitting PatternsKent McDonald
 
How to discover the right product to solve the right problem
How to discover the right product to solve the right problemHow to discover the right product to solve the right problem
How to discover the right product to solve the right problemKent McDonald
 
How to Find the Real Need with Socratic Questioning
How to Find the Real Need with Socratic QuestioningHow to Find the Real Need with Socratic Questioning
How to Find the Real Need with Socratic QuestioningKent McDonald
 
Stakeholders are problematic
Stakeholders are problematicStakeholders are problematic
Stakeholders are problematicKent McDonald
 
How to build shared understanding with example mapping
How to build shared understanding with example mappingHow to build shared understanding with example mapping
How to build shared understanding with example mappingKent McDonald
 
How to build shared understanding with example mapping
How to build shared understanding with example mappingHow to build shared understanding with example mapping
How to build shared understanding with example mappingKent McDonald
 
Examining the Product Owner Role
Examining the Product Owner RoleExamining the Product Owner Role
Examining the Product Owner RoleKent McDonald
 
How to Find the Real Need with Socratic Questioning
How to Find the Real Need with Socratic QuestioningHow to Find the Real Need with Socratic Questioning
How to Find the Real Need with Socratic QuestioningKent McDonald
 
Agile Leadership: Accelerating Business Agility - Context
Agile Leadership: Accelerating Business Agility - ContextAgile Leadership: Accelerating Business Agility - Context
Agile Leadership: Accelerating Business Agility - ContextKent McDonald
 
Analysis With an Agile Mindset Workshop
Analysis With an Agile Mindset WorkshopAnalysis With an Agile Mindset Workshop
Analysis With an Agile Mindset WorkshopKent McDonald
 

More from Kent McDonald (11)

Moving from Business Analyst to Product Owner to Product Manager
Moving from Business Analyst to Product Owner to Product ManagerMoving from Business Analyst to Product Owner to Product Manager
Moving from Business Analyst to Product Owner to Product Manager
 
21 Story Splitting Patterns
21 Story Splitting Patterns21 Story Splitting Patterns
21 Story Splitting Patterns
 
How to discover the right product to solve the right problem
How to discover the right product to solve the right problemHow to discover the right product to solve the right problem
How to discover the right product to solve the right problem
 
How to Find the Real Need with Socratic Questioning
How to Find the Real Need with Socratic QuestioningHow to Find the Real Need with Socratic Questioning
How to Find the Real Need with Socratic Questioning
 
Stakeholders are problematic
Stakeholders are problematicStakeholders are problematic
Stakeholders are problematic
 
How to build shared understanding with example mapping
How to build shared understanding with example mappingHow to build shared understanding with example mapping
How to build shared understanding with example mapping
 
How to build shared understanding with example mapping
How to build shared understanding with example mappingHow to build shared understanding with example mapping
How to build shared understanding with example mapping
 
Examining the Product Owner Role
Examining the Product Owner RoleExamining the Product Owner Role
Examining the Product Owner Role
 
How to Find the Real Need with Socratic Questioning
How to Find the Real Need with Socratic QuestioningHow to Find the Real Need with Socratic Questioning
How to Find the Real Need with Socratic Questioning
 
Agile Leadership: Accelerating Business Agility - Context
Agile Leadership: Accelerating Business Agility - ContextAgile Leadership: Accelerating Business Agility - Context
Agile Leadership: Accelerating Business Agility - Context
 
Analysis With an Agile Mindset Workshop
Analysis With an Agile Mindset WorkshopAnalysis With an Agile Mindset Workshop
Analysis With an Agile Mindset Workshop
 

Recently uploaded

Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 

Recently uploaded (20)

Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 

Estimating in Software Development: No Silver Bullets Allowed

  • 1. Estimating in Software Development: No Silver Bullets Allowed Kent J. McDonald @beyondreqs
  • 3. A Familiar Situation? Issues with Estimating Estimating Techniques
  • 4. Don’t worry, we’ll get to these…
  • 5. Has this ever happened to you? Ok, great. The Sales How long will it VP promised an I just found out take to build the estimate to the about it this commission CEO next Monday. morning, so I’ll need system? It better be right. to do some analysis .
  • 6. Issues with Estimating Initial Uncertainty Accuracy/Effort Tradeoff False Precision Differing Skill Levels
  • 9. Cone of Uncertainty a Practical Use
  • 10. Hurricane Sandy – Actual Path
  • 11. Accuracy/Effort Tradeoff
  • 14. How precise do you have to be? How long, and Approximately 374 how much? days and $2,548,931.27.
  • 16. People finish tasks at different speeds
  • 17. Estimating Techniques Guestimate Break it down, add it up Relative Estimating
  • 19. Aka “Gut Feel” or “Ball Park” How long, and how much? About a year and $2.5 million.
  • 20. Comparison to Past Projects $1,000 $100K $10M ?? $1M
  • 21. Your turn… Want to create an online application for Mortgage Insurance How long to deliver the online application for Mortgage Insurance? A ballpark answer is sufficient.
  • 22.
  • 23. Does it address our issues? Initial Uncertainty Accuracy/Effort Tradeoff False Precision Differing Skill Levels
  • 26. Break overall effort into bits
  • 27. Assign factor to each small bit Tasks Time Factor # of Total Time (hour/bit) bits (hours) Interfaces GUI - Simple 8 GUI - Medium 16 GUI - Hard 24 System Interface - Simple 12 System Interface - Complex 30 Total Interfaces Processes Simple Process 16 Medium Process 32 Complex Process 48 Total Processes
  • 28. Where do we come up with the factors?
  • 29. This is where time cards may be useful…  Know ahead of time what you want to track  Build up information over time  Often requires excruciating detail in time collection.
  • 30. Identify How Many Bits Tasks Time Factor # of Total Time (hour/bit) bits (hours) Interfaces GUI - Simple 8 3 GUI - Medium 16 2 GUI - Hard 24 1 System Interface - Simple 12 3 System Interface - Complex 30 2 Total Interfaces 11 Processes Simple Process 16 5 Medium Process 32 4 Complex Process 48 3 Total Processes 12
  • 31. Do the math to get an estimate Tasks Time Factor # of Total Time (hour/bit) bits (hours) Interfaces GUI - Simple 8 3 24 GUI - Medium 16 2 32 GUI - Hard 24 1 24 System Interface - Simple 12 3 36 System Interface - Complex 30 2 60 Total Interfaces 11 176 Processes Simple Process 16 5 80 Medium Process 32 4 128 Complex Process 48 3 144 Total Processes 12 352
  • 32. This gives us development hours
  • 33. What about analysis & testing &…  Percentage of development hours  Estimate tasks separately  You mean we have to estimate analysis & testing?
  • 34. Data Warehouse Example Adding a new source to data warehouse  Count of sources  Count of tables/source  Count of elements/table  Considerations of complexity
  • 35. Data Warehouse Example 1. Gather all the info 2. Plug it into a spreadsheet 3. Look at the resulting (realistic but “too high”) number 4. Revise…
  • 36. Your turn… Want to create an online application for Mortgage Insurance How long to deliver the online application for Mortgage Insurance? Identify how you would break this down to estimate
  • 37.
  • 38. Of Course there’s always Function Points…
  • 39. Or, you could always add up tasks
  • 40. Does it address our issues? Initial Uncertainty Accuracy/Effort Tradeoff False Precision Differing Skill Levels
  • 42. Another Look - Decomposition
  • 43. Calibrated Estimates in Ranges Manage Moderate Manage Build Manage Tracks Content Deadlines Program Venue 1 – 2 Days 3 – 5 Days 1 – 2 Days 4 – 6 Days .5 – 1 Days 9.5 – 16 Days @ $100/hour & 8 hours/day $7,600 – $12,800 Note, Entire team calibrated and involved in determining these estimates.
  • 44. For More information How to Measure Anything: Finding the Value of Intangibles in Business by Douglas W. Hubbard HowToMeasureAnything.com
  • 45. Where it Helps Initial Uncertainty Accuracy/Effort Tradeoff False Precision Differing Skill Levels
  • 47. Ah ha! Here’s the poker connection!
  • 48. Discuss (briefly) the item to estimate As an Event Organizer I want to know how audience members vote by athlete by gender So That I can determine if men and women vote differently.
  • 51. Estimating Scales (Modified) Fibonacci Sequence: 0, ½, 1, 2, 3, 5, 8, 13, 20, 40, 80, 100 Using a regular deck of cards: A, 2, 3, 5, 8, King Team Member Hands: 1–5 Leonardo Pisano Bigollo aka Fibonacci Italian Mathematician
  • 53. Discuss outliers Well, we changed the voting I wasn’t sure we knew how machines to ask gender a Andwhy did youthe two So how about pick during Yeah, what she said. to tell an audience sign in last iteration, so it king? aces? member’s gender. should be easy
  • 55. Extrapolate based on Velocity Assumptions:  2 week iterations  Overall backlog size: 600 points  Planning Velocity: 30  5 Person Team  Avg Cost/person/wk: $4,000 Estimate: $800,000
  • 56. Your turn… Determine relative sizes of these various features using the scale 1,2,3,4,5 Based on this feature being sized an 1.
  • 57.
  • 58. Does it address our issues? Initial Uncertainty Accuracy/Effort Tradeoff False Precision Differing Skill Levels
  • 60. An Alternative to Planning Poker 1 2 3 5 8 User Story User Story User Story User Story User Story User Story User Story User Story User Story User Story User Story User Story
  • 61. How should we approach estimating for a project?
  • 62. Calibrated Guestimate Phase Based Estimates Break it down add it up Set expectation for revisions
  • 63. Agile Comparison Calibrated to past Estimates projects Extrapolate from Velocity Set expectation for revisions
  • 64. If you remember nothing else Initial Don’t spend uncertainty more effort means you will than it’s not be accurate. worth. Don’t imply Incorporate more precision multiple than is perspectives. possible.
  • 65. Questions? Kent J. McDonald kent@kentmcdonald.com www.BeyondRequirements.com Twitter: @BeyondReqs Slides available from: http://www.knowledgebridgepart ners.com/presentations/software estimating/ 65

Editor's Notes

  1. What do poker, Greek oracles, an Italian mathematician from the middle ages, and the path of hurricanes have in common?  Given the title of this presentation, chances are it has something to do with estimation, but you’ll have to come see it to get the full connection.In case that wasn’t sufficient enticement, Kent McDonald discusses the challenges and realities of estimating knowledge work, be it analysis, testing, software development, or the entire effort.  One big challenge and reality is there are no guaranteed ways to arrive at perfectly accurate or precise estimates, which ironically is why they are called estimates.  Not being one to whine about a problem without offering a solution, Kent introduces and gives you a chance to practice some practical techniques that your team can use to quickly determine estimates that are just as informative as the ones you just spent six weeks formulating.
  2. Image credit:http://www.crystalinks.com/delpipythia.jpghttp://www.fibonacci.name/images/Fibonacci.jpeg
  3. Not much is known about projects when estimates are made
  4. Everyone wants “accurate” estimatesEstimates are inherently inaccurate.
  5. Point of diminishing returns
  6. Different people take different amount of time to do a task based on skill