Home > Articles > Software Development & Management > Management: Lifecycle, Project, Team

Introduction to CMMI

  • Print
  • + Share This
Learn what CMMI is and what it can do for you. Through this comprehensive introduction, you will be ready to work with integrated software models that transcend disciplines.
This chapter is from the book

More now than ever, companies today want to deliver products better, faster, and cheaper. At the same time, in the high-technology environment of the twenty-first century, nearly all organizations have found themselves building more and more complex products. Today, a single company usually does not develop all the components that compose a product. More commonly, some components are built in-house and some are acquired; then all the components are integrated into the final product. Organizations must be able to manage and control this complex product development and maintenance.

Many organizations have also found themselves in the software business. Organizations that were not typically software companies—such as financial institutions, car manufacturers, airplane manufacturers, and insurance companies—find that much of their business relies on software. Software is often what differentiates them from their competitors. The problems these organizations address today involve both software and systems engineering. More and more, these disciplines are becoming a critical part of their business. In essence, these organizations are product developers that need a way to manage an integrated approach to their software and systems engineering as part of reaching their business objectives.

In the current marketplace, there are maturity models, standards, methodologies, and guidelines that can help an organization improve the way it does business. However, most available improvement approaches focus on a specific part of the business and do not take a systemic approach to the problems that most organizations are facing. For example, there are many maturity models available such as the Software Engineering Institute's (SEI's) Capability Maturity Model® for Software (SW-CMM®), which focuses on improving software, and the Electronic Industries Alliance's (EIA's) Systems Engineering Capability Model (SECM), which focuses on systems engineering. By focusing on improving one area of a business, these models have unfortunately perpetuated the stovepipes and barriers that exist in organizations.

Capability Maturity Model® Integration (CMMI®) provides an opportunity to avoid or eliminate these stovepipes and barriers through integrated models that transcend disciplines. CMMI consists of best practices that address product development and maintenance. It addresses practices that cover the product's life cycle from conception through delivery and maintenance. There is an emphasis on both systems engineering and software engineering and the integration necessary to build and maintain the total product.

About Capability Maturity Models

The SEI has found several dimensions that an organization can focus on to improve its business. Figure 1.1 illustrates the three critical dimensions that organizations typically focus on: people, procedures and methods, and tools and equipment.

Figure 1Figure 1.1 The Three Critical Dimensions

But what holds everything together? It is the processes used in your organization. Processes allow you to align the way you do business. They allow you to address scalability and provide a way to incorporate knowledge of how to do things better. Processes allow you to leverage your resources and to examine business trends.

This is not to say that people and technology are not important. We are living in a world where technology is changing by an order of magnitude every ten years. Similarly, people typically work for many companies throughout their careers. We live in a dynamic world. A focus on process provides the infrastructure necessary to deal with an ever-changing world and to maximize personnel and technology to be more competitive.

Manufacturing has long recognized the importance of process effectiveness and efficiency. Today, many organizations in manufacturing and service industries recognize the importance of quality processes. Process helps an organization's workforce meet business objectives by helping them work smarter, not harder, and with improved consistency. Effective processes also provide a vehicle for introducing and using new technology in a way that best meets the business objectives of the organization.

In the 1930s, Walter Shewhart began work in process improvement with his principles of statistical quality control [Shewhart 31]. These principles were refined by W. Edwards Deming [Deming 86] and Joseph Juran [Juran 88]. Watts Humphrey, Ron Radice, and others extended these principles even further and began applying them to software in their work at IBM and the SEI. Humphrey's book Managing the Software Process [Humphrey 89] provides a description of the basic principles and concepts on which many of the capability maturity models are based.

The SEI has taken the process-management premise, "the quality of a system or product is highly influenced by the quality of the process used to develop and maintain it," and defined capability maturity models that embody this premise. The belief in this premise is worldwide in quality movements, as evidenced by the International Organization for Standardization/International Electrotechnical Commission (ISO/IEC) body of standards.

Capability maturity models (CMMs) focus on improving processes in an organization. They contain the essential elements of effective processes for one or more disciplines and describe an evolutionary improvement path from ad hoc, immature processes to disciplined, mature processes with improved quality and effectiveness.

Mark Paulk and others at the Software Engineering Institute created the first capability maturity model designed for software organizations and published it in a book, The Capability Maturity Model: Guidelines for Improving the Software Process [SEI 95].

The SEI's book took the principles introduced almost a century ago and applied them to this never-ending cycle of process improvement. The value of this process improvement approach has been confirmed over time. Organizations have experienced increased productivity and quality, improved cycle time, and more accurate and predictable schedules and budgets [Herbsleb 97].

  • + Share This
  • 🔖 Save To Your Account