Table 1: Standish Group Project Impairment Factors It seems that our inability to work more effectively with users to better understand their requirements, coupled with weak engineering discipline in managing requirements, is the leading cause of software failures. The High Cost of Requirements ErrorsStudies performed at GTE, TRW, and IBM measured and assigned costs to errors occurring at various phases of the project life-cycle 3 . These statistics were confirmed in later studies 4 . Although these studies were run independently, they all reached roughly the same conclusion: If a unit cost of one is assigned to the effort required to detect and repair an error during the coding stage, then the cost to detect and repair an error during the requirements stage is between five to ten times less. Furthermore, the cost to detect and repair an error during the maintenance stage is twenty times more. Figure 1 below illustrates a summary of the results. The reasons for this large difference is that many of these errors are not detected until well after they have been made. This delay in error discovery means that the cost to repair includes the cost to correct the offending error and to correct subsequent investments in the error. These investments include redesign of code, documentation rewrite, and the cost to rework or replace software in the field.
Requirements errors are the most common errorsThese studies illustrate that errors made in the requirements phase are extremely expensive to repair. If such errors occurred infrequently, then the contribution to overall cost would not be significant. However, requirements errors are indeed the largest class of errors typically found in a complex software project. In a study of a US Air Force project by Sheldon 5 , errors were classified by source. It was found that requirements errors comprised 41% of the errors discovered, while logic design errors made up only 28% of the total error count. Other studies back this result. For example, Tavolato and Vincena, quoting Tom DeMarco, report that 56% of all bugs can be traced to errors made during the requirements stage 6 .
Requirements Errors and Rework CostsIn a study performed at Raytheon, Dion reported that approximately 40% of the total project budget was spent in rework costs 7 . Boehm reports that the cost of rework can approach 50% for the largest software projects. Because of their large number, and the multiplying effect, finding and fixing requirements errors consumes between 70% - 85% of total project rework costs. Reducing Requirements ErrorsThere is no silver bullet with which to make your requirements errors go away. However, organizations have demonstrated that the following techniques are effective in reducing these types of errors:
In order to become proficient in these activities, an investment in both tools and training for key project personnel will be required. Estimating Typical Project and Rework CostsConsider an application which contains 50,000 lines of code and is produced by a staff of six developers supported by one program manager, two software testers and one quality assurance person. To determine the product time line, let's assume coding is the critical path (probably a defensible assumption in most organizations!). Based upon a productivity rate of 350 lines of debugged source code per month 8 , then the project timeline is 24 months. (i.e. 50,000 LOC face=Symbol>/350 LOC/month face=Symbol> 6 developers). If the loaded cost per developer/tester/QA personnel per month is $10,000, then that creates a total project budget of approximately $2.4 Million. Of this cost, even if only 30% of the project is invested in rework (an optimistic assumption?), then the total rework budget is $720,000. If 70% of the rework is due to requirements errors, then the total rework costs related to requirements errors are over half a million dollars!
Table 2: Project Cost Estimates for a Software Project Your InvestmentWhat's to be done to rework this valueless project activity? Simple, REDUCE REQUIREMENTS ERRORS. The techniques demonstrated above could be expected to have a dramatic effect on reducing requirements errors. However, as with any meaningful process, an investment in both tools and training is required for success. Let's assume that an organization purchases Requisite's RequisitePro toolkit and training in both requirements management principles and tool usage for the project staff. This would require an investment of approximately $19,900 [ten people *($995 tool+$995 training)]. How would this investment pay off? The Bottom LineNo one can predict exactly how effective your organization will be in reducing requirements errors. However, it seems reasonable to assume that a 20% or more reduction in requirements errors can be accomplished at various levels of organizational maturity. Because of the multiplying effect, any such reduction can have a dramatic overall effect to your project's bottom line as Table 3 below shows.
Table 3: Return on Investment of More Effective Requirements Management SummaryTable 3 above shows that the investment in requirements management tools and training can provide a truly extraordinary payback even on the first project. Thereafter, the team's ability to reduce requirements errors will continue to pay a substantial dividend on future projects. But these hard costs exclude the intangible costs associated with a requirements error. Intangible costs include lack of features that could have been delivered had the project's resources not been devoted to rework, loss of confidence on the part of customers, and accompanying lost and unrecoverable market share, revenue and profit. Taken together, these costs clearly demonstrate that a company cannot afford to ignore the benefits of better requirements management! Bibliography1. Alsop. S, "The Trouble with Software Is ... It Sucks", Fortune Magazine, June 10, 1996
|
Ðåêîìåíäîâàòü ñòðàíèöó | Îáñóäèòü ìàòåðèàë | Íàïèñàòü ðåäàêòîðó |
Ðàñïå÷àòàòü ñòðàíèöó
|
Äàòà ïóáëèêàöèè: 03.02.2005 |
Äèçàéí è ïîääåðæêà: Silicon Taiga | Îáðàòèòüñÿ ïî òåõíè÷åñêèì âîïðîñàì | |