CMM是Capability Maturity Model的缩写形式,是美国国防部委托CMU-SEI(卡耐基梅隆大学的软件工程协会)开发的一套标准,用以对软件承包商的开发能力进行评估。美国防部因外包项目而造成的损失以亿美元为单位计,而CMMI的实施则极大的提高了其外包项目的开发管理水平。后来,很多软件开发商发现CMM可用来改进软件开发管理过程,CMM因此得以推广,进而在全球范围内流行。
CMMI模型由一系列的PA(过程域)组成,这些PA构成了集成能力模型的核心,为企业提供了软件工程、系统工程、集成产品及过程开发方面的过程改进框架和指南。在CMMI中,软件组织可以按照两中模型改进自己的软件开发过程——连续的和阶段性的模型。
据SEI统计,通过CMMI认证并切实实施CMMI管理模式的软件公司对项目的估计与控制能力约提升40%到50%;生产率提高10%到20%,软件产品出错率下降超过1/3。
软件过程能力成熟度的五个等级的关键特征是:
1.初始级。企业的项目开发过程始终处于黑盒状态,项目经常失控,对于关键开发人员的依赖性极大,项目组也始终处于一种救火式的状态。成功来源于个人英雄主义而非机构行为,因此它不可重复,更换人员后成功便难以维持。
2.管理级。明确了基本的项目管理和控制;对特定的项目,建立了管理该项目的策略,以及实现这些策略的过程;新项目的计划和管理,基于类似项目经验;
过程能力主要通过管理单个项目的过程,来得到提高和增强;不同的项目可有不同的软件过程。
3.已定义级。软件过程已被提升成标准化过程,从而更加具有稳定性、重复性和可控性;工程活动和管理活动,集成为一个有机的整体;软件工程组(SEPG)专门负责订立机构的标准软件过程;标准的软件过程结合具体项目的特点,经过裁剪形成项目的过程;时间、成本和实现功能均可跟踪和控制,产品的质量得到保证。企业由项目组级管理机制转向组织级管理机制,组织内的每一个项目组都遵循组织级开发过程进行开发工作。
4.量化管理级。定量、可预测、异常控制和高质量;软件的过程和产品,有定量的质量指标;产品和生产过程的控制具有可预测性。
5.优化管理级。机构集中于持续的过程改进
通过CMMI评估与认证对企业的好处:
首先,通过了CMMI评估与认证,企业的软件开发能力得到了足够的提升和规范,对软件过程管理有了可以遵循的标准;
第二,通过了CMMI评估与认证,可以帮助企业更好地去建设自己的软件开发和管理团队,并同时对组织管理产生积极的影响。
第三,CMMI评估与认证是个全球软件开发行业绝对认可的技术、管理标准,获得了此标准的评估和认证的企业便获得了行业的技术资格与认可,因此就可以得到更多的外包订单、技术合约等。这对软件外包企业至关重要。
第四,CMMI系统是个集成体系,它不仅可以运用到软件开发和管理过程中,而且可以对企业、项目各个环节的过程管理,以及组织和团队的建设都起到一定的规范和管理效果。因此,其在各个领域都得到了充份的认可。