What Is the CMMI Concept?
- It must be remembered that there is nothing more difficult to plan, more uncertain of success, nor more dangerous to manage than the creation of a new order of things. For the initiator has the enmity of all who would profit by the preservation of the old institutions, and merely lukewarm defenders in those who would gain by the new order.
- —Machiavelli, The Prince (1513)
- In this age, which believes that there is a short cut to everything, the greatest lesson to be learned is that the most difficult way is, in the long run, the easiest.
- —Henry Miller, The Books in My Life (1957)
The implementation of continuous improvement in an organization is possible using two or more single-discipline models. There are many advantages, however, in having just one model that covers multiple disciplines. For this reason, the U.S. Department of Defense—specifically, the Under Secretary of Defense for Acquisition, Technology, and Logistics—teamed up with the National Defense Industrial Association (NDIA) to jointly sponsor the development of Capability Maturity Model Integration (CMMI). In 2000, under the stewardship of the Software Engineering Institute (SEI) at Carnegie Mellon University, this effort produced the first integrated CMMI models, together with associated appraisal and training materials. The year 2002 saw the release of CMMI version 1.1. Version 1.2 was released in 2006.
This chapter begins with an overview of the kinds of information and guidance found in CMMI models. For those not familiar with any of the source models, it provides a good introduction to CMMI's scope and usefulness. We follow this overview with a discussion of CMMI objectives and history. Next comes information on the source models that were used in creating CMMI. Finally, we describe the CMMI project organization.
3.1 An Overview of CMMI
The CMMI Product Suite contains an enormous amount of information and guidance to help an organization improve its processes. But how does this information help? To answer this question, we start by noting that the CMMI models contain essentially two kinds of materials:
- Materials to help you evaluate the content of your processes—information that is essential to your technical, support, and managerial activities
- Materials to help you improve process performance—information that is used to increase the capability of your organization's activities
We start with a brief look at each of these types of materials.
3.1.1 Process Content
CMMI provides guidance for your managerial processes. For example, you should establish and maintain a plan for managing your work, and make sure everyone involved is committed to performing and supporting the plan. When you plan, you should define exactly how you will develop and maintain cost, schedule, and product estimates. When you do the work that you have planned, you should compare the performance and progress against the plan, and initiate corrective actions if actual and planned results are out of synch. You should establish and maintain agreements with your suppliers and make sure that both parties satisfy them. CMMI also incorporates information on managing project risk and on creating and managing teams.
CMMI guidance on technical matters includes ways to develop, derive, and manage requirements, and to develop technical solutions that meet those requirements. The integration of product components depends on good interface information, and CMMI reminds us that integration activities need to be planned and verified. In following the CMMI model, you should make sure that the products and services you develop are consistent with their original requirements and satisfy the customer's needs through verification and validation practices.
Support processes for technical and managerial activities are also addressed as part of CMMI. You should always manage the versions and configurations of intermediate work products as well as end products and services. You should have methods for ensuring that the processes you have defined are followed and the products you are developing meet the quality specifications you have established. You need to decide which information is important and establish ways to measure and track it. In some cases, you need to plan ways to resolve issues formally. You may need to figure out the root cause of serious problems with your products or key processes.
3.1.2 Process Improvement
Once processes have been established, improving them becomes a key goal. The improvement information in CMMI models includes the creation of a viable, improvable process infrastructure. To build this infrastructure, CMMI includes ways to get your organization to focus on defining and following its processes. Through training and standardization, you can make sure all members of the organization know their roles and understand how to execute them in the process. The measurement data you collect can be applied to improve your process performance, to innovate when processes need to evolve, and to ensure that your organization is able to meet changing needs.
Processes need to be planned just like projects, and it helps if the organization has given some weight and validity to process compliance through policy. You need to make sure that resources are available for trained, empowered people to perform the process. Those with a vested interest in a process need to be identified and involved. Work products that result from performing a process should be managed, the process documentation should be controlled, and progress against the process plan should be tracked as well. Someone should be responsible for objectively evaluating that the process is being followed, and management should be briefed periodically on process performance.
Processes become more capable when they are standardized across the organization and their performance is monitored against historical data. With capable processes, you can detect variations in performance and address potential problems early. Ultimately, you should be continuously improving the processes by identifying the root causes of process variability and finding innovative ways to make them better.
3.1.3 CMMI and Business Objectives
In Chapter 1, we identified some common organizational business objectives. Based on this brief overview of CMMI's process content and concern with process improvement, how could you expect CMMI to help your organization in meeting such objectives? Let's look at each objective individually.
Produce Quality Products or Services
The process improvement concept in CMMI models evolved from 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 likely to make better cost and revenue estimates than those with less maturity, and then exhibit performance in line with those estimates. CMMI supports quality products, predictable schedules, and effective measures to support management in making accurate and defensible forecasts. Process maturity can guard against project performance problems that could weaken the value of the organization in the eyes of investors.
Be an Employer of Choice
Watts Humphrey has said, "Quality work is not done by accident; it is done only by skilled and motivated people."1 CMMI emphasizes training, both in disciplines and in process. Experience has shown that organizations with mature processes have far less turnover than immature organizations. Engineers, in particular, are more comfortable in an organization where there is a sense of cohesion and competence.
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. Clearly customer satisfaction is a central factor, and in the marketplace having satisfied customers can be contagious. Customers like to deal with suppliers that have a reputation for meeting their commitments. CMMI improves estimation and lowers process variability to enable better, more accurate bids that are demonstrably achievable. It also contributes to meeting essential quality goals.
Implement Cost Savings and Successful Practices
CMMI encourages measurement as a managerial tool. By using the historical data collected to support project estimation, an organization can identify and widely deploy practices that work, and eliminate those that don't.
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 that address user needs within cost and schedule parameters. Having processes that incorporate CMMI practices can enhance that reputation.
As you can see, CMMI comprises information that can make a significant impact on your organization and on the achievement of your business objectives. In the next sections, we'll discuss a different set of objectives—those that led to the development of CMMI itself. In addition, we explore the models that were used as the basis for the information CMMI contains, and something of the structure in place to manage it. More detail on CMMI contents is provided in subsequent chapters.