"Prediction is very difficult, especially about the future” – Niels Bohr, Danish physicist. For better or for worse, most times estimation is not optional during software development projects. And there are some key questions about it, which sooner or later, anyone involved in such activities does wonder about. Why do we even care about estimations? What are the outcomes that we obtain from estimating – if any? When should I provide estimations? What am I supposed to measure when estimating? Which artifacts are subjected to receive estimations? Are there any helpful tools or techniques? When are we going to deliver? … You’re invited to join us in this interactive discussion about Agile Estimation, where you’ll be challenged to expand the former list and receive some useful answers!
2. 8 – 10 March 2011 | Dubai, UAE Jose Luis Soria ALM Team Lead Plain Concepts (Almost) everything you need to knowto begin doing Agile Estimation SESSION CODE: IAT205
3. 3 Jose Luis Soria ALM Team Lead at Plain Concepts Professional Scrum Developer Trainer MCTS in Team Foundation Server jlsoria@plainconcepts.com @jlsoriat www.plainconcepts.com geeks.ms/blogs/jlsoria
4. “Prediction is very difficult, especially about the future” Niels Bohr, Danish physicist 4
5. 5 AgendaWhat are we going to deal with? Questions & AnswersaboutEstimation Questions & Answersabout Agile Estimation YourQuestions and (hopefully) theanswers
7. 7 ? What is an estimation? Estimation is the calculated approximation of a result which is usable even if input data may be incomplete or uncertain(Wikipedia) es·ti·ma·tion – a rough calculation of thevalue, number, quantity, orextent of something (Oxford Dictionary of English)
8. 8 What is not an estimation? Estimation ≠ Certainty Estimation≠ Goal Estimation ≠ Commitment Estimation ≠ Plan Estimation ≠ Value Butweoftentakeestimations as oneor more of these!!!
9. 9 Why do we estimate? We’reaskedto do it! It’sthe base of planning It reduces risk and uncertainty Itsupportsbetterdecisionmaking Itincreasesconfidence Wegain a lot of informationaboutourproject
11. 11 Who participates in estimation? Agile Estimation is shared Have you seen the TV show «Who wants to be a millionaire»? One of the lifelines is «Ask the Audience». It has near-perfect accuracy (95%) Two (or more) heads are better than one! Usually, an Agile Teamwillnotknow in advancewhichmemberwill do the actual work Whenusingsharedestimates, we’reuncoveringinformationthatmaybewouldn’t be availableotherwise
12. 12 When do we estimate? Imagine thatyouneededtogofrom Dubai to Madrid… byroad!!! 5.600 kms
13. 13 When do we estimate? Agile Estimation is performed along the entire project Weneedtooutline a plan at thebeginning Butwe’ll be improvingestimates and re-estimatingduringtheentireproject Weestimateproductbacklogitems at thebeginning of eachrelease Weestimateproductbacklogitems at thebeginning of eachiteration Weestimatetasks at thebeginning, and duringeach Sprint, ifneeded
14. 14 How are the outcomes of estimation? Imagine thatyouneededtogofrom Dubai to Madrid… byroad!!! Butwhenyouarriveto Abu Dhabi, you’reinformedthatyou can take a flightfromthere
15. 15 How are the outcomes of estimation? Outcomes are subjected to change. Change is encouraged Duringtheproject, youwill re-estimatedependingonthecircumstances and theenvironment Wewill re-estimatewhenwefeelthatthe original estimatewaswrong, orthesize of theitem has changed Estimationencourageschange
16. 16 How accurate should the estimates be? ConsidertheCoastlineParadox (Lewis Richardson, BenoitMandelbrot) Ifoneweretoattempttomeasurethecoastlineortheboundary of twonations, thevaluewoulddependonthelength of themeasuringstick
17. 17 How accurate should the estimations be? Estimates are accurate enough Itdependsonthemoment Itdependsontheitembeingestimated, and itspriority We’d stop whenwe’reconfidentenoughwiththeestimateto be usefultosupportplanning Complexitygrows in orders of magnitude
18. 18 Which artifacts are subjected to estimation? Estimates are made on requirements Whichartifacts are mostlikelyto be askedforestimates? You are goingtoneedtoprovideestimatesforfeatures, characteristics, bugs, etc., in ordertobuild a plan Butsometimesisnotvaluabletoestimatetasks Parkinson’slaw: Work expands so as to fill the time available for its completion Effort Time
19. 19 What are we measuring? Imagine thatyou’reaskedtomove a pile of rocks. Howlongwillittake? Estimatethenumber of wheelbarrowloads in the pile Calculatethe time spent in eachwheelbarrow (in average)
20. 20 What are we measuring? Nowyou can easilyapplythesameapproach, evenifthesubjectbeingestimatedisdifferent Size / Velocity = Duration
21. 21 What are we measuring? Estimatesrefertosize and then derive intoduration Sizeestimates are reusable Weseparateestimatingsizefromestimatingduration. Weusuallywanttoestimatesize, butwe’ll be askedforduration Wedon’testimatedurationdirectly We use sizeestimations as the base toestimateduration Features Planning Estimateduration Estimatesize
22. 22 But, what does “size” mean at all? «Size» isanaggregatethatgivesusanoverall idea aboutseveralcharacteristics of thesubjectbeingestimated Complexity Effort Risk Most times, it can be easilyrelatedtocost
23. 23 How do we measure? Forsizeestimates T-shirtsizes Storypoints Ideal days Fordurationestimates Actual days
24. 24 How are T-Shirt sizes used? Relativemeasurement Theestimationismade in orders of magnitude There’reonly a fewoptions, so it’ssimpler Everyone can takepart in theestimation Usefulforthefirststages of planning, orfortheleastimportantpart of thebacklog
25. 25 How are story points used? A storypointis a numberwhichrepresentsthesize of anitem The actual numberisn’timportant; itonly has meaningwhencomparedtootherestimates It’s a relativemeasurement Theestimationismade in orders of magnitude, butit’sfiner-grainedthan T-Shirtsizes Theyencouragecross-functionality
26. 26 How are ideal days used? An ideal dayis a figurativerepresentation of a day of work Itis as ifwewereworking in theprojectalltheavailable time So, theyare completelyfictitious We’llformulatetheestimate in terms of howmany ideal dayswouldtaketofinishtheitem Itisanabsolutemeasurement It has a concrete meaning, beyondthevalue Youcan’tgetthemdirectly as actual days
27. 27 Absolute or relative… which is better? Relativeestimates are preferred Relativeestimatesadvantages Encouragecross-functionalbehavior Do notdecay Are a puremeasure of size They are fastertoprovide My ideal daysaren’tthesame as yours Absoluteestimatesadvantages We’re more usedtothem. It’seasierto use them at thebeginning They’reeasiertoexplainoutsidetheTeam
28. 28 Do we have any estimation techniques or tools? We can use severaltools as anaidtoestimate Expertopinion Analogy Disaggregation Delphi PlanningPoker
29. 29 Which aspects of estimation do we value? Theprocessis more importantthantheoutcomes What do youknowaboutFinland? Let’sestimateitspopulation Nowyouknowsomethingsthatmaybeyou’venotnoticedbefore!
30. 30 Summarizing… how is agile estimation? It is shared Is performed along the entire project Outcomes are subjected to change. Change is encouraged Estimates are accurate enough Estimates are made on requirements Estimates refer to size and then derive into duration Relative estimates are preferred We can use several tools as an aid The process is more important than the outcomes
32. 32 Session specific content Agile Estimating and Planning (Mike Cohn) http://bit.ly/dyPv1S Software Estimation: Desmystifying the Black Art (Steve McConnell) http://www.stevemcconnell.com/est.htm http://www.planningpoker.com
33. 33 Related content Scrum’s home: www.scrum.org Team Foundation Server: http://bit.ly/dMTJx2 Application Lifecycle Management: http://bit.ly/awjqx9 Professional Scrum Developer Program: http://bit.ly/dppXd0
34. 34 Related Sessions at TechEd Agile CMMI - Embrace Maturity with Scrum, Visual Studio 2010 and TFS 2010 Jose Luis Soria - Wed, Mar 9, 2011 15:30 – Green Room 4 Introduction to Test Case Management in Microsoft Visual Studio 2010 with Microsoft Test and Lab Manager - Ahmed Bahaa - Thu, Mar 10, 2011 - 9:00 - Yellow Lab 1 Team Foundation Server: What Happens after the Install Button… Anton Delsink - Thu, Mar 10, 2011 - 15:00 - Purple Room 2
35. 35 Professional Scrum Developer ProgramAnnouncement An innovate program for developers from Microsoft and the founders of Scrum Learn how to use modern engineering practices to develop an increment of complete, potentially shippable functionality using Visual Studio 2010, ALM, and the Scrum framework Training course, assessment, and certification available Visit MSDN for more details: http://bit.ly/dppXd0
Examples of estimations:Number of people living in a country in a givenmomentNumber of grains of sand in thedesertNumber of stars in ourgalaxy
Estimation always implies uncertainty Most times, uncertainty is higher when estimations are more used, needed or demandedA Goal is a statement of a business objectiveBut desirable or mandatory doesn’t neccesarily mean achievableCommitments are made to datesAny estimation implies a probability – you shouldn’t commit to a probabilityNevertheless, you can commit to a date while having in mind the uncertaintyAn estimation should be unbiased and aimed at accuracyA plan is biased and usually needs to accomodate some goalsEstimation is a part of planning. Plans depend on estimationsAn user can’t run or use an estimate. An estimate is not a piece of working softwareOnce the project is over, most times estimates are not valuable for the customerBecause of this, we should do estimations only when it’s really needed or valuable (more on this later…)