What is CMM?
CMM (Capability Maturity Model) is a model of process maturity for software development - an evolutionary model of the progress of a company’s abilities to develop software.
In November 1986, the American Software Engineering Institute (SEI) in cooperation with Mitre Corporation created the Capability Maturity Model for Software.
CMM is a methodology used to develop and refine an organization’s software development process. It is a benchmark used to compare organizational processes. It is routinely applied to the fields of IT, commerce and government to facilitate business area processes, such as:
- Systems Engineering
- Supplier Sourcing
- Integrated Product and Process Development
- People CMM
- Software Acquisition
- People CMM: It is used to motivate and retain project talent.
- Software CMM: It is used to software focused development and maintenance capability get enhance.
CMM was mainly used for the purpose of developing and refining software development processes. A structured collection of elements that describe characteristics of effective processes is known as maturity model.
A maturity model provides:
- It is a place of starting point.
- the benefit of a community’s prior experiences
- a common language and a shared vision
- a framework for prioritizing actions
- to define improvement for organization
Difference between immature and mature software organizations:
An immature organization has the following features:
- An immature software organization do not follow proper software process rigorously
- The immature software organization is reactionary, and managers are usually focused on solving immediate crises. Schedules and budgets are routinely exceeded because they are not based on standard estimates. When hard deadlines are imposed, product functionality and quality are generally compromised to meet the schedule.
An immature organization has the following features:
- A mature software organization possesses an organization-wide ability for managing software development and maintenance processes. The software process is accurately communicated to both existing staff and new employees, and work activities are carried out according to the planned process.
- A mature organization, managers routinely monitors the quality of the software products and customer satisfaction. The product and process are judge based on quantitative method. Budget and schedules are based on historical data.
What is CMMI?
The Capability Maturity Model Integration (CMMI) is a process model that defines a clear definition of what an organization should do to improve behaviors that lead to better performance.
Three Source Models combine into a single improvement framework for the organizations pursuing enterprise-wide process improvement by CMMI product team.
These three Source Models are:
- Capability Maturity Model for Software (SW-CMM) - v2.0 Draft C.
- Electronic Industries Alliance Interim Standard (EIA/IS) - 731 Systems Engineering.
- Integrated Product Development Capability Maturity Model (IPD-CMM) v0.98.
CMMI best practices help organizations to do the following:
- The business objectives are facilitated using link management and engineering activities.
- Scope and visibility are expanded in the product lifecycle and engineering activities.
- Major lessons are learned from additional areas of best practice (e.g., risk and supplier management).
- High-maturity practices are implementing robustly.
- Fully complied with relevant ISO standards.
CMMI and Business Objectives:
- Produce quality services or products: The Deming, Juran, and Crosby quality paradigm are evolved out of CMMI process improvement models. CMMI has a main focus on quality-related activities including requirements, quality assurance, verification, and validation.
- Stockholders for creating value: Better cost and revenue estimates are the product of mature organization then those with less maturity. CMMI provides support to product quality, schedules and help in making accurate and defensible forecasts.
- Customer satisfaction enhanced: Meeting cost and targets with high-quality products with respect to customer needs helps in increasing the customer satisfaction. CMMI address this with emphasis on planning, monitoring, and measuring, and the improved predictability.
- Increase in market share: Increase in market share result of many factors, including name identification, pricing, quality products and services, and image. Here customer satisfaction is a main factor and in a marketplace. Customers would like to deal with suppliers who have a reputation for meeting their commitments. CMMI improves estimation and lowers process variability which results in better, more accurate bids are achievable.
- Cost savings and best practices are implemented: processes which are documented, improved and measured result in cost saving for the organization. CMMI helps in measurement as a managerial tool. With the use of historical data which helps in estimation of schedules for an organization for identifying and deploying best practices around the organization.
- Industry-wide recognition for excellence is gained: Delivering the products or services within the cost and schedule consistently help in developing reputation for excellence.
Difference between CMM and CMMI:
CMM is a reference model of matured practices in specified stages like People CMM, Software Acquisition CMM, Systems Engineering CMM, Software CMM, etc., with no integration between them.
CMMI is the successor of the CMM with more matured group of guidelines and combined by applying best components of individual disciplines.