estimating in software development: no silver bullets allowed

65
Estimating in Software Development: No Silver Bullets Allowed Kent J. McDonald @beyondreqs

Upload: kent-mcdonald

Post on 22-Apr-2015

534 views

Category:

Technology


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

Page 1: Estimating in Software Development: No Silver Bullets Allowed

Estimating in Software Development: No Silver Bullets Allowed

Kent J. McDonald@beyondreqs

Page 2: Estimating in Software Development: No Silver Bullets Allowed

Disclaimer

Page 3: Estimating in Software Development: No Silver Bullets Allowed

A Familiar Situation?

Issues with Estimating

Estimating Techniques

Page 4: Estimating in Software Development: No Silver Bullets Allowed

Don’t worry, we’ll get to these…

Page 5: Estimating in Software Development: No Silver Bullets Allowed

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.

Page 6: Estimating in Software Development: No Silver Bullets Allowed

Issues with Estimating

Initial Uncertainty Accuracy/Effort Tradeoff

False Precision Differing Skill Levels

Page 7: Estimating in Software Development: No Silver Bullets Allowed

Initial Uncertainty

Page 8: Estimating in Software Development: No Silver Bullets Allowed

Cone of Uncertainty

Page 9: Estimating in Software Development: No Silver Bullets Allowed

Cone of Uncertainty a Practical Use

Page 10: Estimating in Software Development: No Silver Bullets Allowed

Hurricane Sandy – Actual Path

Page 11: Estimating in Software Development: No Silver Bullets Allowed

Accuracy/Effort Tradeoff

Page 12: Estimating in Software Development: No Silver Bullets Allowed

Point of Diminishing Returns

Page 13: Estimating in Software Development: No Silver Bullets Allowed

False Precision

Page 14: Estimating in Software Development: No Silver Bullets Allowed

How precise do you have to be?How long, and

how much?Approximately 374 days and

$2,548,931.27.

Page 15: Estimating in Software Development: No Silver Bullets Allowed

Differing skill levels

Page 16: Estimating in Software Development: No Silver Bullets Allowed

People finish tasks at different speeds

Page 17: Estimating in Software Development: No Silver Bullets Allowed

Estimating Techniques

Guestimate Break it down, add it up

Relative Estimating

Page 18: Estimating in Software Development: No Silver Bullets Allowed

Guestimate

Page 19: Estimating in Software Development: No Silver Bullets Allowed

Aka “Gut Feel” or “Ball Park”How long, and

how much? About a year and $2.5 million.

Page 20: Estimating in Software Development: No Silver Bullets Allowed

Comparison to Past Projects

$1,000 $100K $10M

??

??

??

$1M

Page 21: Estimating in Software Development: No Silver Bullets Allowed

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.

Page 22: Estimating in Software Development: No Silver Bullets Allowed
Page 23: Estimating in Software Development: No Silver Bullets Allowed

Does it address our issues?

Initial Uncertainty Accuracy/Effort Tradeoff

False Precision Differing Skill Levels

Page 24: Estimating in Software Development: No Silver Bullets Allowed

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

Page 25: Estimating in Software Development: No Silver Bullets Allowed

Break it downAdd it up

Page 26: Estimating in Software Development: No Silver Bullets Allowed

Break overall effort into bits

Page 27: Estimating in Software Development: No Silver Bullets Allowed

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

Page 28: Estimating in Software Development: No Silver Bullets Allowed

Where do we come up with the factors?

Page 29: Estimating in Software Development: No Silver Bullets Allowed

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.

Page 30: Estimating in Software Development: No Silver Bullets Allowed

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

Page 31: Estimating in Software Development: No Silver Bullets Allowed

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

Page 32: Estimating in Software Development: No Silver Bullets Allowed

This gives us development hours

Page 33: Estimating in Software Development: No Silver Bullets Allowed

What about analysis & testing &…

Percentage of development hours

Estimate tasks separately

You mean we have to estimate analysis & testing?

Page 34: Estimating in Software Development: No Silver Bullets Allowed

Data Warehouse Example

Adding a new source to data warehouse Count of sources Count of tables/source Count of

elements/table Considerations of

complexity

Page 35: Estimating in Software Development: No Silver Bullets Allowed

Data Warehouse Example

1. Gather all the info2. Plug it into a

spreadsheet3. Look at the resulting

(realistic but “too high”) number

4. Revise…

Page 36: Estimating in Software Development: No Silver Bullets Allowed

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

Page 37: Estimating in Software Development: No Silver Bullets Allowed
Page 38: Estimating in Software Development: No Silver Bullets Allowed

Of Course there’s always Function Points…

Page 39: Estimating in Software Development: No Silver Bullets Allowed

Or, you could always add up tasks

Page 40: Estimating in Software Development: No Silver Bullets Allowed

Does it address our issues?

Initial Uncertainty Accuracy/Effort Tradeoff

False Precision Differing Skill Levels

Page 41: Estimating in Software Development: No Silver Bullets Allowed

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

Page 42: Estimating in Software Development: No Silver Bullets Allowed

Another Look - Decomposition

Page 43: Estimating in Software Development: No Silver Bullets Allowed

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.

Page 44: Estimating in Software Development: No Silver Bullets Allowed

For More information

How to Measure Anything: Finding the Value of Intangibles in Businessby Douglas W. Hubbard

HowToMeasureAnything.com

Page 45: Estimating in Software Development: No Silver Bullets Allowed

Where it Helps

Initial Uncertainty Accuracy/Effort Tradeoff

False Precision Differing Skill Levels

Page 46: Estimating in Software Development: No Silver Bullets Allowed

Relative Estimating

Page 47: Estimating in Software Development: No Silver Bullets Allowed

Ah ha! Here’s the poker connection!

Page 48: Estimating in Software Development: No Silver Bullets Allowed

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.

Page 49: Estimating in Software Development: No Silver Bullets Allowed

The Delphi Technique

Page 50: Estimating in Software Development: No Silver Bullets Allowed

Everyone selects an estimate

Page 51: Estimating in Software Development: No Silver Bullets Allowed

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

Page 52: Estimating in Software Development: No Silver Bullets Allowed

Reveal estimates all at once

Page 53: Estimating in Software Development: No Silver Bullets Allowed

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.

Page 54: Estimating in Software Development: No Silver Bullets Allowed

Repeat until convergence

Page 55: Estimating in Software Development: No Silver Bullets Allowed

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

Page 56: Estimating in Software Development: No Silver Bullets Allowed

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.

Page 57: Estimating in Software Development: No Silver Bullets Allowed
Page 58: Estimating in Software Development: No Silver Bullets Allowed

Does it address our issues?

Initial Uncertainty Accuracy/Effort Tradeoff

False Precision Differing Skill Levels

Page 59: Estimating in Software Development: No Silver Bullets Allowed

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

Page 60: Estimating in Software Development: No Silver Bullets Allowed

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

Page 61: Estimating in Software Development: No Silver Bullets Allowed

How should we approach estimating for a project?

Page 62: Estimating in Software Development: No Silver Bullets Allowed

Phase BasedGuestimate

Break it down add it

up

Set expectation for

revisions

Calibrated

Estimates

Page 63: Estimating in Software Development: No Silver Bullets Allowed

AgileComparis

onto past

projects Extrapolate from Velocity

Set expectation for

revisions

Calibrated

Estimates

Page 64: Estimating in Software Development: No Silver Bullets Allowed

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.