This continuous process improvement process is named from the statistical term "sigma" which is the standard deviation of a population distribution. Six sigma or plus or minus three sigma as a bound on statistical distribution and when we apply this to the distribution of failures, then the failure rate would be less that or equal to 3.4 times per million "opportunities." This may seem somewhat esoteric, but it gives a goal to drive toward.
I learned the Six Sigma process as a five step procedure: Define, Measure, Analyze, Improve, and Control (DMAIC).
We start with something that fails. A common symptom is something that requires rework. Rework is a quality issue and costs money that we could save if the mistake that caused the rework is not repeated. So Define starts with a defect of some kind. But there are two parts to the definition: Defects and Opportunities for that defect to occur whether it did or not. Classically, we relate to widgets, like light bulbs, and define opportunities as bulbs and defects as ones that don't work, but this is a very simplistic view of Defects and Opportunities. In a future post I will work through a couple of software examples; but be forewarned, a Line-of-Code (LOC) cannot be considered an opportunity.
Measurement is the collection of data, Defects and Opportunities. The Measurement activity may indicate that we have chosen the wrong Defect/Opportunity (D/O) metrics. No problem there, fixing any procedural problem that creates measurable defects is the goal of continuous process improvement.
Analysis is the discovery of causes of the defects and can be a long list including such items as Lack of Standards, Failure to Conform to Standards, Poor Requirements Definition, Poor Training, Failure to Communicate, and the list goes on and on. We might sort the failures by order of the number of failures per cause category (a Pareto Chart) and select only the top few to fix that gives us the best leverage (most improvement for issues addressed).Root Cause Analysis techniques are generally applicable here.
The Improve phase applies mitigation techniques to the issues needed to improve the D/O ratio.Improvements may be such things as improving (or establishing) standards, standards training, improving requirements acquisition, and establishing communications policies such as for meetings and documentation. Establishing, and conforming to, new standards for legacy software can be problematic.
Control is a management function. The purpose is to ensure that the mitigation put in place as a result of a Six Sigma project remain in place and the improved defect rate is retained. Typically this involves repeating the measurements of Measurement phase periodically and publishing the results to the monitoring manager.