The CMMI Concept
- An Overview of CMMI
- CMMI Objectives
- The Three Source Models
- CMMI Project Organization
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 integrated process 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 Deputy Under Secretary of Defense (Science and Technology)—teamed up with the National Defense Industrial Association (NDIA) to jointly sponsor the development of Capability Maturity Model Integration (CMMI). Working with the Software Engineering Institute (SEI) at Carnegie Mellon University, this effort produced the first integrated CMMI models in 2000, together with associated appraisal and training materials; 2002 saw the release of CMMI version 1.1.
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 the overview with a discussion of CMMI objectives and history. Next is 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 your organization improve its processes. But how does this information help? To answer this question, we note that essentially two kinds of materials are contained in the CMMI models:
-
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.
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 establish exactly how you develop and maintain cost, schedule, and product estimates. When you do the work that you plan, you should compare the performance and progress to the plan and take corrective actions if you find actual and planned results out of sync. You should establish and maintain agreements with your suppliers and make sure that you both satisfy them. There is information on managing project risk and on creating and managing teams, as well.
CMMI guidance on technical matters includes ways to develop, elaborate, and manage requirements, and to develop technical solutions that meet those requirements. It reminds you that the integration of product components depends on good interface information, and it needs to be planned and verified. You should make sure that the products and services you develop are consistent with the requirements and satisfy the customer's needs through verification and validation practices.
Support processes for technical and managerial activities are also addressed. You should always manage the versions and configurations of work products as well as end products and services. You should have methods of ensuring that the processes you have defined are being followed and the products you are developing meet the quality specifications you have established. You need to decide what information is important to you 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
Now let's look at improving the processes that you've established. 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 more on defining and following its processes. Through training and standardization you can make sure everyone knows their roles and how to execute them in the process. You learn to use the measurement data you collect to improve your process performance, innovate when processes need to evolve, and ensure your ability 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 it through policy. You need to make sure that resources are available for trained, empowered people to perform the process. Those with an interest in a process need to be identified and involved. Work products and the process documentation should be controlled, and the progress against the process plan tracked, as well. There should be someone responsible for objectively evaluating that the process is being followed, and management should be briefed periodically on the process performance.
Processes become more capable when they are standardized across the organization and their performance is monitored against historical data. This way you can detect variation in performance early enough to address it less expensively. And ultimately, the process should be continuously improving through identifying the root causes of variability and innovative ways to fulfill its objectives.
3.1.3 CMMI and Business Objectives
In Chapter 1 we identified some common business objectives found in organizations. Based on this brief overview of CMMI's process content and concern with process improvement, how could you expect CMMI to specifically help your organization to meet such objectives? Let's look at each objective individually.
-
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.
-
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 a marketplace, having satisfied customers can be contagious. Customers like to deal with suppliers who 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 best practices. Processes that are documented, measured, and continuously improved are perfect candidates for becoming best practices, resulting in cost savings for the organization. CMMI encourages measurement as a managerial tool. By using the historical data collected to support schedule 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 within cost and schedule parameters. Having processes that conform to CMMI requirements can enhance that reputation. The results of CMMI appraisals can be compared across a company, a corporation, or an industry. Many organizations proudly advertise their CMMI-defined maturity rating alongside their ISO 9000 registration.
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.