6.2 Personal Software ProcessSM


5.7 Total Life Cycle Cost

Total life cycle cost represents software development and maintenance costs. Total life cycle cost is a method of determining both software development and maintenance costs. It quantifies analysis, design, development, test, and, more importantly, maintenance costs for software development. Very few people routinely estimate software development costs before a software project begins. The few who practice the science of software cost estimation only estimate development time. That is, they estimate the time it takes for analysis, design, coding, and testing. When estimating the benefits of a SPI method, they oftentimes only include analysis, design, coding, and testing benefits. However, software maintenance costs are almost never estimated, as a general rule of thumb. Likewise, the benefits of SPI for the software maintenance portion of the software life cycle are never estimated either. In fact, most people have never even heard of quantifying the costs and benefits to be obtained by analysis of postdelivery economics. Ironically, software maintenance costs have the potential to dwarf software development costs by over 20 times. That is, if you estimate your development time to be 1 month, the software maintenance time may be as high as 20 months. The software maintenance portion of the software life cycle is where the greatest benefits of SPI methods and ROI of SPI are found. Figure 18 illustrates the formula for total life cycle cost.

start figure

TLC = Size — 10.51 - Inspection Hours — 99 - Test Hours — 9

end figure

Figure 18: Formula for Total Life Cycle Cost

Total life cycle cost is a remarkably simple yet powerful concept. It is built upon the principles of defect density, quality, defect removal efficiency, and the defect removal model. Total life cycle cost is based on the economics of the Software Inspection Process, software testing, and software maintenance. A defect may be repaired in only 1 hour using the Software Inspection Process, whereas software testing requires 10 hours to fix a defect and software maintenance requires 100 hours to fix a defect. Don't be fooled by these basic ratios. This is a very conservative approach to analyzing the economics of software engineering. In fact, the Software Inspection Process can easily yield 10 defects per hour , whereas software testing can easily slip to 100 hours per defect and software maintenance typically hovers around 1,000 hours per defect. This is therefore a very conservative and kind model for software testing and software maintenance.

Let's examine what the total life cycle cost model is all about. Size refers to estimated software size in lines of code. The constant 10.51 is a simplification of software maintenance costs and defect injection rate. Inspection hours is the number of hours you plan to spend performing the Software Inspection Process. Test hours is the number of hours you plan to spend performing software testing. Let's cut to the chase. A 10,000-line-of-code system may cost up to 105,100 hours for software development and maintenance. For 100 hours of software testing, the total cost is reduced by an abysmal 1%. For 500 or 1,000 hours of software testing, the total life cycle cost drops by only 4 and 9%, respectively.

Before moving on, it is important to note that the typical amount of testing for a software release is 8 to 24 staff hours. If you spend 1,000 hours on testing, you would only reduce your total development and maintenance effort by less than 10% to 96,100 hours. Conversely, if you spend 100 hours on the Software Inspection Process, you will experience a drop in total life cycle cost of 10%. If you spend 500 hours on the Software Inspection Process, your total life cycle cost is reduced by almost 50%. If you spend 1,000 hours on the Software Inspection Process, the total life cycle effort is reduced by 94% to 6,100 hours. This is substantially less than a single staff year for a two-person project. The costs include analysis, design, coding, and testing phases, as well as the costs of the Software Inspection Process and software maintenance process.

The greatest benefits of SPI are found within the principles of defect density, quality, and defect removal efficiency. The defect removal model and especially total life cycle cost are sources of vast benefits, benefit data, and data for ROI of SPI. SPI methods that reduce or eliminate total life cycle costs have the greatest benefits and impact on the ROI of SPI.




ROI of Software Process Improvement. Metrics for Project Managers and Software Engineers
ROI of Software Process Improvement: Metrics for Project Managers and Software Engineers
ISBN: 193215924X
EAN: 2147483647
Year: 2004
Pages: 145

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net