blog-main.jpg

Inside the Barrel

Software Cost Estimation: Why an Accurate Cost Estimate is Essential

Software Cost Estimation: Why an Accurate Cost Estimate is Essential

Do you know your return on investment (ROI) for modifying current software applications, or a new software project? I'll bet you don't. Even if you do, I would wager that you are not as comfortable or confident with that number as you think you should be. Why is this important? Simply because: Information Technology continues to influence the future growth and competitive advantage of nearly all industries now - and in the foreseeable future. Generating an accurate cost estimate to develop, modify, and maintain software is the first step in calculating an ROI. Software Line of Code (SLOC) and Function Point Analysis / Functional Size Measurement (FPA/FSM) are often used in software cost estimating and their advantages and disadvantages have been debated for years. Software development involves a lot of uncertainty, however a Program Manager can account for inherent risks by combining the SLOC and FPA/FSM methods with research findings (i.e. IT Staffing Reports, Help Desk Support Analysis, and Testing & Training Requirements) to model the life-cycle cost of software applications with increased accuracy. SLOC is the most widely used software sizing metric used in software cost estimating. Most major models, such as COCOMO II, SEER-SEM, and SLIM use this method as the primary input to estimate the cost for developing software. Advantages and disadvantages of using SLOC to estimate a software development cost estimate are listed in the table below:

Advantages Disadvantages
Widely recognized method in the industry Counting tools ambiguity and interpretations to SLOC size (logical vs. physical
Many models and tools available Limited SLOC data availability in early project software cost
Direct result of programming work Significant estimate differences in counting applications

FPA/FSM, unlike the SLOC method, measures the size of recognizable business functions contained within software applications that are meaningful to the software users. This method provides decision makers an objective, measurable technique to assist in estimating the development and maintenance costs of software throughout their life-cycle. The advantages and disadvantages of this method are listed in the table below:

Advantages Disadvantages
Measures software by quantifying its functionality Does not measure reuse of code
Measures software development and maintenance independent of technology Does not measure corrective maintenance (fixes)
Methods (IFPUG FPA, COSMIC FSM, etc.) comply with international standards (FSMM-ISO 14143) Not a direct result of programming work

Different software cost estimating methods, tools, and techniques provide the cost estimator with options that can be applied depending upon the situation (i.e. time and data availability). What's more important is that the method or methods chosen be comprehensive enough to capture the complete life-cycle cost and avoid any "Cost Estimate Gaps", which occur due to inaccuracies and incompleteness in the cost estimating process. Combining techniques as I've described with uncertainty distribution boundaries and industry risk analysis will ensure a more comprehensive and accurate cost estimate, which can then be used to calculate a meaningful and reliable ROI. In summary, by combining different software sizing methodologies and findings from formal software studies that pertain to the full life-cycle of software (i.e. development and maintenance), a cost estimator can more accurately estimate all costs associated with software. Software cost estimates that deliver greater accuracy aid in calculating a more reliable ROI, increasing the confidence of decision makers when deciding whether or not to invest in procuring or developing new software. To learn more about our Cost Estimating Capabilities within Cask's Strategy & Decision Support Practice Area, please visit http://www.caskllc.com/what-we-do/sds/.

Written byRoberto Perez