Six Sigma is a powerful improvement program that started in manufacturing but has subsequently proven to be useful in a multitude of industries, including software development. But many of the assumptions and approaches of using Six Sigma in traditional industries may not be relevant in information technology (IT) and software development. Traditional Six Sigma program metrics such as number of completed and currently running projects, number of Black Belts and Green Belts trained and certified, and millions of dollars of savings generated are not the best indicators of program efficacy in a software services industry.
In the IT industry, positioning Six Sigma under the broad process management and improvement umbrella of Capability Maturity Model Integration (CMMI) ensures that a company benefits from this important tool while averting the trap of applying it where it does not fit.
The Capability Maturity Model Integration is a product of Carnegie Mellon Software Engineering Institute. The model describes a series of maturity levels (initial, managed, defined, quantitatively managed, optimizing) demonstrating increasing levels of process maturity for a software development organization.
CMMI can be viewed as a definition for industry best practices. Normally software organizations use this as a framework for process improvement. Some of the process areas in CMMI, such as causal analysis and resolution and quantitative process management, have significant resemblance to Six Sigma tools and approaches and are used for improving key performance metrics by the software project teams. This framework is broadly successful in bringing continuous improvement to the software process, albeit the rate of improvement varies widely across the project groups and magnitude of improvement is not always measured in quantitative terms. In other words, CMMI defines the minimum requirements necessary for attaining a particular maturity level, but it does not necessarily motivate practitioners to surpass that minimum defined level.
While CMMI provides a broad improvement framework for a software development organization, Six Sigma can be used as an effective tool for rapid process improvement in defined areas or metrics that are performing at less than desired levels and thus call for immediate attention.
Using Sigma Level as a Metric
To start, sigma measurement can be used as an effective metric to compare performance across several accounts in a software project. While service-level-agreement (SLA) adherence may be a primary metric in maintenance-type projects, the SLA is obviously different for different accounts. Calculation of sigma value for SLA adherence metrics takes into account the varying target levels among projects and comes out with a performance level that is meaningful from the customer’s point of view. The sigma level for an important function is an indicator that encapsulates customer expectation as well as the current performance level of the project.
Similarly, sigma level can be calculated for various process areas in an organization, and this metric can be used to monitor process-area performance over a period of time. However, practitioners need to give adequate thought to the logic and approach of sigma level calculation for a process area as it may differ across the organization. Additionally, it must be kept in mind that sigma level or process capability for a process area should not be equated with capability level (which represents the depth of implementation of the process area rather than performance). Also, while sigma level across process areas is a good comparison, levels should never be compared across organizations.
Using Six Sigma as a Methodology
While using sigma level as a metric can be helpful, much larger benefit can be derived when Six Sigma is used as a process improvement methodology. Here the project team identifies the areas in which a significant gap exists between current and desired performance level. This could be schedule variation, productivity, estimation variance or any project performance measures that touch the customer or are important to internal management. Once the focus area is identified, a Six Sigma team is formed and that team takes responsibility for improvement by taking up a focused project, to be completed in 3-6 months.
An ongoing metrics program ensures that the data necessary for Six Sigma projects is already available – thus data collection is often not an elaborate and lengthy exercise. For instance, if a project goal is to reduce delivered defect density and the team wants to find the category and origin of defects as a part of the Measure phase, such data may be readily available in the organizational repository based on the past submissions. The team also should have access to benchmark data in the organizational repository. Ready availability of this information proves useful for teams doing Six Sigma projects.
However, as the Six Sigma program progresses, the team often realizes that the low-hanging fruit has mostly been plucked – thus the “quick win” ideas normally part of the Define phase of a Six Sigma project are not always easy to find. In the past, rigorous application of defect prevention and causal analysis and resolution CMMI process areas resulted in incremental improvement of the project level processes. Thus, the Six Sigma team realizes that breakthrough improvement can take place only through rigorous analysis in the Analyze and Improve phases.
Analyze requires the application of tools, such as Pareto analysis, correlation and regression analysis, and the one-way ANOVA. Using these tools is possible in most scenarios because data is readily available through the organization’s strong metrics initiative, implemented in CMMI Level 4. Thus, the Six Sigma project team can quickly pinpoint the root causes of the problem. But Improve is more elaborate in many cases. The team must use advanced brainstorming techniques such as Six Thinking Hats or lateral thinking because commonplace techniques such as an affinity diagram or solution mapping may not yield the right solution to the problem at hand.
The Control phase of a Six Sigma project is a challenge. While the project team may attain significant gains, holding these gains and ensuring irreversibility is what they must ensure in Control. Here again the existing CMMI process improvement infrastructure comes in handy. An organization that has attained CMMI Level 5 has a strong process improvement structure linked to the organizational innovation and deployment process area. There are templates available to document the process improvement plan and record specific actions taken. Six Sigma related process improvements can be captured either in this kind of template or in the original project plan and can be audited by the software quality assurance department in the routine process review. This ensures perpetual adherence to the improved process (until the time another deliberate change is made) and sustenance of gains over a prolonged period of time.
Any high maturity software organization will have a strong metrics program that captures quantitative aspects of software development on an ongoing basis. This is an essential requirement under quantitative project management, a Level 4 process area of CMMI. A metrics program is essentially about quantification of the qualitative aspects of software development projects and analyzing this quantified data to gain insight into the process. It is an attempt to measure the “unmeasurable” and achieve continual process improvement.
Six Sigma can actually aid in this measurement process. Six Sigma projects help in the quantification of not only the existing performance of a process, but it also defines how much to improve in a designated time span. It focuses on the actual value or mean as well as the variation of the process output, thus bringing holistic improvement to the process.
Individual Six Sigma projects can work wonders in software services because they use private and project metrics to bring in improvement and then only report in the form of public metrics. Such detailed use of private and project metrics may be difficult to achieve without a focused Six Sigma project, even if the software metrics etiquette is ensured in the organization.
Six Sigma also creates a pool of trained practitioners in the organization who not only understand statistical methods and their applicability in software development projects, but also appreciate the enormous power of metrics and a measurement approach for process improvement. Thus they become the “metrics evangelists” – staunch advocates of metrics-based process improvement in the organization.
CMMI is a framework of software process management and process improvement. Six Sigma supplies the tools and methodologies for continuous improvement, a necessity for any Level 5 organization. CMMI is a combination of industry best practices, and Six Sigma can seamlessly fit into the framework, making it more robust in application.