Philosophy of Software Defect Management
Imperfect processes cause most of the software defects. Thus to prevent defects, the development process needs to be overhauled.
Software defects are quite expensive. Moreover, the cost of finding and correcting the defects counts as one of the most expensive software development activities.
When we are able to foresee the future, it may not be feasible to eliminate the defects entirely. While software defects may be inevitable, still we can minimize their number and their impact on the project.
To achieve this the development teams needs to form a sound defect management strategy & implement a suitable defect management process which can focus on preventing the defects, catching the defects as early as possible in the process, and minimizing the impact of such defects.
The defect management process should be based on the following principles:
1) The primary goal should be to prevent the defects. Where this is not possible or practical, the goals should be to both find the defect as quickly as possible and minimize the impact of the defect.
2) The defect management process should be risk driven i.e. the strategies, priorities, and resources should be based on the extent to which risk can be reduced.
3) Defect measurement should be well integrated part of the software development process and to be used by the project team to improve the process. The project staff, while doing their job, should be able to capture the information on defects right at their source.
4) The process of capturing & analyzing the defect-related information should be automated as much as possible. Such information should be used to improve the process.