Estimating in Software Development: No Silver Bullets Allowed

Post on 22-Apr-2015

535 views 0 download

description

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, and you’ll have to attend this session to get the full connection. Kent McDonald explores the challenges and realities of trying to estimate software-related knowledge work—analysis, testing, development, and the entire project effort. A major challenge is that there are no guaranteed ways to arrive at perfectly accurate estimates, which not surprisingly is why they are called estimates. Kent introduces and gives you a chance to practice quick and practical estimating techniques that will work in different situations—guesstimating, break it down and add it up, and planning poker. Kent has found that these “lite” estimation techniques are almost always just as informative as the ones you just spent six weeks formulating.

Transcript of Estimating in Software Development: No Silver Bullets Allowed

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?How long will it

take to build the

commission system?

I just found out about it this

morning, so I’ll need to do some

analysis .

Ok, great. The Sales VP

promised an estimate to the

CEO next Monday. It

better be right.

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

how much?Approximately 374 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 InsuranceHow 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

When you need an estimate fast

When requester accepts inaccuracy

When you’ll

put more

thought to it

later

When you

have experience

with similar

efforts

Break it downAdd it up

Break overall effort into bits

Assign factor to each small bitTasks Time Factor

(hour/bit)# of bits

Total Time (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 BitsTasks Time Factor

(hour/bit)# of bits

Total Time (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 estimateTasks Time Factor

(hour/bit)# of bits

Total Time (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 info2. Plug it into a

spreadsheet3. Look at the resulting

(realistic but “too high”) number

4. Revise…

Your turn…

Want to create an online application for Mortgage InsuranceHow 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

You have lots of data from similar efforts

The work is stable and predictable

Scope is

fairly certain

Need estimates for

each type of

work

Another Look - Decomposition

Calibrated Estimates in Ranges

Manage Tracks

Moderate Content

Manage Deadlines

Manage Venue

1 – 2 Days 3 – 5 Days 1 – 2 Days

Build Program

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 Businessby 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 OrganizerI want to know how audience members vote by athlete by gender So ThatI can determine if menand 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, 100Using a regular deck of cards:A, 2, 3, 5, 8, KingTeam Member Hands:1 – 5

Leonardo Pisano Bigollo aka FibonacciItalian Mathematician

Reveal estimates all at once

So why did you pick a king?

Discuss outliersI wasn’t sure we knew

how to tell an audience member’s

gender.

And how about the two aces?

Well, we changed the voting machines to ask

gender during sign in last iteration, so it should be

easy

Yeah, what she said.

Repeat until convergence

Assumptions: 2 week iterations Overall backlog size: 600 points Planning Velocity: 30 5 Person Team Avg Cost/person/wk: $4,000

Extrapolate based on Velocity

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

Cross functional team that collaborates well

Planning based on features instead of tasks

Following

iterative

approach

Uncertainty

in the features

accepted and

expected

An Alternative to Planning Poker

User Story

User Story

User Story

User Story

User Story

User Story

User Story

User Story

User Story

User Story

User Story

User Story

1 2 53 8

How should we approach estimating for a project?

Phase BasedGuestimate

Break it down add it

up

Set expectation for

revisions

Calibrated

Estimates

AgileComparis

onto past

projects Extrapolate from Velocity

Set expectation for

revisions

Calibrated

Estimates

If you remember nothing elseInitial uncertainty means you will not be accurate.

Don’t spend more effort than it’s worth.

Don’t imply more precision than is possible.

Incorporate multiple perspectives.