Copyright , Dennis J. Frailey CSE7315 – Software Project Management CSE7315 M16 - Version 8.01 SMU CSE 7315 Planning and Managing a Software Project Module 16 Basic Methods of Effort Estimation
Copyright , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version 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 , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version The Big Picture for Cost Estimating Estimate Size Estimate Effort and Cost Estimate Schedule Evaluate Source Information Statement of Work Requirements Constraints Standards Processes History etc. WBSSize Effort & Cost Schedule OK Complete Detailed Planning Revise & Negotiate Not OK
Copyright , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version Effort Estimation with “Historical” Productivity Data
Copyright , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version Architecture of Spreadsheet Model Based Estimate Other Effort Estimates... Historical Size Estimate Software Reuse Analysis Size / Reuse Effort Final Effort Estimate Productivity Based Effort Estimate Other Size Estimates... Final Size Estimate Delphi Size Estimate Effort & Cost Schedules Generic Schedule Effort Schedule Labor Schedule Cost Schedule
Copyright , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version 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 , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version 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 , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version 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 , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version Historical Data (Typical) LOC Developed per Staff-day
Copyright , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version 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 , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version 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 , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version 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 , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version Multiple Methods Example Method 1 How confident are you that this is right? X
Copyright , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version Multiple Methods Example Method 2 How confident are you now? X X
Copyright , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version Multiple Methods Example Method 3 Now, where do you think the truth is? Why is method 3 so different? X X X
Copyright , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version 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 , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version Beware of Averages Significant differences in estimates usually mean significant differences in assumptions or facts considered In such cases, averages may be meaningless XXXXXXX Average is Meaningless
Copyright , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version Statistical Variances and Uncertainties Method 1 Method 3 Method 2 Most Likely Cost Cost Range = M1 M2 M3 Most Likely = M1 M2 M3 Cost Range = M1 M2 M3 Most Likely = M1 M2 M3 Cost Range
Copyright , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version Architecture of Spreadsheet Model Based Estimate Other Effort Estimates... Historical Size Estimate Software Reuse Analysis Size / Reuse Effort Final Effort Estimate Productivity Based Effort Estimate Other Size Estimates... Final Size Estimate Delphi Size Estimate Effort & Cost Schedules Generic Schedule Effort Schedule Labor Schedule Cost Schedule
Copyright , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version 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. I assume it will take 3 people for 2 months. x xx x x
Copyright , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version Estimation as a Series of Schedules
Copyright , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version 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 , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version 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 , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version Architecture of Spreadsheet Model Based Effort Estimate Other Effort Estimates... Historical Size Estimate Software Reuse Analysis Size / Reuse EffortEffort and Cost Schedules Final Effort Estimate Productivity Based Effort Estimate Generic Schedule Effort Schedule Labor Schedule Cost Schedule Other Size Estimates... Final Size Estimate Delphi Size Estimate
Copyright , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version 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 , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version Labor Schedule Top Level Schedule Generic Schedule Effort Schedule Effort Estimate Cost Schedule Labor Rates S, SA P AL WBS cost categories AD Initial Planning Process Model Labor Types The Estimation Sequence
Copyright , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version Cost Categories for WBS Tasks Each category of cost is incorporated at a different point in the estimating process
Copyright , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version 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 , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version 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 , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version “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 , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version 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 , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version 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 , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version 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 , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version 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: M1M2M3M4M5...M12TOTAL
Copyright , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version 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 = sm –Assume this is distributed more or less evenly across the schedule Total Effort Schedule: M1M2M3M4M5...M12TOTAL
Copyright , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version Example Step 4 - Labor Schedule (labor categories) Labor will be divided into 3 categories: senior, normal, new. Initial Labor Schedule: TypeM1M2M3M4M5... M12TOTAL Senior30% Normal50% New 20% Total Labor Note that Total Labor line matches Total Effort Schedule
Copyright , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version Example Step 4, Part 2 - Adding “AL“ Tasks to Labor Schedule Need to add extra staff for V&V activity (an “additional labor” task) V&V Grand Total TypeM1M2M3M4M5... M12TOTAL Senior % Normal % New % Total
Copyright , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version Example Step 5 - Convert Effort to Cost Senior - $10000 per month Normal - $8000 per month New - $6000 per month V&V - $16000 per month (government- imposed “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 , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version Example Step 5 - Cost Schedule TypeM1M2M3M4M5… M12TOTAL Senior Normal New Subtotal Extra staff for V&V activity V&V Total Labor replaced by dollar costs (in $1000’s)
Copyright , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version Step 5, Part 2 - Adding Additional Dollar (“AD”) Costs TypeM1M2M3M4M5… M12 TOT ……. Total Additional costs (expressed in K$) Computers Travel …(add other costs, such as rent, interest, tax) Grand Total Any other costs can be added in dollars
Copyright , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version 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 , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version 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 , Dennis J. Frailey CSE7315- Software Project Management CSE7315 M16 - Version END OF MODULE 16