Mary Beth Chrissis is a senior member of the technical staff at the Software Engineering Institute (SEI). Since joining the SEI in 1988, Mary Beth has been involved in all releases of CMMI models and the Capability Maturity Model for Software (SW-CMM). She is one of the primary contributors to The Capability Maturity Model: Guidelines for Improving the Software Process. Mary Beth is a member of the CMMI Architecture Team and CMMI Model Team. She is the manager of the SEI’s CMMI Training Team, which is responsible for the development and deployment of the SEI’s process improvement courses. Previously, she managed the CMMI Interpretive Guidance Project, which focused on understanding and addressing CMMI adoption issues and perceived barriers to CMMI adoption in the software community with a special focus on information technology, information systems (IS), and commercial software. Mary Beth is a member of the CMMI Configuration Control Board and is an instructor of various SW-CMM and CMMI model-related courses at the SEI. Prior to joining the SEI, Mary Beth worked at GTE Government Systems in Rockville, Maryland, developing a voice processing system. Mary Beth has a B.S. from Carnegie Mellon and is a member of the IEEE Software and Systems Engineering Standards Committee (S2ESC) Executive Committee.
Mike Konrad has been with the Software Engineering Institute since 1988. Currently, Mike is manager of the CMMI Models Team and chairs the CMMI Configuration Control Board, the approving body for changes to CMMI models and the Introduction to CMMI course. From 1988 through 1997, Mike contributed to the development of the Capability Maturity Model for Software (SW-CMM) and the ISO/IEC 15504 standard. Since the inception of the CMMI project in 1998, Mike has been leader or co-leader of every CMMI model development effort. Mike is also a member of the International Process Research Consortium (www.sei.cmu.edu/iprc). Prior to joining the SEI, Mike worked with International Software Systems, Inc. (ISSI) of Austin, Texas, where he contributed to the development of a rapid prototyping system. He has also worked with SAIC, George Mason University, University of Maryland, and Honeywell Information Systems. Mike obtained his Ph.D. in mathematics from Ohio University, Athens, Ohio, in 1978.
Sandy Shrum is a senior writer/editor at the Software Engineering Institute. She has been a member of the CMMI Development Team since the CMMI project’s inception in 1998. Her roles on the project have included Model Team member, Glossary Team leader, reviewer, editor, model development process administrator, and quality assurance coordinator. Sandy is also a member of the SEI Configuration Control Board, and is the CMMI communications coordinator. Before joining the SEI, Sandy spent eight years working for Legent Corporation, a Virginia-based software company. Her experience as a technical writer dates back to 1988, when she earned her M.A. in professional writing from Carnegie Mellon University. Her undergraduate degree, a B.S. in business administration, was earned at Gannon University.
Capability Maturity Model Integration (CMMI) is a process improvement maturity model for the development of products and services. It consists of best practices that address development and maintenance activities that cover the product lifecycle from conception through delivery and maintenance.
This latest iteration of the model as represented herein integrates bodies of knowledge that are essential for development and maintenance, but that have been addressed separately in the past, such as software engineering, systems engineering, hardware and design engineering, the engineering “-ilities,” and acquisition. The prior designations of CMMI for systems engineering and software engineering (CMMI-SE/SW) are superseded by the title “CMMI for Development” to truly reflect the comprehensive integration of these bodies of knowledge, and the application of the model within the organization. CMMI for Development (CMMI-DEV) provides a comprehensive integrated solution for development and maintenance activities applied to products and services.
CMMI for Development, v1.2 is a continuation and update of CMMI v1.1 and has been facilitated by the concept of CMMI “constellations” wherein a set of core components can be augmented by additional material to provide application-specific models with highly common content. CMMI-DEV is the first of such constellations and represents the development area of interest.
The purpose of CMMI for Development is to help organizations improve their development and maintenance processes for both products and services. This book is based on CMMI for Development, v1.2, which was produced from the CMMI Framework 1 in August 2006. The CMMI Framework supports the CMMI Product Suite by allowing multiple models, training courses, and appraisal methods to be generated that support specific areas of interest.
A constellation is a collection of CMMI components that includes a model, its training materials, and appraisal-related documents for an area of interest. Currently there are three planned constellations supported by the v1.2 model framework: development, services, and acquisition. “Additions” are used to expand constellations for specific additional content.
This book contains the CMMI for Development constellation and contains both the base CMMI-DEV as well as CMMI-DEV with the IPPD group of additions (CMMI-DEV +IPPD). If you are not using IPPD, ignore the information that is marked “IPPD Addition” and you will be using the CMMI for Development model.
Many talented people were involved in the development of the CMMI v1.2 Product Suite. Three primary groups involved in this development were the Steering Group, Product Team, and Configuration Control Board.
The Steering Group guides and approves the plans of the Product Team, provides consultation on significant CMMI project issues, and ensures involvement from a variety of interested communities.
The Product Team writes, reviews, revises, discusses, and agrees on the structure and technical content of the CMMI Product Suite, including the framework, models, training, and appraisal materials. Development activities are based on multiple inputs. These inputs include an A-Specification and guidance specific to each release provided by the Steering Group, source models, change requests received from the user community, and input received from pilots and other stakeholders.
The Configuration Control Board is the official mechanism for controlling changes to the CMMI models and Introduction to CMMI training. As such, this group ensures integrity over the life of the product suite by reviewing all proposed changes to the baseline and approving only those changes that satisfy the identified issues and meet the criteria for the upcoming release.
Members of the groups that were involved in developing CMMI for Development v1.2 are listed in Appendix C.
The audience for this book includes anyone interested in process improvement in a development and maintenance environment. Whether you are familiar with the concept of Capability Maturity Models or whether you are seeking information to get started on your improvement efforts, this book will be useful to you.
This book also is intended for people who want to use an appraisal 2 to see where they are, those who already know what they want to improve, and those who are just getting started and want to develop a general understanding of the CMMI for Development constellation. Thus, the audience for this book includes process appraisal teams; members of process improvement groups; project managers; product or service developers and maintainers, including software and systems engineers; and project management, computer science, and engineering and business educators.
This book serves as a guide for improvement of organizational processes. It is organized into three main parts:
Part One, “About CMMI for Development,” consists of six chapters:
Throughout Part One we added perspectives on process improvement. Each perspective provides insight into a CMMI-related topic from an expert in the field. You will notice that each piece has a style that reflects the contributor.
Part Two, “Generic Goals and Generic Practices and the Process Areas,” contains all of the CMMI for Development constellation’s required and expected components. It also contains related informative components, including component names, subpractices, notes, and typical work products.
Part Two contains twenty-three sections. The first section contains the generic goals and practices, including a description of how they are used and how they relate to the process areas. The remaining twenty-two sections each represent one of the CMMI for Development process areas. 3 To make these process areas easy to find, they are organized alphabetically by process area acronym and have tabs on the outside edge of the page. Each section contains descriptions of goals, best practices, and examples. Plus, we’ve added tips, hints, and cross-references in the outer margins to help explain concepts and relationships, and to provide other useful information.
Part Three, “The Appendices and Glossary,” consists of five information resources:
Whether you are new to process improvement, new to CMMI, or already familiar with CMMI, Part One can help you understand why CMMI for Development is the best model to use for improving your development and maintenance processes.
If you are new to process improvement or new to the CMM concept, we suggest that you read Chapter 1, “Introduction,” first. Chapter 1 will give you an overview of process improvement and explain what CMMI is all about.
Next, skim Part Two, including generic goals and practices as well as specific goals and practices, to get a feel for the scope of the best practices contained in the model. Pay closest attention to the purpose and introductory notes at the beginning of each section.
In Part Three, look through the references in Appendix A and select additional sources you think would be beneficial to read before moving forward with using CMMI for Development. Read through the acronyms and glossary to become familiar with the language of CMMI. Then, go back and read the details of Part Two, including the tips and hints.
If you are new to CMMI but have experience with other process improvement models, such as the Software CMM (v1.1) or the Systems Engineering Capability Model (i.e., EIA 731), you will immediately recognize many similarities.
We recommend that you read Part One to understand how CMMI is different from other process improvement models, but you may want to read some of the sections more quickly than others. Read Part Two with an eye open for best practices you recognize from the models you have already tried. Identifying familiar material gives you a feel for what is new and what has been carried over from the model you already know. Review the tips, hints, and cross-references to see details and relationships that will help you understand CMMI better.
Next, review the glossary to understand how some terminology may differ from that used in the process improvement model you know. Many concepts will be repeated, but they may be called something different.
If you have reviewed or used a CMMI model before, you will quickly recognize the CMMI concepts discussed and the best practices presented. The differences between v1.2 and v1.1 are explained in detail on the SEI Web site in the v1.2 release notes. These differences reflect the enhancements suggested by the users of v1.1. Focus in on the tips, hints, and cross-references in the process areas to discover new ideas, relationships, or details you may have missed before.
This book has significant improvements over the first edition. This second edition has new features we’ve added that you won’t find in the v1.2 models available online.
The following improvements were made to v1.2:
We added several features to the second edition that you will not find in the first edition.
You can find additional information from various other sources about CMMI, such as the background and history of the CMMI models, as well as the benefits of using CMMI models. Many of these sources are listed in Appendix A and are also published on the CMMI Web site—www.sei.cmu.edu/cmmi/.
Suggestions for improving CMMI are welcome. For information on how to provide feedback, see the CMMI Web site at www.sei.cmu.edu/cmmi/models/change-requests.html. If you have questions about CMMI, send an email to email@example.com.
1. The CMMI Framework is the basic structure that organizes CMMI components and combines them into CMMI constellations and models.
2. An appraisal is an examination of one or more processes by a trained team of professionals using a reference model (e.g., CMMI) as the basis for determining strengths and weaknesses.
3. A “process area” is a cluster of related best practices in an area, which, when implemented collectively, satisfies a set of goals considered important for making significant improvement in that area. We will cover this concept in detail in Chapter 2.