Learning from our mistakes with Causal Analysis and Resolution
Handling problems and defects in software development projects is difficult in many organizations. The problems’ analyses, when performed, usually do not focus on the problems sources and root causes. As a result, bad decisions are taken and the problem is unsolved. This leads to dissatisfaction, increased costs, and lack of quality. Causal analysis and resolution prevents the introduction of defects into a product by integrating into each phase of the project thereby improving quality and productivity. Defects and problems arise from other projects or from the earlier phases of the current project. Causal analysis and resolution activities are therefore the communicating lessons learned among projects. It helps the software development companies to improve the quality and process performance of their activities and enhances the productivity.
Identification of the team members and their roles is critical. One person needs to oversee the causal analysis process. The responsibilities of the causal analysis team leader would be conducting the defect causal analysis meetings, monitoring completion of actions, updating the status of actions and providing feedback to management, and other staff. The contribution of these staff is important, because they are knowledgeable of the causes, have an interest in the defect information, and can benefit from the result of the analysis. The defect causal analysis team members are responsible for attending causal analysis meetings, documenting the results of defect causal analysis meetings, and implementing the recommended corrective action.
Selecting defects and other problems for causal analysis:
- Project managers, group heads identify the defects, problems, and incidents
- Metrics, problem reports, internal audit reports, test reports, assessment findings, training feedback, peer reviews, etc. are the sources of problem and defect data
The process by which the proposed actions are arrived at to address the selected defects:
- Defects and problems are analyzed to determine their root causes
- Common causes are identified
- Proposed actions and time periods are identified to prevent the future occurrence of problems and defects
Project manager identifies proposed actions to prevent the future occurrence of identified defects and problems. These proposed corrective actions or preventive actions are planned for by a proposed change to a specific process element such as the operational process, checklist, template, guideline, etc. The project manager then defines the time period by which the above actions are to be implemented. Group head prioritizes the corrective and preventive actions to be taken up for implementation to prevent the recurrence of defects and problems. The quantitative benefits received as a result of the process improvement is measured and recorded.
The effects of changes in process performance are evaluated as follows:
- Project manager or group heads review and verify the effectiveness of completed actions in terms of benefits, realization, improvements etc.
- Measures for measuring the benefits are:
- Reduction in defect rates
- Improvement in productivity
- Reduction in cycle time
- Improved customer satisfaction
- Improved survey results
- Increase in number of bids won
- Elimination of defect type
- Improvement in link-up time
Tools used for doing causal analysis are:
- Project documents
- Pareto charts
- Cause and effect (fishbone) diagrams
- Check sheets
Data is recorded for use across the project and organization as follows:
- Project manager disseminates the status of previously implemented changes and results
- Project manager or group heads raises process improvement proposal
- Project manager attaches project end causal analysis and uploads in process database
- Project manager shares results of activities forums, awareness newsletters
A causal analysis meeting can be held two weeks after coding begins. Defects reported through review methods, or inspections can be used to identify common errors early in the coding process. This proactive approach is preventative and corrective. Causal analysis and resolution can begin as early as the concept definition stage, using defects found through inspection of the requirements. It provides a mechanism to the software development companies to evaluate their processes and adds value to the organizations.