用CMMI管理软件项目中的过程控制,虽然要写很多的文档,前期投入的人力资源比较多,但是对于
一些大型顶目和一些高风险项目是非常有必要的。
一、CMMI来源何处?
CMMI(Capability Maturity Model Integration)即能力成熟度模型集成,其前身为CMM,原本是当年美国军方为了评估自己的软件产品供应商的过程质量水平,而委托美国卡内基梅隆大学软件工程学院(SEI)开发的一套过程评估体系,后来又被推广到全世界,成为全球软件企业重要的过程改进方法之一,后因其衍生品的派系林立(如:SW-CMM、SE-CMM、IPT-CMM等等),SEI决定在SW-CMM、SE-CMM的基础上,加入委外采购、IPPD等相关内容,并融合ISO9000部分理念,形成了今天我们看到的CMMI,这也就是CMMI中的“I”的由来。
目前CMMI最新版本为V1.2,不过具SEI最新消息显示,CMMI V1.3版将在未来14-18个月内发布,主要修改内容为提高了对高成熟度(CMMI L4、5)实施和评估的要求,并且凡是通过L4以上的软件企业都须接受SEI的复核。
二、什么是CMMI?
CMMI的概念在网上和书本中都有许多解释,在这里不想再重述,不过其中有一个重点需要特别强调:CMMI仅提出了目标,而没有提出目标实现的方法。这也就是说CMMI根据过程质量的角度出发,提出了一系列的目标,而具体目标如何实现,可根据企业实际情况(如:企业规模、企业文化等)而定,这与很多人谈到的CMMI是一个重型过程体系就有所矛盾了。因此,综上所述,个人认为CMMI是一种基于软件项目开发过程质量考虑,整合了项目管理、质量管理的过程改进方法。之所以仍称其为方法,主要是因为以下两点:
1、CMMI目前仅作为商业评估机构SEI所研发的评估体系,还并非是全球公认的软件过程标准化体系文件。
2、CMMI的主要目标还是为了促进软件企业的组织过程改进,而过程改进的手段除了CMMI还有很多,比如ISO9000、MSF、IPD等,企业可以通过实际情况选择不同的方法来达到对自身的过程改进目标。
因此,从事过程改进的人士切忌不可过度迷信CMMI,不同地方法都可从不同角度来推进过程改进的目的,最终殊途同归。
三、CMMI的构成
如上所述,CMMI是由一系列的目标所构成,CMMI有一个总目标,那就是组织的过程改进,这也是CMMI的愿景。在这个总目标之下,CMMI又细分为多个子目标,子目标又分为特定目标(SG)和通用目标(GG)两种;每一个G(子目标)下设有不同的实践(P)对G(子目标)的实现进行支持;SG下的实践被称为特定实践(SP),GG下的实践则被称通用实践(GP)。
CMMI除有一整套目标体系外,还根据项目管理、质量管理的关键点,建立了过程域(PA),过程域分为四个类别:过程管理类、项目管理类、工程类、以及支持类等,每一个PA都有若干个不同地SG予以支持,而GG则是支持于所有的PA实现。
四、CMMI的实施与Level
CMMI的实施可以有两种方法来完成:一种是连续型,另一种是阶段型,被评估企业结合自身实际选择不同的实施方法。
连续型体现的是企业的能力度等级。
分为六个等级:
0.不完整级
1.执行级
2.管理级
3.定义级
4.量化管理級
5.佳化管理級
实施企业可选择自己比较薄弱的,或是需要加强的一个或几个PA进行实施。
阶段式体现了企业的成熟度等级。
分为五个等级:
1.初始级
2.管理级
3.定义级
4.量化管理級
5.优化管理級
这也是目前国内软件企业选择最多的实施方式。
这里暂以阶段式为例,将五个等级的关键特征进行一下简单的描述。
1、初始级。处在这一级别企业的项目开发过程始终处于黑盒状态,项目经常失控,对于关键开发人员的依赖性极大,项目组也始终处于一种救火式的状态。
2、管理级。在这一级别时,企业的项目基本保持可控状态,项目组开始建立项目级的管理机制,开发过程由黑盒状态开始转向比较清晰的阶段化和里程碑化。
3、定义级。企业由项目组级管理机制转向组织级管理机制,组织内的每一个项目组都遵循组织级开发过程进行开发工作。
4、量化管理级。L4以上为CMMI的高成熟度级,此时企业已建立了基本稳定地组织级开发过程,并对重要的子过程建立PPB(过程能力基线),再根据PPB间的数据逻辑关系建立PPM(过程能力模型),PPM是用于对项目开发过程进行预测的数学模型。在建立PPB同时,还须通过对过程的量化分析,消除因过程执行异常造成的可归属原因偏差,保持PPB对组织过程能力的代表性。
5、优化管理级。企业通过PPB、PPM的量化分析,找到组织开发过程中的公共原因偏差,并通过组织级的优化、改进、以及变革,逐步加以解决,来达到企业自我改进的目的。
五、CMMI的评估
目前CMMI的评估方法采用的是SCAMPI评估方法,透过企业为实现CMMI的PA中每一个SG和GG而产生的文档证据和口头证据来完成的,而文档证据又分为直接证据与间接证据,通过一个简单的例子来说明这几个证据的区别,比如:某人在某日去某餐厅用餐,如果他要证明自己的确当时是在那家餐厅用餐的话,那么他的直接证据就是当天那家餐厅返回的发票、优惠卷等可见的记录;而譬如当天他前往餐厅的出租车发票等则可以成为间接证据;那访谈证据呢,则可以是一起去用餐的人或是餐厅为他服务的服务员等。
评估时,每一个PA的SG和GG下设的SP和GP都须要有相应的直接证据、间接证据、以及访谈证据。当企业以连续式为实施方案时,评估根据PA的GG实现程度确定能力度等级,比如,当PA的GG3通过时,为能力度L3;当PA的GG4通过时,则能力度为L4,以此类推;当企业采用阶段式为实施方案时,企业在决定实施CMMI的Level后,须对Level所包含的每一个PA进行实施,L3以上评估只需实施GG3为止即可。