agile estimation 1_Мел Росс
TRANSCRIPT
Rosso-Llopart ©2013 1
Agile Estimation
Mel Rosso-Llopart Carnegie Mellon University
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
Rosso-Llopart ©2013 3
Software Estimation concepts (How to be Agile and still keep you job)
Rosso-Llopart ©2013 4
Agenda Background What is estimation Important concepts
− Time Boxing
How to improve − Wideband Delphi
Exercises Summary
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
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
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
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
Rosso-Llopart ©2013 9
Agenda Background What is estimation Important concepts
− Time boxing
How to improve − Wideband Delphi
Exercises Summary
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)
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
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
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?
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?
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.
Rosso-Llopart ©2013 16
Concept in a nutshell (staff allocation in a time box)
Rosso-Llopart ©2013 17
Effect of time boxing on Effort
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
Rosso-Llopart ©2013 19
Tradeoff region
Rosso-Llopart ©2013 20
Agenda Background What is estimation Important concepts Time boxing
How to improve − Wideband Delphi
Exercises Summary
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
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
Rosso-Llopart ©2013 23
Rounds in Delphi
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”
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
Rosso-Llopart ©2013 26
Answers are:
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?
Rosso-Llopart ©2013 28
Questions
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.