|
September / October 2003 Feature Article
|
|
Inability to fully accomplish tasks
Redundant systems
Section 5 of the report assumes that the total number of errors introduced into the software process will be constant, regardless of the types of tools available for software testing. The number of errors found at various software development life cycle phases are considered together with the cost of their repair at detection phase are discussed. The better testing infrastructure is then assumed to find more errors earlier, and also to reduce to cost of repair at any given life-cycle phase. This modelling guided the specific survey question designs that were then used in section 6 and section 7. Section 6 of the report calculated absolute and feasible savings from a better testing infrastructure based on respondents in the transportation manufacturing sector reporting current statuses, and estimates from likely improvements (reduction of errors) of a better testing infrastructure. Section 7 of the report calculated absolute and feasible savings from a better testing infrastructure based on respondents in the financial services sector reporting current statuses, and estimates from likely improvements (reduction of errors) of a better testing infrastructure. Section 8 of the NIST report finally extrapolated the findings from the two sectors to the commercial economy of the whole country (excluding the government and family sectors) Some of the Criticisms of the Report James Bach criticises the report for relying on a fundamentally flawed survey, and questions the using of respondents' largely qualitative answers for later quantitative results. Admittedly the report writers do suggest the results are but estimates. My initial reading of the report led me to believe that the results could be out on the low side by a multiple of about 5 from what could be the real saving, if known testing and quality techniques were rigorously applied throughout the software industry. Brett Pettichord questions the implied argument that better testing tools will produce such strong results. He suggests that better training, better languages, better development practices or, alternative testing processes than those mentioned in the report might be as relevant to quality improvements. Cem Kaner has various concerns but also suggests that testing alone is not the sole producer of quality as measured by bug reduction. He states that, "the reason that Juran's
distinction is important is this. If I gave a project manager an extra $100,000 and said, 'Go forth and improve
the quality of the product', I suspect that we might get a distribution of expenditure as follows:
The percentages are totally fictitious but you get the idea. Each of those expenditures might in fact improve the quality of the product. The best allocation of money will depend on lots of project-specific details, but it is unlikely to go 100% or even 50% toward more testing". Other serious testing practitioners have been drawn into strong debate about the NIST report. I think this is good, and like I've heard it said of public relations, "any news is good news, as long as we're in the media". The critiques are good, and generally these testers have had good and bad to report about NIST. I believe the debate will educate and inform the non-testing public as to some of the real issues in testing and software quality. Some of my criticisms of the NIST report "Most bugs are introduced at the unit stage (Section 4, Page 4-3, paragraph 4.1.3)". Capers Jones suggests that most defects, 60 percent or more, are introduced at the requirements stage. I believe Capers Jones, and have seen many errors of fact caught by highlighting peoples thinking in writing that is then subjected to formalised software inspections (not mentioned in the NIST report). Standardised software-testing technologies; such as standard reference data, reference implementations, test procedures, metrics, measures, test scripts, and test cases (both manual and automated); are seen as the only, or the most significant means of error reduction and thus quality improvement. If this were so easy, I expect that most tool vendors would have made breakthroughs by now. Despite huge research and development investments, and incentives to improve tools, we still "have what we have". I believe improved tools will come, but I'm not holding my breath in the next three years. The NIST user survey results contradict credible studies, some of which are quoted in the NIST report. The cost escalations of defect repair ratios with lateness of stage of the development cycle in which they are repaired are inconsistent with user responses. The user responses to estimates of hours of repair time (pages 6-10, 6-11, 7-12, 7-13) contradict (underestimate) the measured studies of Boehm (1976) and Bazuik (1995) as reported on page 1-13 of the NIST report. The distribution of bugs based on introduction point in the financial services sector attributes only 30 percent of bugs introduced in the requirements phase (page 7-11). This is lower than Capers Jones average statistics that suggest 60 percent or more bugs are introduced in the requirements phase. It is also at variance with my experience of the South African financial services sector. A very low 15.6 percent of bugs are attributed to the requirements phase in the transportation-manufacturing sector (page 6-10). A Cigarette Box Calculation of My Own Without the benefit of hours of research, I would like to table my own perception of what software quality improvement savings could do for the U.S software industry and percentage GDP, and also for South Africa by implication. In 2000 the USA had 1,282,000 software engineers and programmers (NIST report). Their hourly salaries were $65.50 and I assume they each worked 1800 hours (one conservative person-year). Raytheon (a U. S. development supplier with about 1500 IT staff in 1990) has reported savings of 35% on software rework (much of this rework is internal) after applying formalised software inspections as a key technique amongst other quality interventions. I vaguely recall that their return on investment in one year was about seven times their quality cost investment. This gives me a rough maximum potential cost saving from similar quality improvements of - 1,282,000 * USD 65.50 * 1800 * 0.35 * 6/7 = USD45,344,340,000 That is about USD 45 billion. If we now add the estimated user savings from maximum reduction of errors (NIST report), we get: - Approximately USD 45 billion + 35 billion = USD 80 billion This is the savings potential in the U. S. for applying known scientific testing techniques. These techniques do not seem common amongst NIST respondents who suggested testing is still largely an art. This exceeds the NIST feasibility estimate of USD22.2 billion by a multiple of 3.6, and this with the current existing testing infrastructure. This also represents 0.8% of the U.S. GDP, and I'm sure in South Africa we have similar room for improvement. A Challenge to Our Software Industry and Government and You Let us apply formalised software inspections, better testing techniques, existing (and improving) testing infrastructure, better test training, better testing standards, better development techniques, and the whole concert of forces necessary (and possible) to pick up our GDP here in South Africa.
|
<< July / August 2003 |
November / December 2003 >> |