Top 10 Ways To Reduce Software Defects

Many organizations develop software applications in support of their quality management systems. However, software complexity and tight schedules often result in application defects that affect product quality.

An article by Bohemia and Basil in the January, 2001 issue of Computer magazine identified the ten best techniques for reducing software defects. Their findings, based on objective and quantifiable data, should be shared with the software specialists in your organization.

1. Finding and fixing a software problem is often 100 times more expensive than finding and fixing it during the requirements and design phase. So, focus on thorough requirements analysis and design, early verification and validation, and upfront prototyping and simulation to avoid costly downstream fixes.

2. Current software projects spend about 40 to 50 percent of their effort on avoidable rework (problems that could have been discovered earlier and fixed less expensively or avoided altogether). So, focus on improving the software process and implementing risk management.

3. About 80 percent of avoidable rework comes form 20 percent of the defects. So, track software problem reports to analyze and address the major sources of rework.

4. About 80 percent of the defects come from 20 percent of the modules (and about half the modules are defect free). So, identify the characteristics of error prone modules to spot where to focus your attention.

5. About 80 percent of the downtime comes from, at most, 10 percent of the defects. So, perform risk based testing using operational profiles and high risk scenarios.

6. Peer reviews catch 60 percent of the defects. So, use peer reviews, along with analysis tools and testing to catch different types of problems at different points in the development cycle.

7. Perspective based reviews catch 35 percent more defects than undirected reviews. So, use formal procedures for defect detection and take advantage of your organization’s existing defect history.

8. Disciplined personal practices can reduce defect introduction rates by up to 75 percent. So, use methods like the Clearness Process, the Personal Software Process, or the Team Software Process to reduce the number of defects injected during the software development process.

9. It costs 50 percent more to develop high dependability (reliable) software, but the investment may be worth it in the long run. So, determine the expected operational and maintenance costs of the software application to analyze the impact of software defects.

10. About 40 to 50 percent of programs written by users (such as spreadsheet programs and web scripting languages) contain nontrivial defects. So, be aware that additional defects will be introduced by the growing number of sorcerer’s apprentices (user programmers) and provide them with tools that have the equivalent of seat belts and air bags, along with safe driving aids and rules of the road.

To see an expanded version of the article, go to <http://www.cebase.org/defectreduction/top10>.