guesstimate - some thoughts on estimation in software development

37
Photo by gordon (TD8316) - Creative Commons Attribution-NonCommercial-ShareAlike License https://www.flickr.com/photos/22934398@N05 Created with Haiku Deck Guesstimate Peter Rubarth, 2014

Upload: project-management-berlin-meetup

Post on 12-Jul-2015

221 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Guesstimate - Some Thoughts on Estimation in Software Development

Photo by gordon (TD8316) - Creative Commons Attribution-NonCommercial-ShareAlike License https://www.flickr.com/photos/22934398@N05 Created with Haiku Deck

GuesstimatePeter Rubarth, 2014

Page 2: Guesstimate - Some Thoughts on Estimation in Software Development

Prediction is very hard, especially if it‘s

about the futureNils Bohr

Page 3: Guesstimate - Some Thoughts on Estimation in Software Development

Exercise 1 – Expert estimation

Write down your estimates for the following facts:

1. Length of German border (in km)2. Amount of water in Bodensee lake (in l)3. Dollars (as notes) in circulations within the USA in 2004 (in

$) 4. Birth year of Alexander the Great (year)5. World wide revenue with movie “Titanic” (in $)6. Latitude of Shanghai (in degrees)7. Temperature on the surface of the sun (in °C)8. Number of bacteria in human intestines9. Number of works of Ludwig van Beethoven10. Expanse of Asia (in km^2)11. Number of stars in Milky Way12. Number newly published books in Germany 2004-200713. Area covered by Hamburger Hafencity including water area

(in ha)

Thank you @projectzone - http://yourprojectzone.com/2014/03/30/uebung-team-estimation-game

Page 4: Guesstimate - Some Thoughts on Estimation in Software Development

Why do we estimate?

Page 5: Guesstimate - Some Thoughts on Estimation in Software Development

●Prepare project bid●Plan time, resources, …●Foster discussion●Determine economic

feasability●Someone told us so●…

Page 6: Guesstimate - Some Thoughts on Estimation in Software Development

What do we estimate?

Page 7: Guesstimate - Some Thoughts on Estimation in Software Development

●Time

●Effort

●Complexity

Page 8: Guesstimate - Some Thoughts on Estimation in Software Development

How do we estimate?

Page 9: Guesstimate - Some Thoughts on Estimation in Software Development

Expert estimation

●Ask someone who should know

Page 10: Guesstimate - Some Thoughts on Estimation in Software Development

Formal model

• COCOMO 2, Function Points, IFPUG FPA, LOC, COSMIC Full Function Point (FFP) …

Page 11: Guesstimate - Some Thoughts on Estimation in Software Development

What could go wrong?

Page 12: Guesstimate - Some Thoughts on Estimation in Software Development

Insufficient data

Page 13: Guesstimate - Some Thoughts on Estimation in Software Development

Negotiation● Now cut that in half and we have a deal

Page 14: Guesstimate - Some Thoughts on Estimation in Software Development

Estimates become targets

● But you’ve said it will take only so long!

Page 15: Guesstimate - Some Thoughts on Estimation in Software Development
Page 16: Guesstimate - Some Thoughts on Estimation in Software Development

Work expands so as to fill the time

available for its completion.

● Parkinson‘s Law

Page 17: Guesstimate - Some Thoughts on Estimation in Software Development

This is why buffers (or the Project Managers‘ multiplier) don‘t work.

Page 18: Guesstimate - Some Thoughts on Estimation in Software Development

Cycle of Mistrust

Deliver the wrong thing, or late

Trust breaks down

Commitments of

scope and time

Focus on schedule

© Copyright Neil Killick, Iterative, 2013

Page 19: Guesstimate - Some Thoughts on Estimation in Software Development

Good Practise

Page 20: Guesstimate - Some Thoughts on Estimation in Software Development

Clarify objectives

• For which purpose?

• What are the risks and mitigation strategies?

• Awareness of the nature of estimations?

Page 21: Guesstimate - Some Thoughts on Estimation in Software Development

Provide ranges not a single value

Likely effort from … to ….

Helps to communicate that an estimate is not a guarantee

Page 22: Guesstimate - Some Thoughts on Estimation in Software Development

Use indirection, avoid direct time estimates

• Abstract units such as Story Points, Ideal Days or T-Shirt sizes help to communicate uncertainty

• Support empiric forecasting

Page 23: Guesstimate - Some Thoughts on Estimation in Software Development

Explicitly state assumptions

Provide a disclaimer:• Which assumptions • Use approach and data• Risks and possible impact

At least you have told `em

Page 24: Guesstimate - Some Thoughts on Estimation in Software Development

Review and update your estimates

• Use what you have learned• Do not hide unwelcome

news• Burnt hours are a bad

progress indicator

Page 25: Guesstimate - Some Thoughts on Estimation in Software Development

The evil of Fixed Price Contracts

Knowing it will take longer does not help, because everything is fixed (unless people really idled before)

Strong incentive to cut corners and damage quality

Page 26: Guesstimate - Some Thoughts on Estimation in Software Development

Even better practise

Page 27: Guesstimate - Some Thoughts on Estimation in Software Development

• FOCUS ON VALUE• DELIVER SMALL SLICES• DELIVER EARLY &

FREQUENTLY• CUSTOMER

COLLABORATION© Copyright Neil Killick, Iterative, 2013

Page 28: Guesstimate - Some Thoughts on Estimation in Software Development

EMPIRICISM

• Use actual results to predict progress

Page 29: Guesstimate - Some Thoughts on Estimation in Software Development

Useful Methods

Page 30: Guesstimate - Some Thoughts on Estimation in Software Development

Group Estimation

Don‘t rely on a single opinion

Methods:• Wideband Delphi• Planning Poker• Affinity Mapping

Page 31: Guesstimate - Some Thoughts on Estimation in Software Development

Analogy Method

• Compare project to previous experience

• Use checklist to compare and classify on different dimensions

• Only useful if sufficient similarity

Page 32: Guesstimate - Some Thoughts on Estimation in Software Development

Affinity Estimation

• Silently order items relative to each other

• Build clusters

• Apply appropriate scale

Page 33: Guesstimate - Some Thoughts on Estimation in Software Development

Now it‘s your turn!

Page 34: Guesstimate - Some Thoughts on Estimation in Software Development

Exercise 2 –Affinity Estimation

1. Take first item and place it in the

center

2. Take turns and position subsequent

item relative to existing items

3. Reorder if you disagree

4. Do not discuss!

Page 35: Guesstimate - Some Thoughts on Estimation in Software Development

Exercise 2 – Affinity estimation

Write down your estimates for the following facts:

1. Length of German border (in km)2. Amount of water in Bodensee lake (in l)3. Dollars (as notes) in circulations within the USA in 2004 (in

$) 4. Birth year of Alexander the Great (year)5. World wide revenue with movie “Titanic” (in $)6. Latitude of Shanghai (in degrees)7. Temperature on the surface of the sun (in °C)8. Number of bacteria in human intestines9. Number of works of Ludwig van Beethoven10. Expanse of Asia (in km^2)11. Number of stars in Milky Way12. Number newly published books in Germany 2004-200713. Area covered by Hamburger Hafencity including water area

(in ha)

Thank you @projectzone - http://yourprojectzone.com/2014/03/30/uebung-team-estimation-game

Page 36: Guesstimate - Some Thoughts on Estimation in Software Development

Exercise 2 –Solution

Find the solution at

http://yourprojectzone.com/2014/03/30/

uebung-team-estimation-game/

Page 37: Guesstimate - Some Thoughts on Estimation in Software Development

Thank you!Twitter: #PRubarth