起源/历史
作为一个理解和改进软件开发实践的框架,第一个软件能力成熟度模型(CMM-SW)最先由SEI在1987年发布,美国国防部资助了这一计划。CMM框架是基于这样一个假设,改进的过程能力将为软件开发项目带来更好的结果。它的主要目的是要成为供应商评价的一个工具:帮助采购软件的组织识别那些有着可靠过程和充分资质的组织。
此后,很多个相关的成熟度模型被开发出来并得到了一定认可,每个都有着不同的标准和框架。为了相互联结并提供一种描述成熟度的通用方法,这些模型被集成到了1.1版的CMMI 。在现在的1.2版中,CMMI包含了不同的学科:软件(SW)、系统(SE)、集成产品和过程开发(IPPD)以及供应商开发(SS)。通过把这些学科集成起来,该模型在内容中反映了所有4个学科。图7.1 对CMMI框架发展历史上的里程碑做出了概括。
图7.1 CMMI的历史
CMM都以过程的改进为中心,这些过程改进涉及到组织中的产品(软件和系统)计划、研发、质量控制和实施。这些CMM都包含了一个或者多个学科中有效过程的基本要素,还描绘了从不系统、不成熟的过程发展到很有章法的成熟过程的渐进的改进路径,在成熟的过程下,质量和有效性都会得到改进。
虽然已经证实这些模型对不同行业中的很多组织都是行之有效的,但使用多个模型却也碰到了问题。许多组织希望他们的改进努力能延伸到他们组织的不同部门。但是,每个部门使用的专门领域模型间的区别,包括它们的结构、内容和方案上的区别,限制了这些组织成功地推广改进的能力。并且,在一个组织中广泛地使用没有经过整合的多个模型在培训、评价和改进活动方面都代价高昂。
CMMI项目的目标是通过把多个不同的模型集成到一个框架来改进软件工程和其他领域成熟度模型的可用性。
CMMI产品小组的第一个任务是合并以下三个源模型:
软件能力成熟度模型(SW-CMM) v2.0 草案C [SEI 1997b]。
系统工程能力模型 (SECMM) [EIA 1998]。
集成产品开发能力成熟度模型(IPD-CMM) v0.98 [SEI 1997a]。
将这三个模型合并成一个改进框架是为了供在全企业范围内寻求过程改进的组织使用。
最近,人们改进了CMMI模型的结构以支持多个领域以及在多个领域和它们的模型间实现最佳实践共享。在两个新领域的工作已经开始:一个在服务领域(服务CMMI),另一个在采购领域(采购CMMI)。
这个任务的创建是为了执行联邦政府同卡耐基梅隆大学为运营软件工程研究所 (SEI)的编号为FA8721-05-C-0003的合同,软件工程研究所是一个由联邦提供资金的研发中心。美国政府有一个无须支付版税的政府专用许可证来使用这项工作的成果(或者它的一部分)1。SEI是一个美国国防部资助的由联邦提供资金的研发中心。
7.2 CMMI的应用范围
软件工程研究所的CMMI® 从1987年开始投入使用。目前,在46个国家都有它的用户,用户中既有只有十来个软件工程师的组织也有拥有成千上万雇员的大公司。从一系列评价收集到的证据表明CMMI在帮助软件界改进过程成熟度和降低项目失败风险方面是很成功的。
很多行业,包括航天、银行、计算机硬件、软件、国防、汽车制造以及电信,在开发中都使用CMMI(图7.2)。
图7.2 SEI过程成熟度简图 (2006年3月; SEI)
随着业务职能越来越多地依赖于软件密集型的系统,提高IT项目成功率的动力前所未有地高涨。使用这些系统工作的大多数人发现掌握起码的有关CMMI的目标、结构、用途和利益的知识是很有价值的。
CMMI中的开发模型包含了项目管理、过程管理、工程(包含系统、硬件和软件)以及开发中的辅助过程方面的最佳实践。面向开发的CMMI也包含了在开发和维护活动中运用经过整合的团队。
