Six Sigma part 2
A software manager wrote to me: “We want to improve the quality of our products and want to use the Six Sigma method. We have received several brochures about this method from consultants but we want to check how well it works in other companies before spending our money. Please advice.”
Answer: Six Sigma is a systematic approach for improving the results of the manufacturing process in Motorola. The term describes a statistical modeling that indicates the manufacturing yield or the percentage of defect-free products. A Six Sigma process can be expected to yield 99.9% of defect free products. In the late 1980s, Motorola set a goal of “Six Sigma” for all of its manufacturing operations. It is important to note that this was the goal that they set, it does not means everything they built have achieve this level of quality as most people often referred to. Although Six Sigma is a very good concept for process improvement in the manufacturing but many people often “claimed” that they have achieved this level of quality in many areas including software.
Six Sigma consists of an improvement life cycle that has five phases: Define problem; Measure performance; Analyze gaps between current performance and target performance; Implement improvements; and Control the process (DMAIC). And several statistical analysis techniques to analyze data collected in the measure phase such as “Run charts”, “Root cause analysis”, “Control limits” etc.
In theory, it is logical and easy to explain. In reality, implementing Six Sigma requires a strong management support, a lot of trainings, and a lot of efforts across all level of management and workers. The collected data for analysis must be of high quality to identify root cause area for improvement. Unless the company has well established process and have disciplined measurement culture and the products must be of absolute high quality such as in medical, military, or nuclear products where accuracy and safety are critical, the application of Six Sigma can be overwhelming for any company and often end up in failure.
In my experience, defining the problem is easy but collecting data and measuring process performance are not that simple. The analysis of the results can be meaningless unless you have absolute accurate data and stable enough data that can be calibrated down to the most accuracy possible. From the experience with the CMMI, I think if your company has NOT reached at least CMMI level 5, Six Sigma is not something that you want to try. It does not mean I do not like the concept of Six Sigma, I worked on that for many years when I was at Motorola but from the practical point of view, each method has its place, I believe Sig Sigma is very good in the manufacturing of semi conducting products where a zero defect is needed. However applying this concept to software developments where processes are not well defined; data collection is not matured; historical data are not stable or accurate enough for statistical modeling may not be a good idea.
I do not recommend applying Six Sigma in software development. To improve quality, there are better methods designed for software already exist such as Formal inspection (Fagan's inspection), PSP, TSP etc.
Sources
- Blogs of Prof. John Vu, Carnegie Mellon University