Model-Based Software Process Improvement
The SEI’s Capability Maturity Model (CMM) and Capability Maturity Model Integrated (CMMI) are the most prominent examples of a model based approach to process improvement. The CMM is limited to management and software engineering practices. The CMMI expands the CMM to address systems engineering and integrated product development as well.
The CMMI is organized around a set of Process Areas (PAs). The PAs are divided into groups associated with what are called maturity levels. In the CMMI, most basic management practices are considered part of maturity level 2, while most software engineering practices are associated with level 3. Level 4 is about process and product quality management, while level 5 includes processes for process optimization and technology change management.
An organization that has practices that meet all the goals of maturity level 2 is characterized as a level 2 organization. An organization that cannot demonstrate that its practices meet all the applicable level 2 goals is considered level 1 by default. An organization that meets the goals of all the PAs at level 2 and level 3 is a level 3 maturity organization and so on.
The CMMI also offers an alternate approach call the "continuous representation", where individual PA's are rated on a maturity scale of 1 - 5. This allows the organization the flexibility to tailoring its maturity goals based on business needs for particular PA's.
As organizations move up the maturity ladder, they are more likely to produce higher quality products with more predictable costs and cycle times. The higher levels are more likely to correlate with higher productivity and shorter cycle times as well.
The idea of model based software improvement is very simple. First pick the applicable Process Areas. Next perform an assessment of organizational practices relative to the model. The organization practices do not have to conform exactly to the representative practices included in the model. They just have to meet the stated goals of each PA. Based on this comparison, assign a maturity level to the organization and produce a list of strengths and weakness relative to the model.
The output of the assessment is used to prioritize areas for improvement. The idea is to improve deficient practices at the lower maturity levels first and systematically move up in maturity level over time using additional assessments to measure progress.
Focusing on the lowest level practices puts a firm foundation in place before tacking the higher level processes and it give the organization time to internalize the changes. This approach nicely avoids the twin problems of putting practices in place before required supporting practices are available and trying to do too much too soon.
So model based improvement has a lot of very attractive features. One of the most attractive ones is the level goal itself. The numerical level gives organizations a metric that that can be easily understood, can used to measure progress, and can used to benchmark against other organizations.
SEI has defined a formal appraisal methodology and provided a lead assessor training and certification program. This means that assessment results, particular those obtained using a third party assessor, will be reasonably consistent and can be used to benchmark against other organizations. In fact SEI maintains a publicly accessible database of assessment results giving the number of organizations at each level by industry and the average time for an organization to improve from one level to the next.
Model-based improvement offers a lot of advantages. Unfortunately, there are also a lot of potential pitfalls that must be avoided. (cf. Model-Based Improvement Pitfalls), and it would be wrong to imply that model based improvement is the only way to go. There are other improvement models, e.g. Six Sigma and TSP are good alternatives for some organizations. It is also possible to combine a model based approach at the strategic level with a Six Sigma approach at the tactical level or to use a model based approach to provide the organization infrastructure to support a TSP implementation.
No comments:
Post a Comment