What do clients expect from a Quality Assurance Engineer? A lengthy list of the defects you have found or a high-quality software product within a low production cost and time?
Defects do not add significant value to the software development process since the occurrence of the defects has become the main reason behind increases in cost and time. Therefore, the ultimate goal of a Quality Assurance Engineer is to deliver a product of the best possible quality ensuring minimized production cost and time. So what are the strategies we can introduce to our process to achieve this goal? Defect prevention is one such activity that is important but often neglected in the software delivery process as most of the QA teams focus on defect detection.
What is Defect Prevention?
Defect Prevention is a strategy that applies in the early stages of the Software Development Life Cycle to identify and remove the defects before actual testing gets started. Down the line, it helps to identify the root causes of the defects to prevent them from reoccurring.
Different organizations adhere to different Defect Prevention strategies. What makes a strategy differs from another is the set of activities take place during the process. There is a responsible party for each activity. The important fact is, not only QA Engineers are responsible for Defect Prevention, but also all the members who are involved in the development process have to take part in it.
Figure 1: Defect Prevention Stage
Why Defect Prevention is important?
- Once QA engineers invested time on Defect Prevention in the early stages of the development process, they do not have to put more time and effort into detecting defects and tracking them in the testing stage. This directly saves time and leads to an on-time delivery of the product.
- It is very cost effective and time saving to identify the defects and fix them in the early stages of the development process. As the code base grows, it is more difficult to fix a defect without having a negative impact that leads to rework.
“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 2: Relative Costs to Fix Software Defects (Source: IBM Systems Sciences Institute)
- Rework has a considerable impact on production cost and it has been the main reason for delays in the development process. Defect Prevention reduces the amount of rework and ensures low production cost and faster delivery.
- Defect Prevention activities such as ‘Design Reviews’ leads to a better design by identifying bottlenecks, roadblocks, and possible performance and security failures early in the development process.
- Introducing a Defect Prevention strategy into a development process will improve it to be more reliable and manageable. Apart from that, it leads to a cultural change that focuses on the quality rather than the quantity.
As conclusion, Defect Prevention has a direct impact on controlling the cost of the project and the quality of deliverables. Therefore introducing a Defect Prevention Strategy into your process will be a good investment as it directs to a ‘Satisfied Client’. In my next article, I will talk about the actions that QA Engineers can take to prevent defects, which are more effective and easy to implement in your software development process.
Pavithra Dissanayake is a Senior QA Engineer at Zone24x7. You can also follow her on LinkedIn.