Introduction
CMMI has emerged as the de facto standard for software process improvement. The Software Engineering Institute has done tremendous work in bringing together a framework that allows organizations to achieve process maturity. For a number of very good reasons, the SEI has not published detailed action plans on how to actually implement the maturity model. This however, makes it hard for individuals to implement CMMI in their organizations.
Breaking it down
The CMMI guidelines prescribe a number of ways a company can achieve higher levels of process maturity. While each of these measures is easy enough to conceptualize in isolation the problem comes when you want to bring it all together. Defining organizational processes and policies is the easy part, rolling them out is more tricky.
To analyze the problem of implementing CMMI you have to break it down into its components.
What is it? - It is a framework for software process maturity proposed by the Software Engineering Institute.
What does it comprise of? - It comprises of defined processes and policies for performing work related to producing software.
How do you put it in practice? - This is the trickier part and comprises of a plan that performs gap analysis, defines support structures and organization and rolls out CMMI across the organization.
Implementing CMMI has strong parallels with standard project lifecycles. A standard software project can be thought of as comprising of three distinct components.
Establishing Ground Rules - You have an initial phase where the ground rules are established. In traditional projects this would be the phase where an agreement to proceed is obtained and requirements are gathered.
Planning the Project - Based on the requirements for the project, the project plan is developed and the project staffed.
Executing the Project - The project is executed and the software implemented at the end.
For CMMI these translate into
|
Standard Lifecycle
|
CMMI Implementation
|
|
Establishing Ground Rules
|
Defining the Processes and Policies
|
|
Planning the Project
|
Planning and staffing the effort, identifying the sponsor and SEPG
|
|
Executing the Project
|
Executing the implementation project - Performing Gap Analysis, Fine Tuning the Processes and Policies, Creating Support Groups, Identifying Pilot Projects, etc...
|
Conclusion
A CMMI implementation has strong similarities with software project management. Thus a complete CMMI implementation solution should be able to address three critical issues, namely
- Establishing Ground Rules
- Planning the Implementation
- Executing the Implementation Plan