Process improvement is continuous improvement. We can never reach perfection. In this tutorial, we will learn CMM that is a continuously evolving and improving model where the focus is always on doing better. Our reach should always exceed our grasp.
CMM stands for Capability Maturity Model.
Focuses on elements of essential practices and processes from various bodies of knowledge.
Describes common sense, efficient, proven ways of doing business (which you should already be doing) − not a radical new approach.
CMM is a method to evaluate and measure the maturity of the software development process of an organization.
CMM measures the maturity of the software development process on a scale of 1 to 5.
CMM v1.0 was developed by the Software Engineering Institute (SEI) at Carnegie Mellon University in Pittsburgh, USA.
CMM was originally developed for Software Development and Maintenance but later it was developed for −
Systems Engineering
Supplier Sourcing
Integrated Product and Process Development
People CMM
Software Acquisition
People CMM − Develop, motivate and retain project talent.
Software CMM − Enhance a software focused development and maintenance capability.
Definitions vary but mature processes are generally thought to be −
Well-defined,
Repeatable,
Measured,
Analyzed,
Improved, and
Effective.
Poor but mature processes are just as bad as no maturity at all!
CMM helps to solve the maturity problem by defining a set of practices and providing a general framework for improving them. The focus of CMM is on identifying key process areas and the exemplary practices that may comprise a disciplined software process.
An immature organization would have the following characteristics −
Process improvised during project
Approved processes being ignored
Reactive, not proactive
Unrealistic budget and schedule
Quality sacrificed for schedule
No objective measure of quality
In contrast, the characteristics of a mature organization are as follows −
Inter-group communication and coordination
Work accomplished according to plan
Practices consistent with processes
Processes updated as necessary
Well-defined roles/responsibilities
Management formally commits
CMM Integration project was formed to sort out the problem of using multiple CMMs. CMMI product team's mission was to combine three Source Models into a single improvement framework for the organizations pursuing enterprise-wide process improvement. 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.
CMM Integration
Builds an initial set of integrated models.
Improves best practices from source models based on lessons learned.
Establishes a framework to enable integration of future models.
CMM is a reference model of matured practices in a specified discipline like Systems Engineering CMM, Software CMM, People CMM, Software Acquisition CMM etc., but they were difficult to integrate as and when needed.
CMMI is the successor of the CMM and evolved as a more matured set of guidelines and was built combining the best components of individual disciplines of CMM(Software CMM, People CMM, etc.). It can be applied to product manufacturing, people management, software development, etc.
CMM describes about the software engineering alone where as CMM Integrated describes both software and system engineering. CMMI also incorporates the Integrated Process and Product Development and the supplier sourcing.
The objectives of CMMI are very obvious. They are as follows −
Produce quality products or services − The process-improvement concept in CMMI models evolved out of the Deming, Juran, and Crosby quality paradigm: Quality products are a result of quality processes. CMMI has a strong focus on quality-related activities including requirements management, quality assurance, verification, and validation.
Create value for the stockholders − Mature organizations are more likely to make better cost and revenue estimates than those with less maturity, and then perform in line with those estimates. CMMI supports quality products, predictable schedules, and effective measurement to support the management in making accurate and defensible forecasts. This process maturity can guard against project performance problems that could weaken the value of the organization in the eyes of investors.
Enhance customer satisfaction − Meeting cost and schedule targets with highquality products that are validated against customer needs is a good formula for customer satisfaction. CMMI addresses all of these ingredients through its emphasis on planning, monitoring, and measuring, and the improved predictability that comes with more capable processes.
Increase market share − Market share is a result of many factors, including quality products and services, name identification, pricing, and image. Customers like to deal with suppliers who have a reputation for meeting their commitments.
Gain an industry-wide recognition for excellence − The best way to develop a reputation for excellence is to consistently perform well on projects, delivering quality products and services within cost and schedule parameters. Having processes that conform to CMMI requirements can enhance that reputation.