SMU CSE 7315 Planning and Managing a Software Project Module 16 Basic Methods of Effort Estimation Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 CSE7315 – Software Project Management Objectives of This Module To discuss some basic methods of effort estimating To introduce a process for documenting and updating estimates as a series of schedules Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 CSE7315- Software Project Management 2 The Big Picture for Cost Estimating Source Information Statement of Work Requirements WBS Estimate Constraints Size Standards Processes History etc. Revise & Estimate Size Effort and Cost Negotiate Not OK Complete Detailed Planning OK Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 Evaluate Effort & Cost Schedule Estimate Schedule CSE7315- Software Project Management 3 Effort Estimation with “Historical” Productivity Data Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 CSE7315- Software Project Management 4 Architecture of Spreadsheet Size / Reuse Effort Effort & Cost Schedules Software Reuse Analysis Final Effort Estimate Generic Schedule Final Size Estimate Productivity Based Effort Estimate Effort Schedule Historical Size Estimate Delphi Size Estimate Model Based Estimate Labor Schedule Cost Schedule Other Effort Estimates ... Other Size Estimates ... Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 CSE7315- Software Project Management 5 Effort Can Be Estimated From Size and Productivity Effort = Size * Historical Productivity Examples: – Staff-days = Lines of Code*Staff-days/LOC – Staff-days = Modules*Staff-days/Module – Staff-days = Function Points*Staff-days/FP Whatever unit you measure, if you have good historical data, this method can be fast and effective Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 CSE7315- Software Project Management 6 Typical Values for Productivity Rates 2-30 LOC/day for high order languages 3-40 LOC/day for assembly language Lower values for constrained projects – real time/ safety critical systems etc. Higher numbers for commercial applications with few constraints Even higher numbers can be achieved if you use 4GLs, high levels of reuse, etc. Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 CSE7315- Software Project Management 7 Example In the past, we have had the following productivity: – 16 LOC/staff-day for complex software – 24 LOC/staff-day for simple software For the new “8000 LOC”, “complex” software, it should take 8000/16 = 500 staff-days …But how accurate is this? Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 CSE7315- Software Project Management 8 Historical Data (Typical) LOC Developed per Staff-day 25 20 15 History Proposed 10 5 0 2000 2002 Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 2004 2006 2008 2010 CSE7315- Software Project Management 9 Historical Data are Seldom Precise or Consistent Example: Effort for complex software varies from 8 to 24 LOC per staff-day, with a mean of 16 LOC per staff-day and an upward trend The expected effort for an 8000 SLOC program might be As low as 333 staff-days or ... As high as 1000 staff-days! Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 CSE7315- Software Project Management 10 In Other Words Historical data usually give a range of values, not a precise estimate Based on past experience, this project should take from 100 to 125 staff-months Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 CSE7315- Software Project Management 11 Three Risk Management Approaches Plan to update your estimates – You will have better information in the future Use multiple estimating methods – They will help improve the bounds on your estimate – Each new method will identify issues that other methods overlook Set aside a “reserve” amount based on the level of risk in your estimate Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 CSE7315- Software Project Management 12 Multiple Methods Example Method 1 X 2000 3000 4000 5000 How confident are you that this is right? Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 CSE7315- Software Project Management 13 Multiple Methods Example Method 2 X 2000 3000 X 4000 5000 How confident are you now? Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 CSE7315- Software Project Management 14 Multiple Methods Example Method 3 X 2000 3000 X X 4000 5000 Now, where do you think the truth is? Why is method 3 so different? Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 CSE7315- Software Project Management 15 What Do Multiple Methods Tell You ? They help you understand the degree of uncertainty and/or confidence in your estimate - so you can manage more effectively – How much reserve to set aside – Risk mitigation actions to take They force you to ask hard questions about what facts each method overlooks They help you learn Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 CSE7315- Software Project Management 16 Beware of Averages Significant differences in estimates usually mean significant differences in assumptions or facts considered In such cases, averages may be meaningless XX XX XX X Average is Meaningless Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 CSE7315- Software Project Management 17 Statistical Variances and Uncertainties Method 1 Method 2 Method 3 Cost Range = M1 M2 M3 Most Likely Cost Cost Range Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 Most Likely = M1 M2 M3 CSE7315- Software Project Management 18 Architecture of Spreadsheet Size / Reuse Effort Effort & Cost Schedules Software Reuse Analysis Final Effort Estimate Generic Schedule Final Size Estimate Productivity Based Effort Estimate Effort Schedule Historical Size Estimate Delphi Size Estimate Model Based Estimate Labor Schedule Cost Schedule Other Effort Estimates ... Other Size Estimates ... Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 CSE7315- Software Project Management 19 Wideband Delphi Wideband Delphi can be used to estimate effort as well as size – On small projects this is often the most effective way to estimate effort – Also useful for estimating other costs, such as management overhead, tools, support functions etc. Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 x xx x x I assume it will take 3 people for 2 months. CSE7315- Software Project Management 20 Estimation as a Series of Schedules Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 CSE7315- Software Project Management 21 A Practical Issue in Estimation How do you “put it all together”? – Size – Effort – Cost – Schedule – Staffing levels How do you “keep it all together” as you revise and update the estimates? Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 CSE7315- Software Project Management 22 A General Process for Documenting & Updating Estimates The process to be described is a framework for estimating You can use any estimating methods you choose The process allocates estimated effort and cost across a schedule And by using a spreadsheet, you can easily update all estimates (see assignments 3 and 4) Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 CSE7315- Software Project Management 23 Architecture of Spreadsheet Size / Reuse Effort Effort and Cost Schedules Software Reuse Analysis Final Effort Estimate Generic Schedule Productivity Based Effort Estimate Effort Schedule Final Size Estimate Historical Size Estimate Delphi Size Estimate Other Size Estimates ... Labor Schedule Model Based Effort Estimate Other Effort Estimates ... Cost Schedule 25 20 Total 15 Build 1 10 Build 2 5 0 M1 Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 M2 M3 M4 M5 M6 CSE7315- Software Project Management 24 Some Features of This Estimating Process The process allows you to evaluate: – Staffing and shopload – Resource requirements (equipment, people, money, …) – Cash flow It serves as a basis for managing – It provides initial estimates of many quantities you will want to track against actuals during project execution Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 CSE7315- Software Project Management 25 The Estimation Sequence WBS cost categories S, SA P AL AD Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 Top Level Schedule Initial Planning Generic Schedule Process Model Effort Schedule Effort Estimate Labor Schedule Labor Types Cost Schedule Labor Rates CSE7315- Software Project Management 26 Cost Categories for WBS Tasks Code S SA P Category Software Development Additional Software Development Software Support Affects Examples Cost & Schedule Cost & Schedule Cost Software Design, Software Coding, Software Testing Software Requirements, System Testing Software Management, SQA, Config Management Project Management, Audits, Document Generation Travel, Development Tools, Special Equipment AL Additional Labor Cost AD Additional Dollars Cost Each category of cost is incorporated at a different point in the estimating process Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 CSE7315- Software Project Management 27 A “Quick and Dirty” Cost Estimate To illustrate the process To get an initial estimate in 30 minutes Note that this simplifies many of the steps, but shows the basic order in which things happen You start with: WBS, top level schedule, experience on previous projects Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 CSE7315- Software Project Management 28 A “Quick and Dirty” Cost Estimate (continued) Top level schedule is generally determined earlier in the planning process, as part of initial planning – But it may be revised during this process, generally at the end of step 2 Generic schedule is not used in this “quick and dirty” case We will estimate in staff-months Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 CSE7315- Software Project Management 29 “Quick and Dirty” Cost Estimate Steps 1-3 (effort schedule) 1) Base Effort = Software Development Effort, excluding all other activities – Estimate the effort required for each WBS task associated with software development (type S) – Sum the estimates Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 CSE7315- Software Project Management 30 Quick and Dirty Cost Estimate Steps 2-3 (effort schedule) 2) Adjusted Base Effort = BASE EFFORT + effort for additional development tasks (type SA) 3) Total Effort = ADJUSTED BASE EFFORT + percentage increment for support tasks (type P) Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 CSE7315- Software Project Management 31 Quick and Dirty Cost Estimate Steps 4-5 (labor and cost) 4) Total Labor = TOTAL EFFORT + additional labor (type AL), divided into specific staff categories. 5) Total Cost = TOTAL LABOR * LABOR COST RATE + additional dollar costs (type AD). Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 CSE7315- Software Project Management 32 Example Step 1 - Base Effort (S tasks) Size estimate is 12,000 SLOC We normally develop about 24 SLOC per staff-day on projects like this So it should require about 500 staff-days = 25 staff-months (sm) – (at 20 working days per month) Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 CSE7315- Software Project Management 33 Example Step 2 - Adjusted Base Effort (+SA tasks) Requirements and system integration support (SA tasks) should add 30% – Total = 650 staff-days = 32.5 sm Top level schedule for this is 12 months. Can do with ~3 people on the average. – Will build up staff to peak in months 7-10 Initial Effort Schedule: M1 M2 M3 M4 M5 1 2 3 3 3 Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 ... M12 2 TOTAL 32.5 CSE7315- Software Project Management 34 Example Step 3 - Total Effort (+P tasks) Support for “P” tasks (CM, QA, and management) should add about 25% or 195 more staff-days. Total = 845 staff-days = 42.15 sm – Assume this is distributed more or less evenly across the schedule Total Effort Schedule: M1 M2 M3 M4 2 3 4 4 Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 M5 4 ... M12 3 TOTAL 42.15 CSE7315- Software Project Management 35 Example Step 4 - Labor Schedule (labor categories) Labor will be divided into 3 categories: senior, normal, new. Initial Labor Schedule: Type Senior 30% Normal 50% New 20% Total Labor M1 1 1 0 2 M2 1 2 0 3 M3 1 2 1 4 M4 1 2 1 4 M5 ... M12 1 0 2 1.15 1 1 4 2.15 TOTAL 10 22.15 10 42.15 Note that Total Labor line matches Total Effort Schedule Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 CSE7315- Software Project Management 36 Example Step 4, Part 2 - Adding “AL“ Tasks to Labor Schedule Type Senior Normal New Total M1 1 1 0 2 M2 1 2 0 3 M3 1 2 1 4 M4 1 2 1 4 M5 ... M12 1 0 2 1.15 1 1 4 2.15 TOTAL 10 - 24% 22 - 52% 10 - 24% 42.15 • Need to add extra staff for V&V activity (an “additional labor” task) V&V 0 Grand Total 2 Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 0 3 0 4 0 4 0 4 2 4.15 CSE7315- Software Project Management 2 44.15 37 Example Step 5 - Convert Effort to Cost Senior - $10000 per month Normal - $8000 per month New - $6000 per month V&V - $16000 per month (governmentimposed “beltway bandits”) (10 * 10000) + (22 * 8000) + (10 * 6000) + (2 * 16000) = $368,000 total This shows the total dollars. By allocating across the schedule, we can see how those dollars are spent each month during the project. Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 CSE7315- Software Project Management 38 Example Step 5 - Cost Schedule • Labor replaced by dollar costs (in $1000’s) Type M1 M2 M3 M4 M5 Senior 10 10 10 10 10 0 100 Normal 8 16 16 16 16 8 176 New 0 6 6 6 6 6 60 32 32 32 32 14 336 Subtotal 18 … M12 TOTAL Extra staff for V&V activity V&V Total 0 0 0 0 0 32 32 18 32 32 32 32 46 368 Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 CSE7315- Software Project Management 39 Step 5, Part 2 - Adding Additional Dollar (“AD”) Costs • Any other costs can be added in dollars Type M1 M2 M3 M4 M5 18 32 32 32 32 … M12 TOT 46 368 ……. Total Additional costs (expressed in K$) Computers 0 Travel … 20 30 0 0 0 18 52 62 32 32 46 50 418 (add other costs, such as rent, interest, tax) Grand Total 62 Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 62 42 32 56 620 CSE7315- Software Project Management 40 Example (other options) 5a) Include overhead costs in the pay scale or add on later 5b) Calculate for each week or day or whatever by similar methods 5c) Add non-labor cost items expressed in dollars, such as rent, overhead, computers, etc. 5d) Adjust for inflation in future years, for long projects Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 CSE7315- Software Project Management 41 Module Summary Historical productivity data can be very helpful in estimating effort – But they give ranges rather than precise estimates Wideband delphi can also be used The general process for estimating allows you to “put it all together” and “keep it all together” during updates Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 CSE7315- Software Project Management 42 END OF MODULE 16 Copyright 1995-2008, Dennis J. Frailey CSE7315 M16 - Version 8.01 CSE7315- Software Project Management 43