能力成熟度模型 (Capability Maturity Model",CMM°),包括CMMI, 都是对现实 世界的简化表述。能力成熟度模型包含了有效过程的基础元素。这些元素建立在 Crosby、Deming、Juran与 Humphrey 等人发展出的概念的基础之上。

20世纪30年代, Walter Shewhart 开始用他的统计质量管理原理从事过程改进工 [Shewhart 1931]。 这些原理由 W. Edwards Deming [Deming 1986]、Phillip Crosby [Crosby 1979] Joseph Juran [Juran 1988]进行了提炼。 Watts Humphrey、Ron Radice 与其他人又进一步扩展了这些原理,并在IBM(International Business Machines,国际商 用机器公司)与SEI 的工作中将这些原理应用到了软件领域[Humphrey 1989]。 Humphrey 的著作 Managing the Software Process(管理软件过程)所描述的基本原理与概念则成为 众多能力成熟度模型 (Capability Maturity Model,CMM) 的基础。

SEI 采纳了过程管理的假设前提,即“系统或产品的质量很大程度上受影响于所使 用的开发与维护过程的质量”,并定义了体现这一前提的多个 CMM。 我们可以在全球 的质量运动中看到对这一前提的信仰,并在国际标准化组织/国际电工委员会 (International Organization for Standardization/International Electrotechnical Commission, ISO/IEC) 的系列标准中得到印证。

CMM 关注于改进组织内部的过程,所包含的是单学科或多学科的有效过程的基础 元素,描述了从随意、不成熟的过程到提高了质量与有效性的、有秩序、成熟的过程的 演进道路。

同其他 CMM 类似,CMMI 模型给出了制订过程所使用的指南。 CMMI 模型并非过 程或过程描述。组织实际使用的过程取决于很多因素,包括应用领域以及组织架构与规 模。尤其是,CMMI 模型的过程域与组织使用的过程往往并非一一对应。

SEI 创建的第一个 CMM 模型面向软件组织而设计,并成书出版,题为 The Capability Maturity Model: Guidelines for Improving the Software Process (能力成熟度模 型:软件过程改进指南) [SEI1995]。

如今的CMMI 所应用的,是在近一个世纪前就已被引入至永无止境的过程改进循环 中的原理。这一过程改进方法的价值得到了时间的检验。很多组织都经历了生产率的 增长、质量的提升、周期时间的改进,并且进度与预算变得更为准确并可预测 [Gibson 2006]。

CMM 集成 (CMM Integration")这一项目的建立就是为了解决使用多个CMM 的问 题。选择模型并组合成单一的改进框架,其初衷是给从事企业级过程改进的组织使用

开发一套集成的模型不仅仅是简单地把现有的模型资料组合在一起。CMMI 产品团 队采用了促进达成共识的过程,构建出一个可以容纳多个群集的框架。

首个开发出的模型是CMMI 发模型(当时被简单称为“CMMI”)。 最初, CMMI 是一个结合了以下三个源模型的模型:软件能力成熟度模型 (Capability Maturity Model for Software, SW-CMM)2.0 版草稿C, 系统工程能力模型(Systems Engineering Capability

Model,SECM)[EIA 2002a], 和集成产品开发能力成熟度模型 (Integrated Product

Development Capability Maturity Model,IPD-CMM)0.98 版。

选择以上三个源模型是由于它们在组织中的成功应用或者是它们采用的过程改进 方法具有前景。

第一个CMMI 模型(1.02版)设计给从事企业级过程改进的开发型组织使用。它于 2000年发布。两年后1.1版发布,又过了四年1.2版发布。

到发布1.2版时,另外两个CMMI 模型又处在了酝酿之中。由于此次计划中的扩增, 第一个CMMI 模型的名称需要进行改变,成为了 CMMI 开发模型,群集的概念也自此 产生。

CMMI 采购模型于2007年发布。由于它建立在CMMI 开发模型1.2版的基础之上, 因而也被命名为1.2版。两年后, CMMI 服务模型发布。它建立在另外两个模型基础之 上,并且也被命名为1.2版。

2008年开始计划制订1.3版,以确保三个模型之间的一致性,并改进所有模型中高 成熟度的资料。1.3版的CMMI 采购模型 [Gallagher 2011,SEI 2010b]、CMMI开发模 [Chrissis 2011]和 CMMI 服务模型 [Forrester 2011,SEI 2010a] 2010年11 发布。

CMMI 框架给出了所需的结构,用来生成CMMI 模型、培训与评估等组件。为允许 CMMI 框架中使用多个模型,模型组件又进行了分类,分为通用于所有CMMI 模型 的组件或适用于某个特定模型的组件。通用资料被称为“CMMI 模型基础(CMMI

Model Foundation)”或称“CMF”。

CMF 的组件同时也是基于此框架生成的每个模型的组成部分。这些组件与适用于所关注领域(如:采购、开发、服务)的资料结合,就形成一个模型。

这样的 CMMI 组件的集合就定义为一个群集:这些组件用于构建针对所关注领域 (例如采购、开发、服务)的模型、培训材料和评估相关文档。开发群集的模型被称为 “CMMI 开发模型”或 “CMMI-DEV”

CMMI 开发模型是一个参考模型,涵盖了开发产品与服务的活动。来自很多行业的 组织,包括航空航天、银行、计算机硬件、软件、国防、汽车制造与电信等,都使用 CMMI 开发模型。

CMMI 开发模型所包含的实践覆盖了项目管理、过程管理、系统工程、硬件工程、 软件工程与其他用于开发与维护的支持过程。

应使用专业判断与常识来为组织解读模型。也就是说,尽管模型描述的过程域刻画 了被多数用户视为最佳实践的行为,仍应结合深入的 CMMI-DEV 知识、组织的约束与 业务环境来解读过程域与实践。