The early detection of defects, in a process, is important for the successful execution of a project. However, the detection and prevention of defects is a significant challenge in the software industry. A large portion of the cost of software development consists of error removal and reworking on projects. The reworking process costs more than the initial process so early detection of defects during the design and requirements phase is necessary to avoid this extra expense. A large number of defects usually occur in the initial stages of a project and early defect detection will lower the overall cost of the project.
The Advantages of Finding Defects Early
The cost of finding and fixing defects rises considerably across the life cycle. This is because the requirements and design specifications will require rework before changes can be made to the code. Also, a single defect in the requirements may well propagate into several places in the design and code and, because of that, all the testing work done up until that point will need to be repeated in order to reach the confidence level in the software that we require. It is quite often the case that defects detected at a very late stage, depending on how serious they are, are not corrected because the cost of doing so is too expensive.
The Importance of Reviews
“It is better to try to keep a bad thing from happening than it is to fix the bad thing once it has happened.” This proverb definitely applies to defects in the software development life cycle. IEEE Software reports that rigorous reviews commonly remove up to 90% of errors from a software product before the first test case is run. Rigorous reviews are more effective, and more cost effective, than any other error-removal strategy, including testing. But they cannot and should not replace testing (IEEE, 2001). The Systems Sciences Institute at IBM has reported that the cost to fix an error found after product release was four to five times as much as one uncovered during design, and up to 100 times more than one identified in the maintenance phase (Figure 1). A review or inspection during the design phase can identify a significant number of errors. According to Crosstalk, the Journal of Defense Software Engineering, most failures in software products are due to errors in the requirements and design phases – as high as 64 percent of total defect costs (Figure 2).
Segue Includes QC Throughout the Product Lifecycle
It can be concluded that defect identification is an important process in software development. At Segue, we conduct reviews to evaluate all phases of a project or software development. We focus our efforts on reviews conducted during the earlier stages of software development for defect detection that are more cost efficient than those at the later stages. Early defect detection allows our project managers to achieve the shortest schedules of projects and provide high quality products to the customers.
At Segue Technologies we believe that quality control activities should be implemented throughout the product life cycle, not just at the end. For more information on when to begin quality control, please check out my blog, For Great Quality, Bring Your Software Testers in Early.