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

Estimating in Software Development: No Silver Bullets Allowed

  • 1.
    Estimating in Software Development: No Silver Bullets Allowed Kent J. McDonald @beyondreqs
  • 2.
  • 3.
    A Familiar Situation? Issues with Estimating Estimating Techniques
  • 4.
    Don’t worry, we’llget to these…
  • 5.
    Has this everhappened 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 InitialUncertainty Accuracy/Effort Tradeoff False Precision Differing Skill Levels
  • 7.
  • 8.
  • 9.
    Cone of Uncertaintya Practical Use
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
    How precise doyou have to be? How long, and Approximately 374 how much? days and $2,548,931.27.
  • 15.
  • 16.
    People finish tasksat different speeds
  • 17.
    Estimating Techniques Guestimate Break it down, add it up Relative Estimating
  • 18.
  • 19.
    Aka “Gut Feel”or “Ball Park” How long, and how much? About a year and $2.5 million.
  • 20.
    Comparison to PastProjects $1,000 $100K $10M ?? $1M
  • 21.
    Your turn… Want tocreate an online application for Mortgage Insurance How long to deliver the online application for Mortgage Insurance? A ballpark answer is sufficient.
  • 23.
    Does it addressour issues? Initial Uncertainty Accuracy/Effort Tradeoff False Precision Differing Skill Levels
  • 24.
  • 25.
  • 26.
  • 27.
    Assign factor toeach 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 wecome up with the factors?
  • 29.
    This is wheretime 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 ManyBits 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 mathto 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 usdevelopment 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 Addinga 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 tocreate 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
  • 38.
    Of Course there’salways Function Points…
  • 39.
    Or, you couldalways add up tasks
  • 40.
    Does it addressour issues? Initial Uncertainty Accuracy/Effort Tradeoff False Precision Differing Skill Levels
  • 41.
  • 42.
    Another Look -Decomposition
  • 43.
    Calibrated Estimates inRanges 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 InitialUncertainty Accuracy/Effort Tradeoff False Precision Differing Skill Levels
  • 46.
  • 47.
    Ah ha! Here’sthe poker connection!
  • 48.
    Discuss (briefly) theitem 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.
  • 49.
  • 50.
  • 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
  • 52.
  • 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
  • 54.
  • 55.
    Extrapolate based onVelocity 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 relativesizes of these various features using the scale 1,2,3,4,5 Based on this feature being sized an 1.
  • 58.
    Does it addressour issues? Initial Uncertainty Accuracy/Effort Tradeoff False Precision Differing Skill Levels
  • 59.
  • 60.
    An Alternative toPlanning 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 weapproach 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 remembernothing 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

  • #2 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.
  • #5 Image credit:http://www.crystalinks.com/delpipythia.jpghttp://www.fibonacci.name/images/Fibonacci.jpeg
  • #8 Not much is known about projects when estimates are made
  • #12 Everyone wants “accurate” estimatesEstimates are inherently inaccurate.
  • #13 Point of diminishing returns
  • #16 Different people take different amount of time to do a task based on skill