关于CMMI你不得不知道的常识
大部分软件公司都会去申请获得 CMMI 的认证,也会以通过认证为荣,那么 CMMI 认证的意义和目的是什么?怎样可以拿到 CMMI 认证呢?这篇文章为不懂 CMMI 的同学做个常识的介绍,并且将书本和网络上的文本介绍,转化成了图示和表格等更容易理解和更直观的形式。
CMMI 的定义
CMMI全称是Capability Maturity Model Integration,即能力成熟度模型集成。
CMMI是世界公认的软件产品进入国际市场的通行证,不仅是对产品质量的认证,更是一种软件过程改善的途径。如果一家公司最终通过CMMI的评估认证,标志着该公司在质量管理的能力已经上升到一个新的高度。
而认证的等级越高,意味着公司质量管理能力成熟度越高,做的越好。
CMMI 的来源
1994年由美国国防部(United States Department of Defense)与卡内基-梅隆大学(Carnegie-Mellon University)下的软件工程研究中心(Software Engineering Institute,SEISM)以及美国国防工业协会(National Defense Industrial Association)共同开发和研制的
CMMI主要关注点就是成本效益、明确重点、过程集中和灵活性四个方面。
这些都可以不用关注。只要知道它是一项国际认可的认证标准即可。
CMMI的价值
CMMI为企业带来价值主要体现在以下几个方面:
1)对开发流程进行标准化和规范化,保证项目进度和质量。
2)有利于成本控制,缩减不必要的项目开支。
3)建立完备的知识库,不畏惧人才流失。
4)持续改善流程,提高质量和效率。
5)在一些投标项目竞争中,或者融资过程中,更具有优势。
6)来自美国制定的国际标准,更能得到国外的认可。
传闻有这么一个故事,在一个项目投标过程中,一家公司说,我们 CMMI 认证是5级,另外几家都是3级,所以直接中标了。
软件外包公司之所以特别重视 CMMI 的认证,也是这个原因。
软件公司也会将拿到CMMI 认证视为争取国际融资的一个重要过程。
CMMI 的结构
连续式表述(Continuous)
连续式表述可以提供最大的弹性,一个组织可以选择改善单一流程相关的问题点的绩效,或是可以使用多个领域以密切配合组织的经营目标。连续式表述允许对不同的流程执行不同等级的改善。但组织在选择上仍有一些限制,因为有一些流程领域是彼此相依赖的。
阶段式表达(Staged)
阶段式表达提供系统化结构化的方式,一次一个阶段达到以模型为基础的流程改善。达到每一个阶段可确保有足够的流程基础建设,可作为下一个阶段流程改善的基础。
连续式表达和阶段式表达图示如下:
常见的 CMMI 等级为阶段式表达。
CMMI 的等级
CMMI 等级共五级, MaturityLevers,通常简写为 ML。
ML1初始级
软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。管理是反应式的。
ML2已管理级
建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功经验。
ML3已定义级
已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件,软件产品的生产在整个软件过程是可见的。
ML4量化管理级
分析对软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制。管理有一个作出结论的客观依据,管理能够在定量的范围内预测性能。
ML5优化级
过程的量化反馈和先进的新思想、新技术促使过程持续不断改进。
默认情况下,任何一家软件公司都可以认为是1级。
2级比较容易做到,3级的要求要多很多,一般来说建议2、3级一起来做。3级到4级间跨度和难度较大。但如果4级做得比较好,要做到5级难度不算很大。
参考示意图如下:
而评估的时候,如果2级的标准达到,但3级的要求达不到,就算4级的要求达到了,也只能算2级。
CMMI的各级标准
先理解过程域的概念。过程域(Process Area),简称PA,简单的说就是软件开发过程中的某一个方面。
每个ML等级都被分解为若干个过程域。
如上图,PA共22个,2级有7个PA,3级有11个PA,4级有2个PA,5级有2个PA。
各个过程域对应的名称及释义如下:
每个过程域有明确的目标(Goal)和实践(Practice),必须要达到该等级所有过程域的目标,才可达到该等级。而达成目标的方式,即要完成这个目标对应的所有实践。
目标和实践又包含:
GG(Generic Goals),中文名为通用目标,对应GP(Generic Practices),中文名为通用实践,应用于能力维度,所以适用于所有关键过程域。
SG(Specific Goals),中文名为特定目标,对应SP(Specific Practices),中文名为特定实践,应用于过程维度,只能适用某一特定关键过程域
CMMI 的等级、过程域、目标和实践的关系如下:
中文图示为:
CMMI级别、PA、Goal与Practice的详细清单如下:
CMMI的评估办法
SCAMPI(Standard CMMI Appraisal Method for Process Improvement),是CMMI的评估方法。这种评估方法又划分成了3种严格程度,分别为 ClassA,ClassB,ClassC。
三种方法的大概区别见下表,很多细的区别需要去看评估方法的定义文件。
可见, Class A类评估是正式的标准过程,也是最为严格的,目的是获得评估等级,评估过程需执行所有的评估步骤。
按照SEI SCAMPI评估方法1.2版本的要求,CMMI评估的结论是3年有效期,即3年后需要重新评估。