Sunday, May 15, 2011

A Brief Six Sigma Tutorial

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.

Saturday, May 14, 2011

The Application of Six Sigma to Software Production - Part 2

Just what is the problem?

I would refer to the success of Motorola and GE with the Six Sigma
activities that not only address problem Definition, problem Measurement,
problem Analysis, Implementation of the solution, but putting in place
management Controls (DMAIC) so that the changes instituted as a result of
finding out what is wrong stay in place. Part of the issue here is the
metrics, of course. But in Six Sigma, one identifies the metrics that
characterize the problem and not vice versa.

In Six Sigma there are no best practices only better ones than the ones we
have now. And better ones than that. And when you have reached less than 3
undesirable events in 1,000,000 opportunities, your practices are "good
enough."

In the most generic sense, I suppose the problem is that mistakes cost
money, and if we can avoid the mistakes, we can save money. You can bet
that the cause of mistakes resides in the culture in which the mistakes were
made. Cultures are generally created by the founding fathers and
propagated by successive generations; in businesses, by generations of
management. Cultures have a lot of momentum; See NASA for example. Is
saying that we can have a better culture tantamount to saying that our
current culture is not good enough? Is it wrong? Is it not satisfying?



(This first occurred in substance in the Yahoo Testing-Software forum.)