CMMI, the Beginning

July 21, 2007

This posting will introduce CMMI and some basic concepts.  To understand how to bridge Agile and CMMI, I mentioned in an earlier posting that I need to understand CMMI and its core concepts and requirements to a much deeper level than I do now.  This is the first step of that trek.  I will probably repeat this a thousand times, but this is not an endorsement of CMMI so please do not leave comments about the advantages of Agile methods over more rigid models like CMMI.  We will get there, I am for Agile methodologies but like many people need to operate in the world of CMMI from both within my current organization and from external forces.

Disclaimer – much of this information is taken from the Software Engineering Institute (SEI) CMMI website.  I am not claiming to have originally authored major portions of this article, only added in some insight where it made sense. 

The SEI has information about the adoption of CMMI and important points to consider.  When and if you consider adopting CMMi in your organization this is a great place to start.

CMMi was created to address problems such as high costs, late deliveries and frustrated resources that can be led back to lack of or inadequate processes.

CMMI stands for “Capability Maturity Model Integration”. CMMI is a process improvement approach that provides organizations with the essential elements of effective processes.  It’s the integration of several other CMM’s (Capability Maturity Models).

So CMMi is a process model.  Like UML is a language model for describing systems. A process model is a collection of practices that describe what makes up an effective group of processes. 

CMMi is not a process in itself but describes the characteristics of effective processes.

One theme of CMMi is that the quality of the product is largely determined by the quality of the process that is used to develop and maintain it.

The latest version of CMMI version 1.2 was released in August 2006. There are 3 constellations of CMMI in the new version: CMMI Development, CMMI Services and CMMI Acquisition

The CMMI comes with two different representations – staged and continuous. The staged model, which groups process areas into 5 maturity levels, was also used in the ancestor software development CMM, and is the representation used to achieve a “CMMI Level Rating” from a SCAMPI appraisal. The continuous representation, which was used in the older CMM, defines capability levels within each profile. The differences in the representations are solely organizational; the content is equivalent.

(CMMI) contains 22 key process areas indicating the aspects of product development that are to be covered by company processes. The method by which a company chooses to adopt CMMI is called a representation. Both the staged representation and the continuous representation contain all 22 process areas.

The business processes of developing engineered solutions are the focus of CMMI.  This helps understand why it is most widely applied in software and systems engineering organizations.

Without some insight processes and control over their processes a company cannot know how well they’re doing and will be facing surprises.  And if/when they wait until the end of a project to see review how close they came to targets it will be difficult to improve.

CMMI should be adapted to each individual company; therefore companies are not “certified.” A company is appraised at a certain level of CMMI.

So in summary CMMi is a method in which organizations can measure their product development or service processes against industry practice.

It describes best practices to tell you what to do but doesn’t dictate the how or who.  It also lays worth on evolutionary improvement from immature to mature processes in a company.

Oh yeah,  definitely check this out…   A CMMi FAQ. 


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s