lecture 6 estimation techniques why estimations
play

Lecture 6: Estimation Techniques Why estimations? Project Price - PowerPoint PPT Presentation

Chair of Softw are Engineering Software Engineering Prof. Dr. Bertrand Meyer March 2007 June 2007 Lecturer: Hermann Lehner (http://sct.inf.ethz.ch/h) Slides: Based on KSE06 With kind permission of Peter Mller Lecture 6: Estimation


  1. Chair of Softw are Engineering Software Engineering Prof. Dr. Bertrand Meyer March 2007 – June 2007 Lecturer: Hermann Lehner (http://sct.inf.ethz.ch/h) Slides: Based on KSE06 – With kind permission of Peter Müller Lecture 6: Estimation Techniques

  2. Why estimations? Project Price Change selection requests (bids) Costs Based on estimations Duration Schedule Resources Hiring Milestones Resource allocation

  3. Estimations in software projects � Mostly personnel cost Costs (effort) � Travel, training � Hardware, software Duration is Effort essentially effort / resources Schedule Resources

  4. Overview Estimation Techniques Empirical Estimations Algorithmical Estimations Estimation Process

  5. Estimation Exercise � How many passenger planes does Lufthansa have? � Not counting regional subsidiaries � How can we approach this problem systematically?

  6. Overview Estimation Techniques Empirical Estimations Algorithmical Estimations Estimation Process

  7. Empirical estimation: Expert judgment � Estimate is based on experience and historical data � Involve experts in � Development techniques � Application domain � Most common technique in practice

  8. Top-down estimation � Estimation by analogy � Comparison with similar projects � Analysis of differences � Typical example: SAP introduction Pros Cons � Quicker and less � Underestimation of expensive than other difficult technical methods problems likely � Can be done early in the � No detailed justification project of estimate � Be aware of scalability problems!

  9. Top-down estimation: Delphi method Step 1: Each expert submits � Estimate � Justification Step 3: Each expert submits � New estimate � Justification of deviation from average of previous estimates � More accurate than ordinary expert judgment � Eliminates outliers � More expensive to produce

  10. Top-down estimation: Typical figures � Typical figures for software development � Analysis 20% Analysis Test � Design 40% � Implementation 15% � Test 25% Design Implementation � Very helpful to validate estimations

  11. Bottom-up estimation � Estimation by decomposition � Estimating the effort for individual work packages � Cost and accuracy depend on size of the work packages Pros Cons � See “cons” of top-down � Underestimation because estimation effort does not grow linearly (due to complexity, etc.) � Underestimation of integration effort � Requires initial system design

  12. Program evaluation and review technique � Goal: Manage probabilities with simple statistics � Approach: Ask several experts for three estimates � Optimistic, Likely (mode), and Pessimistic � Important formulas � Mean M = ( O + 4 × L + P ) / 6 � Deviation V = ( P – O ) / 6 � Assumptions � Project effort is normally distributed (more than 20 work packages) � Work package efforts are statistically independent (ignores single underlying cause of delay)

  13. Overview Estimation Techniques Empirical Estimations Algorithmical Estimations Estimation Process

  14. Algorithmic estimation of software � Basic cost model Effort = A × Size B × m(X) Size: Some measurement of the software size A: Constant factor that depends on Organizational practices Type of software B: Usually lies between 1 and 1.5 X: Vector of cost factors m: Adjustment multiplier

  15. Cost models Effort = A × Size B × m(X) � Cost models � Define a way to determine the size � Define cost factors X � Provide defaults for parameters A, B, m (based on hundreds of projects) � Important examples � Function point analysis � Constructive cost model (COCOMO)

  16. Measuring size: Lines of code � Software size can be measured in lines of source code � Most commonly used metric � Difficult in early phases of the project (before design is known) � Reuse, make-or-buy decisions � Influenced heavily by choice of programming language � Should only be used indirectly

  17. Function point analysis � Size is estimated based on requirements Inputs Internal files Inquiries Function External files Outputs

  18. Functions � Inputs � Forms, dialogs, messages, XML documents � Outputs � Web pages, reports, graphs, messages, XML documents � Inquiries (input/output combinations) � Simple web inputs, generally producing a single output � Logical internal files (controlled by the program) � Tables, views or files in database � External files (controlled by other programs) � Tables or files used from other systems or databases

  19. Complexity of functions Factor Simple Average Complex Inputs 3 4 6 Outputs 4 5 7 Inquiries 3 4 6 Ext. files 7 10 15 Int. files 5 7 10 � Determine complexity of Input Simple Average Complex each function Data 1-5 6-10 >10 � Weight each elements function Checking Formal Formal, Formal, logical, according to logical requires DB access complexity

  20. Cost factors Rate each element from 0 – 5 Data communications Distributed processing � 0: no influence Performance � 1: insignificant influence Heavy use � 2: moderate influence Transaction rate Online data entry � 3: average influence Complex interface � 4: significant influence Online data update � 5: strong influence Complex processing Reusability Technical complexity factor Installation ease � TCF = 0.65 + 0.01 × sum Operational ease � Varies between 0.65 and 1.35 Multiple sites Facilitate change

  21. Function point computation Adjusted function points : FP = UFP × TCF

  22. Determining effort and size � Empirical value for effort Effort = FP 1.4 / 150 � Or use a table � Empirical value for size � Huge differences in productivity � Factor 10-20 between individual programmers � Factor 4 between companies

  23. Observation about software size � Consider a project that requires 10 Web pages, 15 reports, and 20 database tables � 315 function points, if each item is medium complexity � How many lines of C code would it have? � About 32,000 lines � What if you used Excel? � About 2,000 lines � Why do you think there are so many spreadsheets out there?

  24. Function point analysis: Discussion Pros Cons � Based on requirements � Estimation of overall (instead of code size) effort (not per phase) � Can be applied in early � Tailored towards project phases functional decomposition (rather than OO) � Can be calibrated (for company, project type) � Tailored towards information systems � Counting standards by “International Function � Needs calibration to Points User Group” produce reliable results � Technology-independent

  25. Estimation techniques: Discussion Empirical Estimation Algorithmic Estimation Empirical studies � Accurate if experts are � Very accurate if model is � Do not show that uncalibrated algorithmic estimation experienced calibrated is, in general, more accurate � Experts can be strongly � Calibration is very � Show that algorithmic estimation is more accurate biased (over-optimism) difficult and expensive than experts who do not have important domain � Estimation is expensive knowledge

  26. Other estimation strategies Parkinson’s Law Pricing to win � Work expands to fill the � Cost is estimated to time available whatever the customer is willing to spend - Gold plating � Effort is determined by � Common strategy to win available resources projects � Features are negotiated � Important for team later, constrained by management agreed costs � Costs are fixed, not requirements

  27. Overview Estimation Techniques Empirical Estimations Algorithmical Estimations Estimation Process

  28. Estimate types Rough order of Budgetary Definitive magnitude -25 / +75% -10 / +25% -5 / +10% Initial estimates Decision making, Project plan, response to proposals proposals � Refine your estimates at each project stage � Requirements document, system design, detailed design, working code

  29. Estimating process Determine Select Estimators, Establish type of validation, project strategy and objectives historic data details plan Why? Accuracy? Generate Audience? effort estimate Duration = √ Effort Duration = 3.0 × Effort 1/3 Determine Document (Effort in person months, team size and assumptions Duration in months) duration Effort = Duration × Team Size Validate and Document finalize Different method, review

  30. Estimation tips • Avoid off-the-cuff • Estimate at a low level estimates of detail • Allow time for the • Don’t omit common tasks estimate, and plan it (management; use • Use historic data checklists ) • Use developer-based • Use different estimates techniques and compare • Estimate by walkthrough the results • Estimate by categories • Change estimation � e.g. easy, medium, hard practices as the project progresses

  31. From effort to costs � Direct costs : Costs incurred for the benefit of a specific project � Salaries of project staff � Equipment bought specifically for the project � Travel expenses � Indirect costs : Costs incurred for the joint benefit over multiple projects (“overhead”) � Accounting, quality assurance department � Line management � Rooms, electricity, heating

Recommend


More recommend