媒体监测和推荐平台

特别报道

当前位置:首页 > 特别报道 > 详细内容

CMMI差距分析过程与实施

文/广州赛宝认证中心  王 威  李华北

差距分析过程是CMMI实施准备阶段的一项主要工作,通过采用快速诊断方法的差距分析,对组织的软件过程进行综合评估,了解组织现有软件过程的状况,为识别过程改进机会提供帮助。

一、差距分析的意义

差距分析是CMMI实施准备阶段的一项主要工作。关于差距分析的意义,可引用CMMI奠基人瓦茨•汉弗莱(Watts Humphrey)的一句话:如果你不清楚自己在什么位置,那么就算有地图也帮不了你。

差距分析的主要意义包括:

 验证组织现有的体系文件,识别差距,依据标准评审体系文件的符合性,按照CMMI模型识别组织软件过程的强项、弱项;

 依据识别的差距进行过程体系定义,建立和完善体系文件框架及组织职能;

 为制定过程改进行动计划提供依据。

二、差距分析的作用与方法

在采用CMMI实施软件过程改进的全生命周期中,可以按照SEI提出的IDEAL模型来开展过程改进活动,该模型(如下图1-1)为组织有计划实施过程改进活动提供了基础框架,共划分为五个阶段:

I:  Initiating(初始化)为成功地进行过程改进而打好基础。

D:  Diagnosing(诊断)相对预期目标找到组织目前所处位置。

E:  Establishing(建立)计划如何达到预期目标。

A:  Acting(行动)按计划执行和跟踪。

L:  Learning (学习)从经验中学习和改进将来采用新技术的能力。

图1-1过程改进IDEAL模型

组织在开展过程改进活动过程中,初始化-诊断-建立-行动-学习这五个阶段需不断循环,推进组织过程能力螺旋式上升,其中差距分析作为诊断阶段中的一项重要活动,对于定位组织过程能力目前状况发挥重要作用,从这种意义上来讲,差距分析、组织内部评估和CMMI的评估有相似性,是诊断的不同表现形式。

过程诊断主要以CMMI模型为依据,综合检查、评估组织现有体系文件及其实施情况,发现其中的差距,因此可以结合采用CMMI评估方法SCAMPI来进行。

SCAMPI评估方法是用来对软件组织的CMMI过程改进进行评估,以评价组织的软件过程能力等级或软件能力成熟度等级。

SCAMPI评估方法的主要原则包括:

 关注组织业务目标;

 依据CMMI过程参考模型;

 为被访谈者保密;

 对被访谈者不归咎。

SCAMPI评估分为三个阶段:准备阶段,现场评估,结果报告。

SCAMPI方法推荐了三类评估方法供组织进行CMMI评估时适当选择。表1-1是SCAMPI的三类评估类型。

表1-1    SCAMPI评估类型

一个组织在全面实施CMMI时,会在过程改进的不同阶段进行诊断检查,可以在CMMI启动准备阶段先通过一次SCAMPI的C类评估进行差距分析,然后在CMMI实施阶段逐步导入B类评估,最后导入A类评估进行软件能力成熟度等级定级。

综上所述,差距分析是在CMMI启动准备阶段采用SCAMPI的C类评估方法进行的一次过程诊断活动。

三、 差距分析主要活动

差距分析以CMMI模型为依据,综合检查、评估组织现有体系文件及其实施情况,发现其中的差距,其主要活动(如图1-2)包括:

 文件评审:

文件评审包括组织和项目文档,如组织方针、过程、指南和以前其他项目实施记录,步骤分别是:

按照模型/标准验证组织文档

按照模型/标准验证项目文档

 识别组织的强项和弱项:

一个有效的改变过程需要对当前状态的理解,通过实施状态评审,访谈组织不同职能角色的人员,包括高级管理者、项目经理、工程过程组、质量保证组、开发人员、测试人员、培训组、采购组、配置管理组等,以了解组织目前的项目实施情况及差距,并识别和报告组织过程的强项和弱项。

基于差距分析的结果,初步建立组织过程定义框架,主要进行两个方面的工作:

1)根据差距分析的结果,建立和完善体系文件框架及组织过程定义框架。体系文件包括两个层次:程序文件和实施文档(例如记录、模板)。

◆ 程序文件:方针、程序、指南、模板、检查;

◆ 实施文档-过程实施证据:具体项目的计划及子计划;每日工作日志、周报、状态报告(月报或里程碑报告);评审和审计报告: QA、CM、高层经理;问题记录、解决措施及追踪解决情况;估计和实际测量的数据

2)建立、完善以下角色或职能:

◆ 工程过程组(EPG):负责组织的CMMI实施;推进组织所采用的软件过程的定义、维护和改进工作;支持但不直接负责软件开发和(或)维护;

◆ 变更控制委员会(CCB):由组织组成的工作小组,负责建立、更改基线的设置与发布,负责变更控制;

◆ 质量保证组:计划和实施质量保证活动,其工作目的是保证过程和产品的步骤和标准得到遵守;

图1-2 差距分析过程图

 制定过程改进行动计划

根据差距分析的结果,制定过程改进行动计划,包括体系文件完善计划、项目实施计划和内部评审计划等。在整个计划编写和实施中,推荐运用IDEAL模型方法。

四、文件评审

1、文件评审的目的

差距分析时的文件评审,是在CMMI模型建立实施之前进行的,因此只能基于组织当前的过程体系所建立的文件体系来进行评审。一般地,组织在建立和实施CMMI前均已建立了一套软件过程规范。但是根据我们多年的咨询、评估经验,此时组织所拥有的软件过程规范普遍存在两个问题:

◆ 软件过程不够完整系统。参考CMMI模型的要求,一部分过程是缺乏的,比如,缺乏项目级和组织级的数据收集、存储、分析、报告规程,还有一部分过程是不完善的,如配置管理规程中制定了版本控制规范,但缺少对配置项变更控制流程的规定;

◆ 项目实施与公司现有体系文件的规程要求偏离较大。也就是俗称的“两张皮”现象,要么是认为软件开发无章可循,不制定或较少制定过程规范导致无序开发的过程能力低下,要么就是组织制定了很多过程规范,但很少能合适地指导软件开发过程,导致过程规范变为僵化的教条而不被认可和执行或者流于形式。

因此,差距分析时的文件评审的目的,就是结合组织现有环境情况,依据CMMI模型要求,评审组织现有相关管理体系文件(包括记录)针对评估准则的适宜性和充分性。

2、文件评审的活动

文件评审的活动可分为两个步骤:

按照模型/标准验证组织体系文档

按照模型/标准验证项目实施文档

在差距分析阶段的文件评审期间,可考虑按文件的分层体系来开展评审活动:组织级体系文件与项目级实施文件。

 组织级体系文件的评审

组织的体系文件结构主要由以下几个部分组成(如下图1-3):

◆ 质量手册(方针、目标):是组织过程的纲领性文件,简单扼要的描述了各块活动的主要要求与依据的文件;

◆ 过程/规程:是对某一过程涉及的所有活动以及活动之间的依赖关系和次序的综合描述,是对该过程活动的系统描述,规程是对某一个过程的具体活动的详细的描述;

◆ 规范/指南/模板/记录表格/工具:规范是执行过程活动中应遵循的规则标准;指南是对过程活动的指引,可参照实施,是对过程文件的支撑。模板是所有过程、规程中活动的具有指导性意义的文件,可指导实施时输入、输出的信息描述;记录是具体实施时记录信息的载体,同时也是实施有力的证据;工具是过程实施时使用的工具和方法等。

图1-3 组织文件体系结构

组织级体系文件的评审一般安排在差距分析的的启始阶段,在进行组织级体系文件的评审过程中,我们可以比照表5-2所示的组织软件过程体系文件列表,对组织现有体系文件进行评审。结合组织的产品/服务的实际情况,通过对组织级体系文件的评审,可以了解组织过程体系活动/过程的相互作用与描述是否清晰、充分,同时为差距分析的评估人员提供了对组织过程环境的认识,有利于评估组进一步明确后续访谈活动中需要提出什么样有针对性的问题。 

 项目级实施文档的评审

对项目级实施文档的评审会贯穿整个差距分析的过程。在差距分析中一般会要求被评审方找出2-3个有代表性的项目实施记录来进行分析。因为项目级实施文档会比较多,在有限时间内不可能进行全面评审,那么在评审项目级实施文档时就要注意如下策略:

◆ 以过程为主线,关注项目级实施文档与组织级体系文件、访谈所收集到的信息的关联性;

◆ 关注项目级实施文档与CMMI模型实践的对应关系;

◆ 关注组织业务目标,同时综合考虑组织资源能力、管理基础和发展阶段情况,有重点地收集项目实施证据。一般情况下,可重点关注的过程有:配置管理、项目策划、项目监控、项目交付验收、测试管理、需求开发、需求管理等。

文件评审活动完成后,应根据对收集证据的分析形成组织体系文件分析报告。

五、识别组织的强项和弱项

1、评估策划

差距分析小组进行差距分析计划的制定,差距分析的策划主要考虑以下方面内容:

◆ 差距分析的目的

◆ 差距分析的范围

◆ 差距分析的进度、资源

◆ 制定差距分析的检查表

◆ 制定差距分析计划

 差距分析的目的

差距分析的目的基于组织的业务目标,一般来说组织业务目标包含以下要素:

◆ 加强产品和项目开发周期管理,提高生产率;

◆ 提高产品和项目的交付质量; 

◆ 降低产品和项目的开发成本 

因此差距分析的目的可以是:

◆ 评审当前的软件工程实践情况

◆ 按照CMMI模型识别组织软件过程的弱项

◆ 识别软件过程改进急需解决的问题

◆ 促进过程改进措施的实施

◆ 明确所需进行的工作以实现组织目标

差距分析的目的必须和被评审组织反复强调。往往有些接受访谈的被评审者因担心访谈的内容被用做绩效考核的证据,而不愿把实际的工作情况讲清楚,这样就给差距分析的数据收集工作带来很大的不便,因此有经验的评估组都是反复强调差距分析所收集的数据仅用于评价组织过程,同时会对访谈内容进行保密,并就这点和组织高层达成一致意见。

 差距分析的范围

差距分析小组与被评估组织代表进一步确认CMMI实施的范围,并给出书面陈述,在此基础上,通过抽样方式在被评估组织选取2-3个有代表性的项目以及范围内其他相关过程作为本次差距分析的范围。值得注意的是,项目的选取必须要满足组织软件过程全生命周期的覆盖。

 差距分析的进度、资源

差距分析会访谈组织不同职能角色的人员,因此策划时必须明确安排各职能角色的人员接受访谈的时间和进度,并对进度进行严格控制。同时在资源方面,首先要和被评估组织明确EPG、CCB等组织人选。

在差距分析开始之前安排被评估组织进行情况介绍是一个很好的收集证据信息的方式,通过情况介绍便于差距分析评估小组全面了解组织业务特点、过程实施状况和环境,更好地策划后续评估活动的侧重点,同时要求评估小组进行记录,作为差距分析的证据来源。

有些时候被评估组织会演示过程实施中的相关系统和工具,这些系统和工具可能包括:

项目管理系统,配置管理工具,测试缺陷跟踪系统,内部办公OA系统,过程数据采集分析工具等。应对这些系统工具进行了解,和后续CMMI实施的新过程相比,组织目前的系统和工具可看做是遗留系统,怎么样能顺利移植到新的组织过程中,这在评估小组提出的组织持续过程改进方案中是个重要而有挑战的内容。

 制定差距分析的检查表

从所采用的评估方法、方式上来看,差距分析和QA的过程审计有些类似,因此在开展差距分析时可参考QA的一些方法,比如在差距分析策划阶段制作相关过程的检查表。

 制定差距分析计划

综合上述内容,差距分析小组完成CMMI差距分析计划的制定与评审。

2、识别组织的强项和弱项

 组织强项、弱项的定义

强项:反映软件集成成熟度模型中某个模型实践得到显著示范性实施。

弱项:反映软件集成成熟度模型中一个或多个模型实践无效或未执行。

 识别组织的强项和弱项

评估小组分析通过了解组织体系文件、实施文档以及现场访谈的信息证据,进行各个过程域的文档化的强项和弱项陈述,识别组织的强项和弱项,并编制差距分析报告与组织管理层及EPG人员沟通评估发现,最后报告评估结果。

3、建立组织过程定义框架

在完成各个过程域的文档化的强项和弱项陈述,识别组织的强项和弱项,在形成差距分析报告的同时,可编制《CMMI过程改进体系文件完善计划》。

六、制定过程改进计划

1、过程改进计划的制定

通过以上的差距分析过程,参与评估诊断的双方基本明确组织在什么样的位置,同时可以开始着手确定要到哪里去(过程改进的目标和路线图),并且将过程改进作为一个正式的项目进行运作。

评估组和组织EPG根据差距分析识别的结果组织策划过程改进活动,策划内容主要包括:

 确定改进的目标和总体要求;

 根据现有过程的状况,确定改进的方案,包括:

a)确定过程改进的活动/步骤,如:

◆ 过程的定义:根据改进的目标和要求、确定过程改进需要定义或修订的过程文件;

◆ 试点:对于涉及面广、风险较大的改进活动,应选择合适的项目进行试点运行,进行培训、试点评估等;

◆ 正式运行:运行中及时予以培训,在运行一段时间后(如3个月)进行效果评估。

b)确定负责这些活动的小组或个人;

c)确定实施这些活动的进度;

d)识别风险;

e)确定里程碑点等。

策划输出《过程改进计划》,经与组织EPG评审确认、批准后实施。

2、过程改进计划案例

以一个CMMI3的过程改进项目为例,策划并形成以下《过程改进计划案例》:

过程改进计划案例

1.CMMI3项目概述

1.1 项目介绍

项目名称:×××公司SPI项目

项目目的:

项目背景:

1.2 范围

CMMI模型范围:实施CMMI3级的18个KPA。

应用范围:×××公司所有软件工程项目

1.3 从属子计划

(1)《SPI配置管理计划》

(2)《SPI质量保证计划》

(3)《公司级度量管理计划》

2. SPI(过程改进)项目过程定义

2.1 生命周期模型

采用迭代的IDEAL过程改进模型,如下图所示。第1轮——>第2轮——>第3轮——>….每一轮都遵循一个IDEAL模型。

2.2 SPI(过程改进)项目过程描述

遵循项目的管理过程

遵循过程改进过程

2.3 SPI(过程改进)组织结构

2.4 角色与职责

2.5 SPI(过程改进)任务进度

过程改进的具体行动计划,包括:改进的活动/步骤、活动责任人、进度安排、是否里程碑点等,可用MS Project 进行项目进度安排。如下表: 

2.6 SPI(过程改进)项目沟通

3.0 SPI(过程改进)培训计划

4.0 SPI(过程改进)风险管理计划