CMM vs CMMI
Capability Maturity Model (CMM v1.0), the very first CMM, was developed and released in August of 1990. It is a 5 level assessment model developed by the Software Engineering Institute (SEI) at Carnegie Mellon University to illustrate the best practices regarding engineering and management, specifically in software development. It is an evolutionary model of the movement of a company to develop software.
The reason for the development of CMM was to aid the US government in evaluating software providers’ abilities to handle large projects. Prior to the development of the model, many of the companies accomplished projects with considerable flaws in scheduling and budgeting. The model helped solve these problems.
In a mature organization, there should be standards for processes to manage projects and develop products. Since the model is specially made for software companies, overall rules for the structure of the final program code, interfaces, components, and others are described in the CMM model. In other words, CMM is a model of a mature organization and how it works as a developer or a manufacturer.
CMM had become very successful and it began to be used and specifically developed for other facets of an organization and disciplines such as, Systems Engineering, people, Integrated Product Development, and others.
However, useful as they may be, CMMs are not without any problems. Numerous organizations found them to be contradicting and quite overlapping. There is also a problem in various interfaces as it is lacking in clarity. Lack of standardization is also a major problem.
CMMI or CMM Integration is developed to integrate current and upcoming models. It is sort of an upgrade from the CMM model and describes process improvements for organizations especially in software development. The model includes the following areas: gathering (data and requirement), project planning/tracking, configuration management, training, quality assurance, collaboration and peer reviews.
CMMI basically assists in the incorporation of traditionally separate organizational functions and operations, sets process enhancement goals, provides supervision for quality processes, and provides a point of reference for evaluating current processes.
Summary:
1. CMM came first but was later improved and was succeeded by CMMI.
2. Different sets of CMMS have problems with overlaps, contradictions, and lack of standardization. CMMI later addressed these problems.
3. Initially, CMM describes specifically about software engineering whereas CMMI describes integrated processes and disciplines as it applies both to software and systems engineering.
4. CMMI is much more useful and universal than the older CMM.