CMMI For Development, Version 1

Transcription

Pittsburgh, PA 15213-3890CMMI for Development,Version 1.2CMMI-DEV, V1.2CMU/SEI-2006-TR-008ESC-TR-2006-008Improving processes for better productsCMMI Product TeamAugust 2006Unlimited distribution subject to the copyright.

This work is sponsored by the U.S. Department of Defense. The Software Engineering Institute is afederally funded research and development center sponsored by the U.S. Department of Defense.Copyright 2006 by Carnegie Mellon University.NO WARRANTYTHIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE ENGINEERING INSTITUTE MATERIAL ISFURNISHED ON AN “AS-IS” BASIS. CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANYKIND, EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT NOT LIMITED TO,WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINEDFROM USE OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE ANY WARRANTY OFANY KIND WITH RESPECT TO FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT.Use of any trademarks in this report is not intended in any way to infringe on the rights of the trademark holder.Internal use. Permission to reproduce this document and to prepare derivative works from this document for internal use isgranted, provided the copyright and “No Warranty” statements are included with all reproductions and derivative works.External use. Requests for permission to reproduce this document or prepare derivative works of this document for externaland commercial use should be addressed to the SEI Licensing Agent.This work was created in the performance of Federal Government Contract Number FA8721-05-C-0003 with CarnegieMellon University for the operation of the Software Engineering Institute, a federally funded research and developmentcenter. The Government of the United States has a royalty-free government-purpose license to use, duplicate, or disclose thework, in whole or in part and in any manner, and to have or permit others to do so, for government purposes pursuant to thecopyright license under the clause at 252.227-7013.For information about purchasing paper copies of SEI reports, please visit the publications portion of our Web ml).The following service marks and registered marks are used in this document:Capability Maturity Model CMM CMM IntegrationSMCMMI IDEALSMSCAMPISMCMMI, CMM, and Capability Maturity Model are registered in the U.S. Patent and Trademark Office.CMM Integration, SCAMPI, and IDEAL are service marks of Carnegie Mellon University.

CMMI for DevelopmentVersion 1.2PrefaceCMMI (Capability Maturity Model Integration) is a processimprovement maturity model for the development of products andservices. It consists of best practices that address development andmaintenance activities that cover the product lifecycle from conceptionthrough delivery and maintenance.This latest iteration of the model as represented herein integratesbodies of knowledge that are essential for development andmaintenance, but that have been addressed separately in the past,such as software engineering, systems engineering, hardware anddesign engineering, the engineering “-ilities,” and acquisition. The priordesignations of CMMI for systems engineering and softwareengineering (CMMI-SE/SW) are superseded by the title “CMMI forDevelopment” to truly reflect the comprehensive integration of thesebodies of knowledge and the application of the model within theorganization. CMMI for Development (CMMI-DEV) provides acomprehensive integrated solution for development and maintenanceactivities applied to products and services.CMMI for Development, Version 1.2 is a continuation and update ofCMMI version 1.1 and has been facilitated by the concept of CMMI“constellations” wherein a set of core components can be augmentedby additional material to provide application-specific models with highlycommon content. CMMI-DEV is the first of such constellations andrepresents the development area of interest.PurposeThe purpose of CMMI for Development is to help organizations improvetheir development and maintenance processes for both products andservices. CMMI for Development is a collection of best practices that isgenerated from the CMMI Framework. 1 The CMMI Framework supportsthe CMMI Product Suite by allowing multiple models, training courses,and appraisal methods to be generated that support specific areas ofinterest.1The CMMI Framework is the basic structure that organizes CMMI components and combines them intoCMMI constellations and models.Prefacei

CMMI for DevelopmentVersion 1.2A constellation is a collection of CMMI components that includes amodel, its training materials, and appraisal-related documents for anarea of interest. Currently there are three planned constellationssupported by the version 1.2 model framework: development, services,and acquisition. “Additions” are used to expand constellations forspecific additional content.This document contains the CMMI for Development constellation andcontains both the base CMMI-DEV as well as CMMI-DEV with the IPPDaddition (CMMI-DEV IPPD).If you are not using IPPD, ignore the information that is marked “IPPDAddition,” and you will be using the CMMI for Development model.Unlike CMMI version 1.1, there is but a single model document thatdescribes both the staged and continuous approaches to processimprovement versus the prior use of two representations of staged andcontinuous in separate documents. This consolidated presentation ofmodel material for both approaches was first used in the book, CMMI:Guidelines for Process Integration and Product Improvement. Thanks toPeter Gordon, publishing partner at Addison-Wesley Professional, andthe book’s authors, Mary Beth Chrissis, Mike Konrad, and SandyShrum, we were able to use the book’s manuscript as the basis fordeveloping CMMI version 1.2 [Chrissis 2003].AcknowledgmentsMany talented people were involved as part of the product team for theCMMI v1.2 Product Suite. Three primary groups involved in thisdevelopment were the Steering Group, Product Team, andConfiguration Control Board.The Steering Group guides and approves the plans of the ProductTeam, provides consultation on significant CMMI project issues, andensures involvement from a variety of interested communities.The Product Team writes, reviews, revises, discusses, and agrees onthe structure and technical content of the CMMI Product Suite, includingthe framework, models, training, and appraisal materials. Developmentactivities are based on multiple inputs. These inputs include an ASpecification and guidance specific to each release provided by theSteering Group, source models, change requests received from theuser community, and input received from pilots and other stakeholders[SEI 2004].The Configuration Control Board is the official mechanism for controllingchanges to the CMMI models and Introduction to CMMI training. Assuch, this group ensures integrity over the life of the product suite byiiPreface

CMMI for DevelopmentVersion 1.2reviewing all proposed changes to the baseline and approving onlythose changes that satisfy the identified issues and meet the criteria forthe upcoming release.Members of these groups that were involved in developing CMMI v1.2,are listed in Appendix C.AudienceThe audience for this model includes anyone interested in processimprovement in a development and maintenance environment. Whetheryou are familiar with the concept of Capability Maturity Models orwhether you are seeking information to get started on yourimprovement efforts, this document will be useful to you.This model is also intended for people who want to use an appraisal 2 tosee where they are, those who already know what they want toimprove, and those who are just getting started and want to develop ageneral understanding of the CMMI for Development constellation.Organization of This DocumentThis document is available on the SEI Web site 3 and serves as a guidefor improvement of organizational processes. It is organized into threemain parts: Part One—About CMMI for Development Part Two—Generic Goals and Generic Practices, and the ProcessAreas Part Three—The Appendices and GlossaryPart One, “About CMMI for Development,” consists of five chapters: Chapter 1, “Introduction,” offers a broad view of CMMI and theCMMI for Development constellation. It introduces you to theconcepts of process improvement, and describes the history ofmodels used for process improvement and different processimprovement approaches. Chapter 2, “Process Area Components,” describes all of thecomponents of the CMMI for Development process areas.2An appraisal is an examination of one or more processes by a trained team of professionals using a referencemodel (e.g., CMMI) as the basis for determining strengths and weaknesses.3The SEI Web site is located at http://www.sei.cmu.edu.Prefaceiii

CMMI for DevelopmentVersion 1.2 Chapter 3, “Tying It All Together,” assembles the modelcomponents and explains the concepts of maturity levels andcapability levels. Chapter 4, “Relationships among Process Areas,” provides insightinto the meaning and interactions of the CMMI for Developmentprocess areas. Chapter 5, “Using CMMI Models,” describes paths to adoption anduse of CMMI for process improvement and benchmarking.Part Two, “Generic Goals and Generic Practices, and the ProcessAreas,” contains all of the CMMI for Development constellation’srequired and expected components. It also contains related informativecomponents, including component names, subpractices, notes, andtypical work products.Part Two contains 23 sections. The first section contains the genericgoals and practices, including a description of how they are used andhow they relate to the process areas. The remaining 22 sections eachrepresent one of the CMMI for Development process areas. 4 To makethese process areas easy to find, they are organized alphabetically byprocess area acronym. Each section contains descriptions of goals,best practices, and examples.Part Three, “The Appendices and Glossary,” consists of four informationresources: Appendix A, “References,” contains references you can use tolocate documented sources of information such as reports, processimprovement models, industry standards, and books that arerelated to CMMI for Development. Appendix B, “Acronyms,” defines the acronyms used herein. Appendix C, “CMMI for Development Project Participants,” containslists of people and their organizations who participated in thedevelopment of CMMI for Development, Version 1.2. The “Glossary” defines many of the terms used in CMMI.How to Use This DocumentWhether you are new to process improvement, new to CMMI, oralready familiar with CMMI, Part One can help you understand whyCMMI for Development is the best model to use for improving yourdevelopment and maintenance processes.4A “process area” is a cluster of related best practices in an area, which when implemented collectively, satisfya set of goals considered important for making significant improvement in that area. We will cover thisconcept in detail in Chapter 2.ivPreface

CMMI for DevelopmentVersion 1.2Readers New to Process ImprovementIf you are new to process improvement or new to the CMM concept,we suggest that you read Chapter 1, “Introduction,” first. Chapter 1 willgive you an overview of process improvement and explain what CMMIis all about.Next, skim Part Two, including generic goals and practices as well asspecific goals and practices, to get a feel for the scope of the bestpractices contained in the model. Pay closest attention to the purposeand introductory notes at the beginning of each section.In Part Three, look through the references in Appendix A and selectadditional sources you think would be beneficial to read before movingforward with using CMMI for Development. Read through the acronymsand glossary to become familiar with the language of CMMI. Then, goback and read the details of Part Two.Readers Experienced with Process ImprovementIf you are new to CMMI but have experience with other processimprovement models, such as the Software CMM (version 1.1) or theSystems Engineering Capability Model (i.e., EIA 731), you willimmediately recognize many similarities [EIA 1998].We recommend that you read Part One to understand how CMMI isdifferent from other process improvement models, but you may want toread some of the sections more quickly than others. Read Part Twowith an eye open for best practices you recognize from the models youhave already tried. Identifying familiar material gives you a feel for whatis new and what has been carried over from the model you alreadyknow.Next, review the glossary to understand how some terminology maydiffer from that used in the process improvement model you know.Many concepts will be repeated, but they may be called somethingdifferent.Readers Familiar with CMMIIf you have reviewed or used a CMMI model before, you will quicklyrecognize the CMMI concepts discussed and the best practicespresented. The differences between version 1.2 and version 1.1 areexplained in detail on the SEI Web site in the version 1.2 release notes.These differences reflect the enhancements suggested by the users ofversion 1.1.Prefacev

CMMI for DevelopmentVersion 1.2The following improvements were made to version 1.2: Both representations are presented together. The advanced practice and common feature concepts have beenremoved. The generic goal and practice descriptions were moved to PartTwo. Hardware amplifications were added. All definitions were consolidated in the glossary. IPPD practices were consolidated and simplified. There are nolonger any separate IPPD process areas. Supplier Agreement Management (SAM) and Integrated SupplierManagement (ISM) were consolidated and Supplier Sourcing wasremoved. Generic practice (GP) elaborations were added to the level 3 GPs. An explanation of how process areas support the implementation ofGPs was added. Material was added to ensure that standard processes are deployedto projects at their startup.Additional Information and Reader FeedbackYou can find additional information from various other sources aboutCMMI, such as the background and history of the CMMI models, as wellas the benefits of using CMMI models. Many of these sources are listedin Appendix A and are also published on the CMMI Web site—http://www.sei.cmu.edu/cmmi/ [SEI 2].Suggestions for improving CMMI are welcome. For information on howto provide feedback, see the CMMI Web site ts.html. If you havequestions about CMMI, send an email to cmmicomments@sei.cmu.edu.viPreface

CMMI for DevelopmentVersion 1.2Table of nization of This DocumentHow to Use This DocumentReaders New to Process ImprovementvReaders Experienced with Process ImprovementvReaders Familiar with CMMIvAdditional Information and Reader FeedbackAbout CMMI for Development1IntroductionAbout Capability Maturity ModelsEvolution of CMMICMMI for DevelopmentThe Scope of CMMI for DevelopmentThe Group of IPPD AdditionsResolving Different Approaches of CMMsChoosing a Representationvi1345789910Continuous Representation10Staged Representation10Comparison of the Continuous and Staged Representations11Factors in Your Decision11Why Not Both Representations?12Your Approach to Process Improvement2iiiiiiiiiiv13Scenario 113Scenario 214Process Area Components16Required, Expected, and Informative Components16Required Components16Expected Components16Informative Components16Components Associated with Part Two17Process Areas18Purpose Statements19Introductory Notes19Table of Contentsvii

CMMI for DevelopmentVersion 1.2Related Process Areas19Specific Goals19Generic Goals19Specific Goal and Practice Summaries20Specific Practices20Typical Work Products20Subpractices21Generic Practices21Generic Practice ElaborationsSupporting Informative cesNumbering SchemeTypographical ConventionsRepresentation-Specific ContentAdditions3272829Understanding LevelsStructures of the Continuous and Staged RepresentationsUnderstanding Capability Levels293032Capability Level 0: Incomplete33Capability Level 1: Performed33Capability Level 2: Managed33Capability Level 3: Defined33Capability Level 4: Quantitatively Managed34Capability Level 5: Optimizing34Advancing through Capability Levelsviii232324Tying It All TogetherUnderstanding Maturity Levels421223435Maturity Level 1: Initial36Maturity Level 2: Managed36Maturity Level 3: Defined37Maturity Level 4: Quantitatively Managed37Maturity Level 5: Optimizing38Advancing through Maturity Levels39Process AreasGeneric Goals and PracticesRepresentation ComparisonEquivalent Staging41454647Relationships Among Process Areas51Four Categories of CMMI Process AreasProcess Management5152Table of Contents

CMMI for DevelopmentVersion 1.2Basic Process Management Process Areas52Advanced Process Management Process Areas54Project ManagementBasic Project Management Process Areas55Advanced Project Management Process Areas57EngineeringRecursion and Iteration of Engineering ProcessesSupport555586162Basic Support Process Areas62Advanced Support Process Areas64Using CMMI Models65Adopting CMMIYour Process Improvement ProgramSelections That Influence Your ProgramCMMI ModelsUsing CMMI Appraisals6566666768Appraisal Requirements for CMMI68SCAMPI Appraisal Methods69Appraisal ConsiderationsCMMI-Related TrainingGeneric Goals and Generic Practices, and the Process AreasGeneric Goals and Generic PracticesOverviewProcess Institutionalization697073757575Performed Process76Managed Process76Defined Process77Quantitatively Managed Process78Optimizing Process79Relationships among Processes80Generic Goals and Generic PracticesApplying Generic PracticesProcess Areas That Support Generic PracticesCausal Analysis and ResolutionConfiguration ManagementDecision Analysis and ResolutionIntegrated Project Management IPPDMeasurement and AnalysisOrganizational Innovation and DeploymentOrganizational Process Definition IPPDOrganizational Process FocusOrganizational Process PerformanceTable of Contents819494101114131145178198219241261ix

CMMI for DevelopmentVersion 1.2Organizational TrainingProduct IntegrationProject Monitoring and ControlProject PlanningProcess and Product Quality AssuranceQuantitative Project ManagementRequirements DevelopmentRequirements ManagementRisk ManagementSupplier Agreement ManagementTechnical SolutionValidationVerificationThe Appendices and GlossaryA.ReferencesB.C.517521AcronymsCMMI for Development Project Participants522526Product Team526Model Team Members526SCAMPI Upgrade Team Members527Training Team Members527Architecture Team Members527Hardware Team Members528Piloting Team Members528Quality Team Members528529529Steering Group Members529Ex-Officio Steering Group Members530Steering Group Support: Acquisition530Steering Group Support: CCBConfiguration Control BoardCCB MembersNon-Voting CCB Membersx515517Publicly Available SourcesRegularly Updated SourcesSponsorsSteering sary530530530531532Table of Contents

CMMI for DevelopmentVersion 1.2PART ONEAbout CMMI for DevelopmentAbout CMMI for Development1

CMMI for DevelopmentVersion 1.22About CMMI for Development

CMMI for DevelopmentVersion 1.21 IntroductionNow, more than ever, companies want to deliver products and servicesbetter, faster, and cheaper. At the same time, in the high-technologyenvironment of the twenty-first century, nearly all organizations havefound themselves building increasingly complex products and services.Today, a single company usually does not develop all the componentsthat compose a product or service. More commonly, some componentsare built in-house and some are acquired; then all the components areintegrated into the final product or service. Organizations must be ableto manage and control this complex development and mainten

CMMI (Capability Maturity Model Integration) 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.