看到海康威视的招聘需求里面,有一项是 了解CMM标准,但无奈资料太少所以自己翻译了下维基百科。如果有什么翻译不到位的欢迎指出
CMM(Capability Mathrity Model)
能力成熟度模型,是一个开发模型由美国国防部收集组织的数据研究后创建的一个模型。maturity
涉及到软件的流程以及优化程度,从开始实践到正式定义的步骤,再到管理结果的指标,再到流程的主动优化。
这个模型的目标是为了优化软件开发流程,但也可以应用于其他流程。
简介
能力成熟度模型最初是为了客观评估政府承包商开发软件项目的能力而创建的一个模型。这个模型基于 IEEE 中首次描述的流程成熟度框架。
因此这个模型来自于软件开发,但也可以作为一个模型来辅助业务流程,也可以拓展到全世界的政府办公,商业和工业中。
历史
软件开发流程早期
在 20 世纪 80 年代,计算机的使用更加广泛,灵活且成本更低廉。各个组织都开始使用计算机信息系统,并且对软件开发的需求显著地成长。许多软件开发的流程还在起步阶段,很少有标准或者"最佳实践"的定义。
结果是这种成长造成了很多痛苦:项目失败是普遍的。在计科仍处于早期阶段,项目的规模和复杂性超出了市场在计划预算内提供足够产品的能力。一些人开始发表文章或出版书籍试图使软件开发流程专业化。
先行者
27 岁的 Watts Humphrey 在 IBM 开发了流程成熟度概念
在软件工程研究所(Software Engineering Institute)的发展
1986 年,Humphrey 离开了 IBM 加入了位于宾夕法尼亚州匹兹堡的美国国防部软件工程研究所。应美国空军的需求,他开始正式确定流程成熟度框架,用来帮助美国国防部评估软件承包商的能力,作为签署合同的一部分。
美国空军的研究的这一个模型为军队提供了一个客观评估软件承包商的能力成熟度。Humphrey 将这个模型建立在 Philip B. Crosby 其 Quality is Free 一书中 Quality Management Maturity Grid(质量管理成熟度网络) ,Humphrey 不同的是,组织基于以特定的顺序解决流程问题而分阶段优化他们的流程。而不是独立地衡量每个单独开发过程的成熟度。因此,CMM 被图通的组织用来理解和改进商业流程方法的普遍而强大的工具。
能力成熟度模型作为一套确定的标准和实践在五个成熟度级别中的每一个完整表示于 1991年。
CMMI(Capability Maturity Model Integration)
CMM 模型应用于软件开发曾被质疑。在培训,评估和改进活动中,应用没在组织内部集成的多个模型会造成很高的成本。
CMMI 项目用来解决软件开发流程中使用多个模型所造成的问题。因此 CMMI 取代了 CMM,CMM 作为一种理论在公共领域中被使用。
适用于其他流程
CMM 早起作为一个工具来评估政府在软件项目中承包商表现的能力水平。因此来源于软件开发。但是这个模型可以、已被用于、且继续应用于更广泛的成熟度流程中。
模型要点
成熟度模型
一个成熟度模型可以看到用一个结构化的层次,来描述组织的行为、实践和流程能够可靠且持续的输出结果的程度。
模型可以用作比较的基准,并有助于理解。例如for comparative assessment of different organizations where there is something in common that can be used as a basis for comparison. In the case of the CMM, for example, the basis for comparison would be the organizations' software development processes.
真不好理解
结构
模型包含五个方面
-
成熟度等级:连续 5 层,最上层(第 5 层)是一个理想化的状态,可以通过流程优化和持续改进的组合来进行系统地管理。
-
关键流程区域:一个关键的流程区域定义了一系列相关共同作用的活动,来达成一系列重要的目标
-
目标:目标是关键流程区域的总结,用有效和持久的方式实施。目标实现的程度是组织能力在该成熟度上的指标。目标表示了每个关键过程域的范围,边界和意图。
-
共同特征:共同特征包括实施和制度化关键过程域的实践。公有五中类型:执行承诺,执行能力,执行的活动,测量和分析以及验证措施。
-
关键实践:关键实践描述了最有效地促进该区域实施和制度化的基础设施和实践要素。
等级:
依照 SEI 的可预测性以及影响能力来定义了持续性的模型来控制企业中软件流程。使企业往这5个方向上改进,虽然不严谨,但有相当一部分经验来支持这种概念。
-
Initial 新的从未做过。
-
Repeatable 这个过程至少被记录过,或许可以试图重复相同的步骤来尝试。
-
Defined 这个流程被标准的商业流程定义或者确认。
-
Capable 根据商业的指标对流程进行定量的管理。
-
Efficient 流程管理包括深思熟虑的流程优化和改进
对于每一个成熟度等级,关键流程域都有与之相对应,且每个域都有五个元素:goals,commitment,ability,measurement 以及 verification。这些并不是 CMM 独有的,这是企业在成熟过程中必须经历的阶段。
Level 1 - Initial
在这个级别的过程的特征是它们(通常)未记录并且处于动态变化的状态,倾向于由用户或事件以临时,不受控制和被动的方式驱动。 这为进程提供了混乱或不稳定的环境。 (例子 - 外科医生少量地进行新手术 - 负面结果的水平未知)。
Level 2 - Repeatable
这种成熟程度的特征是某些过程是可重复的,可能具有一致的结果。 流程规则不太可能严格,但如果存在,可能有助于确保在压力期间维持现有流程。
Level 3 - Defined
这一级别的流程的特征是建立了一组已定义和记录的标准流程,并且随着时间的推移会有一定程度的改进。 这些标准流程已到位。 这些过程可能没有被系统地或重复地使用 - 足以使用户变得胜任或者在一系列情况下被验证的过程。 这可以被认为是一个发展阶段 - 在更广泛的条件和用户能力发展中使用,该过程可以发展到下一个成熟水平。
Level 4 - Managed(Capable)
该级别的流程的特征是,使用流程度量,可以在一系列操作条件中证明流程目标的有效实现。 已经测试了该过程在多种环境中的适用性,并且该过程得到了改进和调整。 流程用户在多种多样的条件下体验过程,并且能够展示能力。 流程成熟度使得能够适应特定项目,而不会出现可测量的质量损失或偏离规范。 流程能力是从这个级别建立的。 (例子 - 外科医生执行手术数百次,负面结果水平接近零)。
Level 5 - Optimizing(Efficient)
这一级别的流程的一个特点是,重点是通过增量和创新的技术变革/改进不断改进流程绩效。
在成熟度5级,流程涉及解决流程变化的统计常见原因和改变流程(例如,改变流程绩效的平均值)以改善流程绩效。 这将在保持实现既定的定量过程改进目标的可能性的同时完成。 世界上只有少数几家公司达到了这一水平。
推荐这篇文章CMM/CMMI的5个等级
批判
该模型最初旨在评估政府承包商执行软件项目的能力。 它已被用于并且可能适用于该目的,但批评者指出根据CMM的流程成熟度对于成功的软件开发不一定是强制性的。
以上来自 Wikipedia
引进 CMM 的重要意义
对软件公司而言
-
提高软件开发的管理能力,CMM 可以提供软件公司的自我评估方法和自我提高手段
-
提高软件生产率
-
提高软件质量
-
提高软件公司的竞争力
对软件项目发包单位和软件用户
-
提供软件开发商的开发管理水平和评估手段
-
有助于软件开发项目风险识别
参考文档:
网友评论