Management is necessary in every field, it is an essential component that leads to efficiency and productivity. In the process of software development life cycle too, management is important.
Defect management deals with managing issues in the form of bugs or defects in an application. From the very initial stages of software development, we come across various kinds of defects which may be in terms of design, understanding the requirements, or may be incorrect structuring of the code or bug/ defect detected during test phase. Therefore it becomes very essential to capture the bugs and prepare a detailed report for careful and thoughtful analysis, and be able to figure out the root cause of the problem.
We can elaborate the process of defect management by looking into its various stages .
Defect Management Process :
Defect Prevention -It is said 'prevention is better than cure'. Kill the defects before they arise. It is important to identify and devise defect prevention strategies and figure out the necessary courses of actions required to deal with the defect. Defect prevention activities ideally involve - identifying critical risk associated with a project, estimate the expected impact for the risk being analysed, try to minimize the expected impact.
Deliverable Baseline - The term 'baseline' refers to a predefined benchmark which when reached, determines the next consecutive step to be taken. As we keep proceeding from one step to another and then to the next and so on, it becomes really difficult task to address the defects, that is, making changes becomes expensive and difficult.
To handle such a scenario, a defect is considered an instance of a base lined product component that does not satisfy a given set of requirements. That means if a component is base lined to deliver a functionality and it fails to deliver it, it cannot proceed further till the bug is fixed. For example, a specification document is considered a baseline when the developer uses it as a basis for structuring his code. Then the program or that component is considered base lined when it is passed on for integration testing. Finally, the specifications should be considered base lined if it is considered for technical design.
Defect Discovery - When a defect comes under notice, it is reported to the developers and they eventually validate the defect. It is very important to detect a defect on time as it may reduce the expense of fixing the bug to some extent. To simplify the task of finding out a defect one may plan to create categorise the defects, like it's a one time defect or the defect has occurred on more than one situation. The aim of this technique is to minimize conflicts over a defect. A typical defect discovery process involves - finding defects, reporting defects and acknowledging defects.
Defect Resolution -This stage is very straightforward in its approach, as it comprises of finding a feasible solution to a given problem. The steps may be
Prioritizing the risk.
Scheduling defect fixing activity.
Reporting the solution stating how and when the defect has been resolved.
Process Improvement -Mistakes teach us lessons. Therefore , once a defect is resolved, it must be noted as to what has been the cause of that defect. The procedure followed so far must be improved to ensure that the same mistakes are avoided as much as possible. Minor defects are a sign for taking measures to prevent major defects.
Management Reporting -The final step, of course consists of submitting the report of the entire process to the management. Reporting to the higher authority has the following types of reasons/purposes :
To help the management decide upon better ways of project management by providing an insight into the type of metrics and methodologies used to address a defect.
To enlighten them about the pattern of defects, persisting problems etc.
Emphasising on the ways to improve the whole process in terms of defect minimization.
Deadlines and cost estimations to be considered.
Conclusion :
Defects are a hindrance in the path of any progressive approach. Careful consideration must be given to the root causes that is responsible for a defect to arise. Hence the analysts, developers and QA's must form a team to identify and fix the issues. A team effort is always fruitful.