软件工程中的能力成熟度模型(CMM)

⚡ 智能摘要

能力成熟度模型 (CMM) 是衡量组织软件流程成熟度的基准。它由软件工程研究所开发,定义了五个级别,指导团队从混乱、临时性的工作走向持续、优化的改进。

  • 📊 定义: CMM 是衡量组织软件开发过程成熟度的基准。
  • 🏛️ 产地: 它是在 20 世纪 80 年代末由软件工程研究所为美国空军开发的。
  • 🪜 五个级别: 成熟度阶梯分为初始阶段、管理阶段、定义阶段、定量管理阶段和优化阶段。
  • 实施时间: 全面推广通常需要数月时间才能逐步完成,而不是一蹴而就。
  • 🧩 关键流程领域: 除了第 1 级之外,每个级别都由关键过程领域 (KPA) 定义,这些关键过程领域将相关目标分组。
  • ⚠️ 局限性: CMM 规定了流程应该解决什么问题,而不是如何实施,并且忽略了业务战略。

能力成熟度模型 (CMM)

什么是三坐标测量机?

能力成熟度模型 被用作衡量组织软件流程成熟度的基准。

CMM(计算机质量管理)是软件工程研究所在 20 世纪 80 年代末开发的。它的开发源于美国空军资助的一项研究,旨在评估分包商的工作。trac躯干。 LaterCMM-I 是在 1991 年创建的用于评估软件开发成熟度的 CMM-SW 模型的基础上,将其他多个模型集成到 CMM-I 中。

能力成熟度模型

什么是能力成熟度模型 (CMM) 级别?

该模型定义了五个递进的成熟度级别:

  1. 初始
  2. 可重复/托管
  3. 自定义
  4. 量化管理
  5. 优化

能力成熟度模型 (CMM) 级别

不同级别的 CMM 会发生什么?

下表列出了每个级别的活动和福利。

楼层 游戏及活动 优点
1级初始
  • 第一阶段,流程通常是混乱且临时的。
  • 能力是根据个人的特质来定义的,而不是根据组织的特质来定义的。
  • 进展未得到衡量。
  • 产品开发经常滞后且超出预算。
  • 进度安排、成本、功能和质量目标差异很大。
没有。项目一片混乱。
2 级管理
  • 需求管理
  • 估算项目参数,例如成本、进度和功能
  • 衡量实际进展
  • 制定计划和流程
  • 定义软件项目标准
  • 识别和控制产品、问题报告、变更等。
  • 项目之间的流程可能有所不同
  • 流程变得更容易理解
  • 管理者和团队成员花在解释事情如何做上的时间更少,花在执行上的时间更多。
  • 项目估算更准确、计划更周全、灵活性更强。
  • 质量融入项目
  • 初期成本可能较高,但随着时间的推移会下降
  • 需要更多文书工作和文件。
3 级定义
  • 明确客户要求
  • 解决设计要求,制定实施流程
  • 确保产品符合要求和预期用途
  • 系统地分析决策
  • 纠正和控制潜在问题
  • 流程改进成为标准
  • 解决方案从“编码”发展到“设计”
  • 质量门贯穿整个项目工作,整个团队都参与该过程
  • 风险已得到控制,不会让团队措手不及。
四级量化管理
  • 以统计方式管理项目的流程和子流程
  • 了解流程绩效,定量管理组织的项目
  • 优化整个组织的流程绩效
  • 促进组织内的定量项目管理
5 级优化
  • 及早发现并消除缺陷原因
  • 识别并部署新工具和流程改进以满足需求和业务目标
  • 促进组织创新和部署
  • 推动因果分析和解决

下图以图形方式展示了三坐标测量机在不同高度层发生的情况:

不同级别的 CMM

实施CMM需要多长时间?

CMM 是任何软件开发公司保持产品质量最理想的流程,但它的实施所需时间比预期要长一些。

  • CMM的实施并非一朝一夕就能完成。
  • 这不仅仅是“文书工作”。
  • 典型的实施时间如下:
  • 3-6个月 -> 准备用
  • 6-12个月 -> 为实施
  • 3个月 -> 用于评估准备
  • 12个月 -> 对于每个新级别

三坐标测量机内部结构

CMM 中的每个级别都定义为 关键过程域或KPA除了级别 1 之外,每个 KPA 都定义了一组相关的活动,这些活动共同执行时可以实现一组被认为对提高软件能力至关重要的目标。

针对不同的CMM级别,有一系列关键绩效指标(KPA)。例如,对于CMM模型2,其KPA如下:

  • REQM – 需求管理
  • PP – 项目规划
  • PMC – 项目监控与控制
  • SAM – 供应商协议管理
  • PPQA – 过程和质量保证
  • CM – 配置管理

同样,对于其他CMM模型,也有特定的关键绩效指标(KPA)。为了了解KPA的实施是否有效、持久且可重复,需要根据以下标准进行评估:

  1. 履行承诺
  2. 执行能力
  3. 所执行的活动
  4. 测量与分析
  5. 验证实施情况

CMM 模型的局限性

该模型也存在一些局限性:

  • CMM 确定的是流程应该解决什么问题,而不是应该如何实施。
  • 它并没有解释软件流程改进的所有可能性。
  • 它专注于软件问题,但不考虑战略业务规划、技术采用、产品线建立和人力资源管理。
  • 它并没有规定一个组织应该从事哪种类型的业务。
  • CMM 在目前正处于危机中的项目中将无法发挥作用。

为什么使用坐标测量机?

如今,CMM在软件行业中扮演着“认证标志”的角色。它能以多种方式帮助提高软件质量。

  • 它引导人们走向可重复的标准流程,从而减少学习如何完成工作所需的时间。
  • 实践 CMM 意味着实践一套标准的开发流程,这不仅有助于团队节省时间,还能清晰地展现要做什么以及预期结果。
  • 这些高质量的活动与项目完美融合,而不是被视为一个独立的活动。
  • 它充当项目与团队之间的沟通桥梁。
  • CMM 的努力始终致力于改进工艺流程。

常见问题

CMM是最初的模型,主要关注软件过程成熟度。CMMI(能力成熟度模型集成)是它的继任者,它通过一个集成框架涵盖软件、硬件和服务。如今,大多数组织都采用CMMI,而不是较早的CMM。

CMM广泛应用于IT和软件服务、国防、航空航天、银行和电信等行业。任何外包或交付复杂软件的组织都使用它来衡量质量、降低风险,并向客户展示可靠、可重复的流程。

是的,尽管CMMI已基本取代了最初的CMM,但成熟度评估对于那些需要在外包过程中证明流程规范的组织而言仍然具有重要意义。tracts、政府招标和质量审核,甚至与敏捷和DevOps实践相结合。

人工智能可以分析流程数据,及早发现缺陷,并预测进度或成本风险。通过自动化测量和报告,它支持更高层次的CMM(能力、质量和模型)管理,使组织能够依赖量化管理和持续的数据驱动改进。

是的。人工智能工具可以自动化测试、代码审查和流程监控,使操作可重复、可衡量。这有助于团队从临时性工作转向规范化和优化的工作模式,但仍然需要人工管理来维持这些成果。

总结一下这篇文章: