CMMI(能力成熟度模型集成)是 ToB 软件企业最常见的资质认证之一,本篇是系列的最后一篇。在展开 CMMI 之前,先从”软件过程”和它的前身 CMM 说起。
什么是软件过程
在开发产品或构建系统时,遵循一系列可预测的步骤(即路线图)是非常重要的,它有助于及时交付高质量的产品。软件开发中所遵循的路线图称为”软件过程”。过程是活动的集合,活动是任务的集合。
软件过程有 3 层含义:
- 个体含义:指软件产品或系统在生存周期中的某一类活动的集合,如软件开发过程、软件管理过程等;
- 整体含义:指软件产品或系统在所有上述含义下的软件过程的总体;
- 工程含义:指解决软件过程的工程,应用软件的原则、方法来构造软件过程模型,并结合软件产品的具体要求进行实例化,以及在用户环境下的运作,以此进一步提高软件的生产率,降低成本。
能力成熟度模型(CMM)
自从软件工程概念提出以后,出现了许多开发、维护软件的模型、方法、工具和环境,它们对提高软件的开发、维护效率和质量起到了很大的作用。尽管如此,人们开发和维护软件的能力仍然跟不上软件所涉及问题复杂程度的增长,软件组织面临的主要问题仍然是无法开发出符合预算和进度要求的高可靠性和高可用性的软件。人们开始意识到问题的实质是缺乏管理软件过程的能力。
CMM 的由来
在美国国防部的支持下,1987 年,卡内基·梅隆大学软件工程研究所率先推出了软件工程评估项目的研究成果——软件过程能力成熟度模型(Capability Maturity Model of Software,即 CMM),其研究目的是提供一种评价软件承接方能力的方法,同时它可帮助软件组织改进其软件过程。
CMM 是对软件组织进化阶段的描述,随着软件组织定义、实施、测量、控制和改进其软件过程,软件组织的能力经过这些阶段逐步提高。该能力成熟度模型使软件组织能够较容易地确定其当前过程的成熟度并识别其软件过程执行中的薄弱环节,确定对软件质量和过程改进最为关键的几个问题,从而形成对其过程的改进策略。软件组织只要关注并认真实施一组有限的关键实践活动,就能稳步地改善其全组织的软件过程,使全组织的软件过程能力持续增长。
CMM 的 5 个级别
CMM 将软件过程改进分为以下 5 个成熟级别:
| 级别 | 名称 | 特点 |
|---|---|---|
| 1 | 初始级(Initial) | 软件过程的特点是杂乱无章,有时甚至很混乱,几乎没有明确定义的步骤,项目的成功完全依赖个人的努力和英雄式的核心人物的作用。常见于小型作坊 |
| 2 | 可重复级(Repeatable) | 建立了基本的项目管理过程和实践来跟踪项目费用、进度和功能特性,有必要的过程准则来重复以前在同类项目中的成功 |
| 3 | 已定义级(Defined) | 管理和工程两方面的软件过程已经文档化、标准化,并综合成整个软件开发组织的标准软件过程。所有项目都采用根据实际情况修改后得到的标准软件过程来开发和维护软件 |
| 4 | 已管理级(Managed) | 制定了软件过程和产品质量的详细度量标准。软件过程和产品质量都被开发组织的成员所理解和控制 |
| 5 | 优化级(Optimized) | 加强了定量分析,通过来自过程质量反馈和来自新观念、新技术的反馈使过程能不断持续地改进 |
CMM 模型提供了一个框架,将软件过程改进的进化步骤组织成 5 个成熟度等级,为过程不断改进奠定了循序渐进的基础。这 5 个成熟度等级定义了一个有序的尺度,用来测量一个组织的软件过程成熟度和评价其软件过程能力。成熟度等级是已得到确切定义的,也是在向成熟软件组织前进途中的平台。每一个成熟度等级为继续改进过程提供一个基础:每一个等级包含一组过程目标,通过实施相应的一组关键过程域达到这一组过程目标,当目标满足时能使软件过程的一个重要成分稳定。每达到成熟度框架的一个等级,就建立起软件过程的一个相应成分,使得组织过程能力有一定程度的增长。
能力成熟度模型集成(CMMI)
CMM 的成功导致了适用不同学科领域的模型的衍生,如系统工程的能力成熟度模型、适用于集成化产品开发的能力成熟度模型等。而一个工程项目又往往涉及多个交叉的学科,因此有必要将各种过程改进的工作集成起来。1998 年,由美国产业界、政府和卡内基·梅隆大学软件工程研究所共同主持 CMMI 项目。CMMI 是若干过程模型的综合和改进,是支持多个工程学科和领域的、系统的、一致的过程改进框架,能适应现代工程的特点和需要,能提高过程的质量和工作效率。
CMMI 提供两种表示方法:阶段式模型和连续式模型。
阶段式模型
阶段式模型的结构类似于 CMM,它关注组织的成熟度。CMMI-SE/SW/IPPD 1.1 版本中有 5 个成熟度等级:
| 等级 | 名称 | 含义 |
|---|---|---|
| 1 | 初始的 | 过程不可预测且缺乏控制 |
| 2 | 已管理的 | 过程为项目服务 |
| 3 | 已定义的 | 过程为组织服务 |
| 4 | 定量管理的 | 过程已度量和控制 |
| 5 | 优化的 | 集中于过程改进 |
连续式模型
连续式模型关注每个过程域的能力,一个组织对不同的过程域可以达到不同的过程域能力等级(Capability Level,CL)。CMMI 中包括 6 个过程域等级,等级号为 0-5。能力等级包括共性目标及相关的共性实践,这些实践在过程域内被添加到特定目标和实践中。当组织满足过程域的特定目标和共性目标时,就说该组织达到了那个过程域的能力等级。
能力等级可以独立地应用于任何单独的过程域,任何一个能力等级都必须满足比它等级低的能力等级的所有准则。对各能力等级的含义简述如下:
| 能力等级 | 名称 | 含义 |
|---|---|---|
| CL0 | 未完成的 | 过程域未执行或未得到 CL0 中定义的所有目标 |
| CL1 | 已执行的 | 其共性目标是过程将可标识的输入工作产品转换成可标识的输出工作产品,以实现支持过程域的特定目标 |
| CL2 | 已管理的 | 其共性目标集中于已管理的过程的制度化。根据组织级政策规定过程的运作将使用哪个过程,项目遵循已文档化的计划和过程描述,所有正在工作的人都有权使用足够的资源,所有工作任务和工作产品都被监控、控制和评审 |
| CL3 | 已定义级的 | 其共性目标集中于已定义的过程的制度化。过程是按照组织的裁剪指南从组织的标准过程集中裁剪得到的,还必须收集过程资产和过程的度量,并用于将来对过程的改造 |
| CL4 | 定量管理的 | 其共性目标集中于可定量管理的过程的制度化。使用测量和质量保证来控制和改进过程域,建立和使用关于质量和过程执行的定量目标作为管理准则 |
| CL5 | 优化的 | 使用量化(统计学)手段改变和优化过程域,以满足客户要求的改变和持续改进计划中的过程域的功效 |
申请 CMMI 认证的流程
在申请 CMMI 认证时,有的企业从 CMMI2 开始、有的企业从 CMMI3 开始、有的 CMMI3 通过后跳过 CMMI4 而直接申请 CMMI5、有的就从 CMMI2、CMMI3、CMMI4、CMMI5 逐步申请认证。不管从哪级开始认证,下面这些要点是必须要掌握住的。
CMMI 实施需要准备什么
人力资源。实施中会涉及到 EPG 过程改进小组、QA、试点项目团队等:
- 专职人员:1-2 名。即在 CMMI 实施推广期内,基本上 100% 的时间投入;
- 质量人员:1-更多名。组建质量管理部门,实施体系执行的监控,投入时间视项目多少;
- 过程改进小组:需要 3-11 名兼职成员,在实施周期中投入 30% 以上的工作量。
企业最好是提前规划和准备哪些人员参加 CMMI 认证实施,提前安排分配好工作。
项目资源。项目是帮助 CMMI 体系实施的证据来源,通常分试点项目和参评项目:
- 试点项目:2 或 4 个以上项目。目的是执行 CMMI 模型要求下的过程体系,验证其有效性;
- 参评项目:4 个以上项目。满足 CMMI 过程体系执行的要求,验证其成熟与制度化;
- 项目周期:没有要求,可长可短,但对整个实施周期有影响;
- 项目规模:没有要求,大小选择,对整个实施难易有影响。
如企业项目非常少,但是一个已经运营的公司,有人有正在实施的项目也可。
体系和平台:
- 管理体系:没有要求。如已建立工作的管理制度或实施了 ISO9001 等标准,有一定基础;
- 平台工具:没有要求。如已构建了项目管理、变更管理、配置管理等工具,有较好支持。
企业规模:理论上 CMMI 认证的导入实施没有要求组织内人数,但经验数据是 18 人以上企业。
申请 CMMI 认证流程
原文配有流程图,PDF 提取时丢失,据文字重绘如下:
flowchart TD
A["1 选择 CMMI 认证级别"] --> B["2 选择主任评估师"]
B --> C["3 信息收集"]
C --> D["4 评估计划"]
D --> E["5 在线注册"]
E --> F["6 准备度检查"]
F --> G["7 正式评估<br/>一周现场审查"]
G --> H["8 官方审计<br/>最多 30 个工作日"]
H --> I["9 官网发布"]
- 选择 CMMI 认证级别:软件企业申请认证 CMMI 不同的级别标准要求,要审时度势自身情况。
- 选择主任评估师:主任评估师是认证评估的发起者,也是评估小组的领导者,这个角色应该拥有足够的经验、知识、技术来负责和领导评估活动。
- 信息收集:在拟订评估计划之前,需要先收集企业相关的具体信息,包括商业目标、评估目标、项目信息、人员信息等等。
- 评估计划:主任评估师根据收集到的信息集合 SCAMPI A 的要求,拟订评估初始计划,并与企业的评估发起人沟通评估计划,形成正式的评估计划。
- 在线注册:首先由主任评估师在线注册本次评估,然后企业的评估发起人和评估小组成员都需要在线注册。
- 准备度检查:主任评估师通过远程或者现场的方式,检查企业对于现场审核的准备情况,包括相关文件的收集、计划的执行情况、后勤协调等各个方面,确保正式的现场评估能够顺利进行。
- 正式评估:主任评估师与其他评估小组成员必须到被审企业的办公场地进行为期一周的现场审查。整个评估小组在这一周之内针对 CMMI 数百条要求逐一寻找物证(日常工作文件记录)和人证(访谈记录)来证明企业满足或不满足 CMMI 的要求,并在评估最后一天向全员公布审查结果。
- 官方审计:主任评估师整理打包好所有评估的工作产出,通过评估系统提交给官方审查。官方的质量审查小组对全球每一场评估进行审查,判断评估是否满足 SCAMPI A 评估流程规范的要求。审查周期最多 30 个工作日,最快的都在一周左右的时间内完成审查。
- 官网发布:官方审查通过之后,会以邮件形式通知到主任评估师和企业的评估发起人,并在全球过级企业名单网址上公布企业过级信息。
以上就是整个 CMMI 认证流程中需要的人员以及人员需要配合完成的工作,希望对企业负责人在 CMMI 认证中提供一些帮助。
系列导航
- 上一篇:信息安全管理认证 - ISO27001
- 回到系列开头:开源协议知识体系详解