WHAT IS THE CMMI?
The CMMI is a model for improving and appraising performance of development organizations. It stands for "Capability Maturity Model Integration". It is published and developed by Software Engineering Institute in Pittsburgh, PA.
The CMM (the original version of CMMI) was originally commissioned by American Department of Defense to help them qualify software vendors' capabilities. From there it quickly evolved into a powerful tool to guide process improvement initiatives, not only for Software Development but for many related fields such as Systems Engineering, Product Acquisition, Team Management, Research and Development, etc.
Today CMMI is used around world in military, commercial and government organizations. It has been shown to reduce risks associated with development projects, increase efficiency and improve overall quality of products and deliverables. Many civil industries such as transportation and telecommunications are making it a requirement for submissions to large tenders. Countries such as India and China are also using it to position themselves as dependable, trustworthy providers of world class outsourcing services.
The CMMI is best known for its five levels of organizational maturity (see figure below). Each level represents a coherent set of best practices organizations are expected to implement as they become better at what they do.
Level 1: Initial (Majority of Organizations) Level 2: Managed Process Level 3: Defined Process Level 4: Quantatively Managed Process Level 5: Optimizing Process (less than 5% of Organizations)
To each maturity level are associated a number of related process areas. The process areas can be viewed as very detailed checklists of what goals need to be achieved, what activities performed, and what artifact created and maintained to satisfy requirements for a specific part of overall development process. The following lists CMMI process areas organized by maturity level. (Source: CMMI version 1.1 SW/SE/IPPD Staged Representation )
Maturity Level 1: No process area associated with maturity level 1
Maturity Level 2: Requirements Management Project Planning Project Monitoring and Control Supplier Agreement Management Measurements and Analysis Process and Product Quality Assurance Configuration Management
Maturity Level 3: Requirements Development Technical Solution Verification Validation Product Integration Organizational Process Focus Organizational Process Definition Organizational Training Integrated Project Management for IPPD Integrated Supplier Management Risk Management Decision Analysis and Resolution Integrated Teaming Organizational Environment for Integration
Maturity Level 4: Quantitative Project Management Organizational Process Performance
Maturity Level 5: Causal Analysis and Resolution Organizational Innovation and Deployment
The CMMI also include Generic Goals and Generic Practices. These model elements cover organization's ability to perform, manage, share, measure and improve its processes.
A new feature of CMMI (as opposed to original CMM) is ability to choose between two representations of model: Staged or Continuous. Generally speaking, Staged representation is better suited to focus organization towards tangible yet high level goals, while Continuous representation allows for precise customization of a process improvement program or appraisal to better meet an organization's specific requirements.
BENEFITS Here are some of major benefits you can achieve by using CMMI in your organization:
1. KNOWING YOUR TRADE Are you sure everybody involved in your projects knows exactly what their job is and how it relates with what everyone else is doing? Just go around office and ask these simple questions…
… To project managers: a. What is difference between a plan and a schedule? b. What do you record about estimates that are being made? c. Do you estimate size as well as effort when doing your planning? Do you monitor both attributes during life of project?
… To configuration managers: a. What is a baseline? b. What is purpose of a configuration audit? c. Who authorizes changes to configuration units?