APP下载

CMMI2.0开发模型的新特点及应用

2022-09-09闫瑞琼

电子技术与软件工程 2022年11期
关键词:成熟度视图目标

闫瑞琼

(麒麟软件有限公司 北京市 100190)

1 引言

能力成熟度模型集成(CMMI)是一项全球公认的标准框架,包含一组全面的指南,可帮助组织建立和改进基于流程的实践,为各种规模和专业的组织用于提高能力和加强现有的业务,促进人员、过程和技术的最佳实践。CMMI 模型集成了在全球范围内经过验证的产品开发、服务、采购和人力资源管理的最佳实践的过程改进模型,能够有效的帮助组织构建核心能力,提升业务绩效。其中的CMMI-DEV 开发模型则是专注于软件、产品和系统的开发最佳实践,多年来在软件行业得到了广泛的应用。

现行的CMMI2.0 版在架构和设计上与之前有彻底的改变,更为灵活、敏捷,面对企业在业务、技术趋势和市场需求等因素的变化时有更强的适应性;而且非常关注企业业务表现的改进及其为企业带来的价值,从帮助企业识别其商业目标和需求出发,识别相关能力域的差距、进行原因分析从而指导改进。全球100 多个国家的超过一万家企业和组织在采用CMMI 的实践中取得了明确的、可持续的业务成果,将组织绩效提高到新的水平。

2 CMMI的起源和发展

CMMI 由早期的能力成熟度模型CMM 发展而来,CMM 诞生于1987年的美国卡内基-梅隆大学软件工程研究所(简称SEI)。1991年,SEI 提出软件能力成熟度模型(Capability Maturity Model For Software),简 称SWCMM,即CMM1.0。1993年,SEI 正式发布了SW-CMM1.1版,成为CMM 使用最为广泛的版本。之后,CMM 的成功促使其他一些学科也相继开发出类似的过程改进模型,如系统工程、需求工程、人力资源、集成产品开发、软件采购等,衍生出适用于系统工程的SE-CMM,适用于软件采购的SACMM 等。2001年12月,SEI 正式发布了能力成熟度集成模型CMMI 1.1 版本,标志着CMMI 的正式使用,之后在2006年发布CMMI 1.2。2010年12月,CMMI 1.3正式发布,1.3版分为三种模型:CMMI-DEV 开发模型、CMMI-SVC 服务模型和CMMI-ACQ 采购模型。

最新的CMMI 2.0 系列发布于2018年,负责其管理和运营的组织也改为CMMI 研究院(CMMI Institute),相较于之前的1.x 模型有较多变化与改进,评估方法上也进行了很多调整。CMMI 研究院自2020年10月1日起,停止受理CMMI V1.3 的评估,由于CMMI 的认证有效期为三年,2.0版运行至今,很多企业都完成了从CMMI1.3 到2.0 的转换,并已经通过了一次基准评估,在实施CMMI2.0 体系的过程中更深入理解到模型的新特点和新价值。

3 CMMI2.0开发模型的新特点及应用

CMMI 开发模型专注于开发产品、组件和服务的公司的性能改进要求和关键功能。在构建复杂的产品和服务时,常见的业务问题有:交付延迟、质量不高、资源紧张、维护频繁、人员缺乏经验等。近年来,管理和控制产品开发生命周期变得更加困难。V2.0 版新模型着眼于最佳实践,为在组织或业务中应用这套最佳实践提供指导,以确保及时实施高质量的解决方案,帮助企业提高性能和降低风险,更好满足客户的需求。

模型也是一个指导改进的路线图,企业可以使用模型了解当前的能力等级和性能水平,如果无法满足业务的需求和目标,CMMI 模型可以指导改进从而提升和优化性能。很多组织因此提高了开发满足客户和终端用户需求的优质产品和服务的能力,缩短了上市时间,减少了缺陷,提高了产品质量,降低了成本,改善了规划和预算。

3.1 强调目标对过程改进的驱动作用

以往的CMMI 版本只是在5 级中强调了围绕组织的商业目标和业务目标进行过程改进,但是在2.0 中,无论哪个等级都强调了围绕商业目标和业务目标进行改进。2.0 在每个实践域和每条实践的定义中都增加了一条“价值”描述,强调围绕商业目标和业务目标进行改进,这一基本思想也是过程改进的本质。

CMMI 模型多用于软件行业及其产品开发方面的过程管理和能力提升,使组织关注、实现并提升产品开发过程中有关性能、质量、成本、进度和功能等方面的目标。实施CMMI 可以帮助企业了解当前的能力等级和性能水平,当现状无法满足业务需求和目标时,从商业利益和性能出发推动改进,使整个组织的运作更高效和有效。

3.2 实践域体现过程能力创造价值

2.0版模型将过程域(process area)修改为实践域(practice area),简称仍为PA,这不仅仅是术语或名称上的修改,实践域的内容及其关系也进行了调整。原过程域中,对每个过程域的定义和描述首先是其目的陈述,说明该过程域期望的输出结果。在实践域中,增加了价值(Value)陈述,说明企业通过实施该实践域可以实现的业务价值和收益,强调模型的实施要关注提升企业的业务能力,为组织带来商业利益。例如:配置管理(CM)实践域,除了说明其目的是“使用配置识别、版本控制、变更控制和审计来管理工作产品的完整性”以外,明确指出该实践域所能为企业带来的价值是“减少工作损失,并增加向客户提供正确版本解决方案的能力”。

实践域中的主要组件及其构成也有所改变,更便于在实际工作中灵活运用和实施。原过程域主要是由目标和实践构成,每个过程域通常包含多个特定目标(Specific Goal,简称SG),一个特定目标下包含多个特定实践(Specific Practice,简称SP)。此外,通用目标和通用实践是一组相对固定的目标和实践,是一个说明过程制度化的模型组件,类似于一个可复用的通用插件,它适用于所有的过程域。(参见图1)

图1:CMMI 1.3 过程域主要构成组件

由过程域转化而来的实践域,则是通过实践组和实践的方式构成。实践组是实践域中实践的组织结构,以帮助理解和采用,并为性能改进提供一条途径(参见图2)。目前2.0版定义的实践组是按照等级的演进来划分的,例如:策划(PLAN)实践域中有4 个实践组,即从成熟度等级1 至等级4,每个级别是一个实践组。各实践组中包含有若干个实践,以策划3 级实践组为例,其中包括了4 条实践,实践编号分别用3.1~3.4 予以标识。

图2:CMMI 2.0 实践域主要构成组件

3.3 GOV和II为过程制度化提供坚强保障

在过程改进中制度化是很重要的概念,通用目标和通用实践的要求使过程以固定的方式得到贯彻和执行,保证过程的承诺和一致性。当需求和目标改变时,过程也相应作出改变和调整,以确保其依然有效。在2.0 版之前,通用目标和通用实践作为CMMI 模型中的一个通用组件,这一概念和形式自提出以来延用多年,为大家所熟知。共有三个通用目标(Generic Goal,简称GG):GG1 达成特定目标、GG2制度化为已管理的过程和GG3 制度化为已定义的过程。

新模型取消了通用目标和通用实践,将相关内容整合到GOV 和II 两个实践域中。GOV(治理,Governance 的简称)描述了高级管理者在过程改进、过程实施中的职责与活动。II(实施基础条件,Implementation Infrastructure 的简称)描述了过程改进、过程实施所需要的基础设施或条件。这两个实践域都是为了确保过程的制度化能够在组织中得以实现,使过程规范在组织中固化为习惯。GOV 和II 的实践可以运用于解释每个过程上,对其他每个实践域都起到管理和支持的作用。

实施GOV 实践域可以帮助企业尽可能地降低过程实施的成本,提高实现目标的可能性,确保实施的过程支持并促成业务成功。高级管理者的参与对组织过程实施的成功尤为重要,该实践域关注对过程管理的治理。过程管理活动通常包括五个方面:定义过程、执行过程、度量过程、控制过程和改进过程。过程管理是一把手工程,高级管理者要定战略、定方向、定方法,基于组织的需求和目标制定方针政策,提供合适的资源以确保组织目标的达成。

II 实践域确保了组织的重要过程能够被坚持并形成习惯,并加以应用和改进,维持有效和高效地实现目标的能力。基础条件指的是实施、执行和维持组织的过程集所需的一切,建立必要的基础条件方可保证过程得到建立、遵守、维护和持续改进。基础条件可以包括支持过程管理的资源、资金、培训、质量体系、经验教训等,它们帮助和支持组织建立起进行持续过程改进的能力。

表2:CMMI 2.0 能力域类别与能力域和实践域的对应关系

3.4 以能力域及其类别为基础的新架构

实践域(在旧版本中称过程域)是CMMI 模型中的基础组件,用来描述和定义某一方面或领域的实施目的、价值和要求等具体信息。同时,各个实践域(过程域)也并非孤立存在,它们彼此相互关联、互为支撑,形成一个有机的整体。为了方便理解和使用,模型通过一定的方式对其进行分类或归属,可以清晰地体现其间的作用和联系。1.3 版开发模型将全部22 个过程域分为四类:工程类、项目管理类、支持类和过程管理类。此外,成熟度级别的不同提供了另一个角度的分类因素,每个过程域分别属于某一个成熟度的等级。

工程类过程域包含了工程学科共有的开发与维护活动,涉及产品的开发过程,如软件工程等,用于以产品为导向的过程改进策略。从收集客户的需求开始,通过研究、提出并执行相应的技术解决方案,将完成的组件集成为产品并对其进行验证、确认其符合用户场景的需要。

支持类过程域包括了支持产品开发与维护的活动,也适用于面向项目的过程和组织的过程,对所有过程域都有基本支持的功能。以“过程与产品质量保证”过程域为例,它可以与所有其他过程域一起来使用,对过程域中所描述的过程和工作产品进行客观评价,确保发现的问题得到解决,支持高质量产品的交付。

项目管理类过程域包含了与项目的策划、监督和控制等相关的项目管理活动。关注于产品开发项目的管理过程,项目组应建立并维护项目计划及其承诺,对照计划监督项目的实际进展,管理项目的风险和问题,采取纠正措施。

过程管理类过程域是成熟度3 级以上的组织应具备的实施能力,这些活动与过程的定义、计划、部署、实施、监督、控制、评估、度量及改进相关。这一类别的过程域为组织提供了一种能力,以将最佳实践、组织级过程资产与经验教训文档化并在整个组织范围内分享。通过4、5 级的实施,更使这种能力得到提升,帮助企业达成质量与过程性能的量化目标并持续改进和提高。(参见表1)

表1:CMMI 1.3 过程域分类及成熟度等级

CMMI 2.0 版对各个实践域的分类与应用方式做出了较大的创新和调整,引入了能力域和视图的新概念,不仅提供了能力域类型、成熟度等级等已定义的划分模式,还鼓励实施的组织灵活运用视图方法,结合自身实际情况形成自己的过程应用和改进途径。

能力域是一组相关的实践域,可以提高组织或项目的技能和活动的性能。通俗地讲,能力域就是针对组织要解决的特定问题的一组相关实践域。能力域的名字就是针对要解决问题的一种概括描述。视图是由模型用户选择的或CMMI研究院预定义的,对用户很重要的一组实践域及实践组的集合。任意的实践域、能力域或实践组的组合都可以形成一个视图。视图是模型的一个展示窗口,它允许组织或项目专注于对其重要的内容。组织可以选择预定义视图,也可以为满足业务需求构建自己的自定义视图。能力域也是一种视图,是CMMI 模型的一个子集,包括构成特定能力域的一组预定义实践域。

能力域类别是相关能力域的逻辑组或视图,用于解决企业在生产或交付产品时遇到的常见问题。CMMI-DEV 2.0 定义了四个能力域类别:行动、管理、实现和提高,每个类别中包含了与之相关的若干能力域。能力域类别与1.3 版中的过程域类型有一定的对应关系,虽不完全相同,但也体现了在逻辑思路上的一脉相承。二者间可以形成一个近似的映射关系,即:[工程类]与[行动],[支持类]与[实现],[项目管理类]与[管理],[过程管理类]与[提高]。

3.5 模型的等级策略覆盖所有实践域

多年以来CMMI 的成熟度等级是采用5 级划分,级别的定义与模型中的过程域关联,某一个过程域属于特定的成熟度等级。以1.3 版本为例,用于开发的CMMI-DEV 模型共有22 个过程域,5 个等级的划分如表-1。因为模型中的1级为初始级,过程域对此不做具体实践的要求,所以1 级中实际上不包括任何过程域。应用模型时,根据过程域的实施情况和效果判断一个组织达到的成熟度等级,除可裁剪的情况外,如果在组织中实施了3 级及以下的所有过程域并满足其实践和目标的要求,则可认为该组织达到了成熟度3 级,以此类推。

这种定义等级的策略和方式,将过程域和成熟度等级绑定,某一个过程域只属于某个等级,容易使模型的用户形成割裂的感觉,忽视跨等级过程域之间存在的各种关系,给实施的企业或组织造成一定程度上的误解。在2 级情况下,只有支持和项目管理类型的过程域要求,而所有工程类的过程域是在3 级中才提出的。但对于实际项目而言,支持与管理活动是不能脱离工程活动而单独存在的,工程过程是基础和必须的工作任务,是形成产品的首要活动,也是支持类和项目管理类过程所服务的对象。这与实际的软件项目过程活动存在差异,不便于也不利于具体的执行和落实。

由此而建立的软件开发过程体系,可能在其整体的系统性和关联性上存在欠缺。当一个组织希望按照成熟度等级逐步提升,如从2 级向3 级进步或从3 级向4 级提高,会发现原有的体系可能没有事先考虑到更高等级过程域的需要,没有做好一些基础性的准备工作。此时在做能力等级提高的时候,不仅需要增加高等级过程域的要求,还需对原体系做出更多的调整和修改,增加了改进和提升的难度和成本,项目实施也难以实现更快速、更顺畅的过渡和转换。

CMMI 2.0 中不再对实践域(相当于过程域)划分等级,而是对实践划分等级,这个改变更合理和符合实际。CMMIDEV 2.0 模型包括20 个实践域,每个实践域都包含了属于不同等级的实践。其中,含有5 个等级实践的有两个实践域:CAR 和MPM;含有1~4 级实践的有四个实践域:GOV、PLAN、PCM 和SAM;除CM 实践域仅含有2 个等级的实践外,其余13 个实践域均包含1~3 级的实践。此时,一个实施和达到3 级成熟度的组织需要满足所有实践域中1、2、3 级的实践,实现了对所有相关实践域的覆盖。

旧版本中仅在4、5 级才提出的有关组织性能的管理与改进、原因分析和量化项目管理方面的实践内容,不再是高成熟度等级的特权。在3 级的组织中,同样可以参考这些实践域中1~3 级的实践描述,开展合适的活动,使企业具备更全面的过程管理能力,拓展了提升的空间。新的等级划分方法打破了实践域(过程域)和成熟度等级之间的界限,所有实践域都包含了低等级的实践要求,详情可参考表3。每个演进的等级都基于以前的等级,增加新的功能或熟练性,从而提高能力。

表3:CMMI 2.0 中成熟度等级与实践域的关系

模型的这一变化,很大程度上改善了以往存在的不足,使组织从一开始就全面关注与软件产品开发和项目管理相关的各个方面的过程需要,为获得连续性的、可持续的改进与提升打下稳定且灵活的基础。即便是对于仅希望实施2 级或3 级低成熟度等级的组织,也可以比较方便地采用其中1~3级别的实践,从行动、管理、实现和提高四个能力域类别的角度统筹考虑企业的需要,参考CMMI 模型建立完整且适当的管理体系,全方位保障企业目标的达成。

3.6 增强对不同环境和特定背景的适应性

作为一个过程改进模型,CMMI 并不会指出任何特定的方法、工作产品或具体措施,不同学科、业务活动、结构或规模的组织都可以在自己的环境中应用模型实践。实践陈述中的说明性资料包含了特定背景信息,可能提供多个环境的实例,为特定的行业、方法或学科建立共同基础。

该模型架构可以与其他方法、标准或模型一起使用并支持和改进它们。例如,针对近年来在软件行业中广泛使用的敏捷开发方法,CMMI 在多个实践域中特别增加了基于Scrum 的敏捷指南,便于采用敏捷开发过程的组织引入CMMI 的思想和架构,将二者有机结合,共同推进软件开发过程的优化增效。

以同行评审实践域PR 为例,在使用Scrum 的敏捷项目中,同行评审可以在其中的很多过程活动中执行。一个典型的敏捷框架,包括发布策划、待办事项列表修整、冲刺策划、冲刺执行、冲刺评审(演示)和回顾,除回顾以外,其他阶段均可根据实际需要对所选定的影响质量的工作产品系统地执行同行评审。评审可以通过各种灵活多样的形式进行,例如:对待办事项列表进行调整,在冲刺审查中向产品所有者展示已完成的用户故事,在冲刺执行中使用结对、团体或群体编程,对设计、测试计划、测试用例和代码工作产品进行审查等。

4 能力成熟度模型促进企业持续成功

CMMI(CMM)模型在国内的推广及应用已超过二十年,越来越多的企业、组织及其高级管理人员都意识到,加强自身的关键能力对持续成功至关重要。如果组织没有建立标准过程、过程资产和辅助工具,尚未形成具有一定过程性能和能力绩效的管理体系,则可能面临很多影响业务实现的问题。如:在计划监控方面存在困难,不能及时根据实际或可能预期的进展做出调整;对重要事项缺乏度量,无法获得可靠的数据为管理提供决策依据。

CMMI 能够帮助企业建立起一个层次化的、有针对性的管理体系,有力促进产品及时交付、控制成本和进度、提高产品质量,使企业的运营处于一个有序的、有预防能力的环境,改善企业的文化氛围,提高员工的满意度,提高产品的质量和客户的满意度。改进后的组织能够对问题和风险的反应更迅速、减少和避免意外情况的发生、更好满足客户的需求和期望,客户投诉减少、返工减少、员工流失率降低。

据CMMI 研究院统计,用于软件项目上的CMMI 投资,其回报率在5:1 到8:1 之间。企业建立起持续改进的质量观念和知识积累的机制,工程成本降低,节省了运营成本,性能和过程改进投资带来积极回报。

猜你喜欢

成熟度视图目标
产品制造成熟度在型号批生产风险管理中的应用
整机产品成熟度模型研究与建立
不同成熟度野生水茄果实的种子萌发差异研究
刚好够吃6天的香蕉
视图
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
新目标七年级(下)Unit 3练习(一)
新目标七年级(下)Unit 4练习(一)
(新目标)七年级下Unit 1练习(二)