We can never reach to perfection. The CMM too is evolving and improving. The focus is on always 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 organizations.
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 :
Integrated Product and Process Development
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:
And most importantly ... effective. Poor but mature processes are just as bad as no maturity at all!
The CMM helps to solve the maturity problem by defining a set of practices and providing a general framework for improving them. The CMM focus is on identifying key process areas and the exemplary practices that may comprise a disciplined software process.
There are following characteristics of an immature organization:
Process improvised during project
Approved processes being ignored
Reactive, not proactive
Unrealistic budget and schedule
Quality sacrificed for schedule
No objective measure of quality
There are following characteristics of an mature organization:
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 to be used by 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
- 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.
Following are obvious objectives of CMMI:
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 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 high-quality 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.
In the next chapter we will see different CMMI Models called Disciplines. We will tell you how to choose a CMMI model for your organization.