29
Rosso-Llopart ©2013 1 Agile Estimation Mel Rosso-Llopart Carnegie Mellon University

Agile estimation 1_Мел Росс

Embed Size (px)

Citation preview

Page 1: Agile estimation 1_Мел Росс

Rosso-Llopart ©2013 1

Agile Estimation

Mel Rosso-Llopart Carnegie Mellon University

Page 2: Agile estimation 1_Мел Росс

Rosso-Llopart ©2013 2

Agenda

Software Estimation Concepts – Agile Techniques – Exercises on estimation

Other Estimation techniques – FP: Exercises on how to estimate

Improving your estimation – Case study – Estimation as a tool

Wrapup

Page 3: Agile estimation 1_Мел Росс

Rosso-Llopart ©2013 3

Software Estimation concepts (How to be Agile and still keep you job)

Page 4: Agile estimation 1_Мел Росс

Rosso-Llopart ©2013 4

Agenda Background What is estimation Important concepts

− Time Boxing

How to improve − Wideband Delphi

Exercises Summary

Page 5: Agile estimation 1_Мел Росс

Rosso-Llopart ©2013 5

Teaching at Carnegie Mellon University since 2000 − Master of SwE graduate − Senior lecturer

15 years experience Department of defense

4 years owning my own companies

My Background

Page 6: Agile estimation 1_Мел Росс

Rosso-Llopart ©2013 6

Degrees in SwE, CS, Biology and Physics

2 years working for Daimler/Chrysler

Currently − Associate director MSE − Teaching Professor 2000

My Background

Page 7: Agile estimation 1_Мел Росс

Rosso-Llopart ©2013 7

What Estimation is NOT

A crystal ball A guarantee of how long something will

take A way to predict the future A process of telling people how they

should do their work Gambling – place your bet

Page 8: Agile estimation 1_Мел Росс

Rosso-Llopart ©2013 8

What is Estimation Software cost estimation

“Predicting the resources required for a software development process” Ian Sommerville

Estimate noun [C] “an approximate calculation or judgement of the size, value, amount, cost, etc. of something” Cambridge Dictionary

Page 9: Agile estimation 1_Мел Росс

Rosso-Llopart ©2013 9

Agenda Background What is estimation Important concepts

− Time boxing

How to improve − Wideband Delphi

Exercises Summary

Page 10: Agile estimation 1_Мел Росс

Rosso-Llopart ©2013 10

Estimation techniques There is no simple way to make an accurate estimate of

the effort required to develop a software system − Initial estimates are based on inadequate information in a user

requirements definition − The software may run on unfamiliar computers or use new

technology − The people in the project may be unknown

Project cost estimates may be self-fulfilling − The estimate defines the budget and the product is adjusted to

meet the budget (Parkinson’s Law)

Page 11: Agile estimation 1_Мел Росс

Rosso-Llopart ©2013 11

Estimation Worst Practices • No historical data • Failure to monitor and track status • Creating documentation after coding • Excessive and irrational schedule pressures • Failure to establish clear acceptance criteria • Leave all testing for the end

• Reduce testing time to make schedule • Don’t allow estimation techniques enough time to

work

Page 12: Agile estimation 1_Мел Росс

Rosso-Llopart ©2013 12

What kind of things do we estimate?

Time Money (cost) Size of what we can build Number of features we can deliver How long before our boss comes back and

figures out we are not doing what we said

Page 13: Agile estimation 1_Мел Росс

Rosso-Llopart ©2013 13

Estimating exercise 1

How many tennis balls will it take to fill this room? − How would you go about making the estimate? –

Explain in Details − What do you need to know? − What assumptions would you make?

Page 14: Agile estimation 1_Мел Росс

Rosso-Llopart ©2013 14

Estimating exercise 2 If the project is well understood

− 2 months to deliver (40 days) − 25 LOC per day per engineer − Estimated 5000 LOC − How many people needed?

What are the major assumptions above? Did any of you already make an estimate today? For example: How long it would take you to get to the workshop?

Page 15: Agile estimation 1_Мел Росс

Rosso-Llopart ©2013 15

Time Boxing a way to manage estimation

Fitting the work to the time, not the time to the work.

Holding the time fixed and increasing the effort within the time frame to complete the work needed.

Page 16: Agile estimation 1_Мел Росс

Rosso-Llopart ©2013 16

Concept in a nutshell (staff allocation in a time box)

Page 17: Agile estimation 1_Мел Росс

Rosso-Llopart ©2013 17

Effect of time boxing on Effort

Page 18: Agile estimation 1_Мел Росс

Rosso-Llopart ©2013 18

Impossible and Impractical

There are a Range of values for any task that are Impossible and Impractical − Impossible it too fast for the group, this is always

being renegotiated, but there are values that will always be impossible

− Impractical it is too slow, no one will ever wait that long

Page 19: Agile estimation 1_Мел Росс

Rosso-Llopart ©2013 19

Tradeoff region

Page 20: Agile estimation 1_Мел Росс

Rosso-Llopart ©2013 20

Agenda Background What is estimation Important concepts Time boxing

How to improve − Wideband Delphi

Exercises Summary

Page 21: Agile estimation 1_Мел Росс

Rosso-Llopart ©2013 21

Improving Your Chances: Wideband Delphi

• Six step process – Planning – define the scope of the problem

Break large problems into smaller – The Kickoff – To deliver problem to team – Individual preparation – Everyone does individual estimates on

problem parts All assumptions are written down

– Estimation Meeting – Everyone on team gets together – Assembling Tasks – Put together the whole project of estimates – Review Results – Bring team back to review final results

Page 22: Agile estimation 1_Мел Росс

Rosso-Llopart ©2013 22

The Delphi process in Wideband Estimation Meeting

− A moderator collects the estimates for the task being estimated Present the average or a line with all estimates (anonymous)

− The estimate is discussed and assumptions presented − Moderator calls for a new estimate from everyone − Values are again presented to the team as average or line − Continue process until:

Four rounds are completed The estimates “converged” to an acceptably narrow range The allotted meeting time is complete All participants are unwilling to change their estimates

− 15-20 minutes per item discussed

Page 23: Agile estimation 1_Мел Росс

Rosso-Llopart ©2013 23

Rounds in Delphi

Page 24: Agile estimation 1_Мел Росс

Rosso-Llopart ©2013 24

Rules to insure best results for Wideband Delphi

• Gather a heterogeneous team (Why?) • Write down assumptions • Make anonymous estimates (Why?) • Never estimate tasks larger than you are

comfortable with And Remember this is “estimation” not “prediction”

Page 25: Agile estimation 1_Мел Росс

Rosso-Llopart ©2013 25

Exercise We will perform Wide band Delphi 1. You will answer on your own the questions asked on

the sheet 2. Then you will break up into teams and perform

Wideband Delphi – Use your individual answers as the first round (You should have a team sheet also.)

3. We will come back together as a group and get the answers.

4. We will evaluate the individual and team answers

Page 26: Agile estimation 1_Мел Росс

Rosso-Llopart ©2013 26

Answers are:

Page 27: Agile estimation 1_Мел Росс

Rosso-Llopart ©2013 27

Discussion time

Was this hard to do? What makes it hard or easy to do? Will you consider using Wideband Delphi?

− Why or why not?

Page 28: Agile estimation 1_Мел Росс

Rosso-Llopart ©2013 28

Questions

Page 29: Agile estimation 1_Мел Росс

Rosso-Llopart ©2013 29

References

Mike Cohn, “Agile Estimation and Planning”, Prentice Hall, 2006.

Watts Humphrey, “Introduction to the Personal Software Process”, Addison-Wesley, 1997.

Steve McConnell, “Software Estimation Demystifying the Black Art”, Microsoft press, 2006.