能力成熟度模型 (CMM):提升企业效能的基石
能力成熟度模型(CMM)为企业拓展多元化功能提供了一种高效且简化的途径。无论您是运营公司、管控系统,还是领导团队,对能力水平的理解都至关重要。
在明确了业务的各个职能范围后,对这些职能的绩效进行评估是必不可少的。通过评估,企业可以设定明确的标准和目标。
为了衡量和控制每个职能部门以及个人的绩效和工作进度,企业领导者需要可靠的工具和方法。通过采用合适的系统,公司可以构建能够应对复杂性挑战并实现精确扩展的机制。
CMM 正是在这种背景下发挥作用。本文将探讨 CMM 和 CMMI 的含义、级别以及两者之间的区别。
什么是能力成熟度模型?
能力成熟度模型 (CMM) 是一种系统化的方法,用于构建和完善组织的应用程序开发流程。它旨在提高软件开发过程的效率和一致性,使开发团队能够更好地改进软件开发过程。
无论您在开发团队中扮演什么角色,了解 CMM 都有助于您提升工作表现。因此,CMM 可以被视为一种评估、开发和优化软件开发流程的有效工具。
CMM 概述了软件开发的关键程序,并涵盖工程、管理和规划等多个方面。其核心理念是,通过逐步的改进,而非巨大的突破,可以实现持续的流程优化。
此外,CMM 还提供了一个框架,用于管理不同成熟度级别的各项指标,从而为软件开发流程的持续改进提供坚实的基础。这种方法的核心目标是提高产品和服务的开发质量,以及改进交付的管理系统。
CMM 由美国国防部资助的研发中心 SEI(软件工程研究所)开发和推广。SEI 目前是卡内基梅隆大学的一部分。SEI 成立于 1984 年,旨在解决各种软件问题并推动软件方法论的发展。
SEI 的设立是为了优化国防部 (DOD) 大量软件保留系统的开发、采购和维护流程。它提倡以行业为中心采用不断发展的 CMM,即 CMM 集成 (CMMI)。
为什么需要 CMM?
CMM 具有诸多优势,其中最显著的优点是能够节省时间和金钱。该系统经过精心设计,能够比其他模型更有效地识别流程中的缺陷。
此外,CMM 可以改进业务流程,并减少生产计划的突发性变动。作为首个旨在改进工业流程的模型,CMM 为其他模型的创建奠定了基础,如 CMM 的改进版本(即 CMMI)、业务能力成熟度模型 (BCMM) 等。
CMM 是一款非常灵活的模型,适用于各种流程和市场。无论您身处哪个行业,只要您的团队需要进行软件开发,都可以利用 CMM 来解决流程中的问题。
CMM 的五个成熟度级别
CMM 将开发过程分为五个成熟度级别:
#1. 初始级别
在此级别,流程的执行顺序往往不规范,甚至混乱。成功主要依赖于个别成员的努力,而不是可重复的流程。这是因为流程缺乏完善的记录和定义,导致无法被复用。
遵循的流程是不成熟且临时的,导致软件开发环境不稳定。此外,缺乏可靠的基础来预测产品的质量和完成时间。
#2. 可重复级别
在此级别,所需的流程已经得到完善、记录和定义。项目管理技术得到适当应用,并且在某些关键流程领域可以实现成功的复制。
可重复级别通过建立项目管理的基本原则来实现。早期项目的经验被用于管理类似的项目。这包括定义项目所需的资源、目标、约束等。
此级别提供了一套详细的计划,需要严格遵循该计划才能成功开发高质量的软件。主要目标是在软件的整个生命周期内维持产品的性能,包括其组件的性能。
可重复级别还包括客户反馈和审查管理,这可能导致需求发生变化。此需求管理包括对修改后的需求进行适应。
此外,分包管理侧重于对合格的软件开发承包商的管理,包括对第三方开发的软件部分进行管理。软件质量保证通过在开发过程中应用既定的规则和标准来保证高质量的软件产品。
#3. 已定义级别
在此级别,指南和程序的文档记录得以完善。它是一套定义明确的软件工程流程和管理方法,包括:
- 同行评审:使用检查、伙伴检查、走查等多种评审方法来消除缺陷。
- 组间协调:多个开发团队之间进行互动,以确保需求得到适当且有效的满足。
- 组织过程定义:侧重于软件开发流程的开发和维护。
- 组织过程重点:包括为增强组织过程能力而需要遵循的实践和活动。
- 培训计划:培训计划旨在提升团队成员的知识和技能,确保工作效率的提高。
#4. 已管理级别
在此级别,为组织的软件产品质量和软件流程设定了量化的目标。通过数据测量,组织可以在可量化的范围内预测流程和产品的质量。
该级别包括为开发和理解定量分析和产品质量而制定的策略和计划。它还侧重于管理项目绩效。
#5. 优化级别
这是 CMM 流程成熟度的最后阶段,专注于通过定量反馈持续改进组织中的开发过程。它通过使用软件过程的技术、评估和工具来防止已知缺陷的重复发生来实现。
此级别包括:
- 流程变更管理:侧重于软件开发流程的持续改进,从而提高软件产品质量、缩短周期时间和提高生产力。
- 技术变更管理:利用和识别技术来提高产品质量并最大限度地缩短开发时间。
- 缺陷预防:通过识别缺陷原因并防止这些缺陷在未来的项目中再次出现来实现,从而改进项目定义流程。
能力成熟度模型集成
能力成熟度模型集成 (CMMI) 是一个简单的流程模型,组织可以使用它来改进产品、服务或项目的开发流程,促进高效的行为,并提高工作流程中的生产力。 这有助于降低整个过程中的风险。
CMMI 由卡内基梅隆大学开发和引入,主要目的是提高成熟度模型的效率和可用性,这些模型可以衡量组织在特定领域持续增强的能力。这通过将多个模型集成到一个框架中来实现。
CMMI 的第一个版本于 2002 年发布,下一个版本于 2006 年发布。2010 年,1.3 版本出现。最新版本 2.0 于 2018 年推出,带来了各种变化,例如更容易访问,效率更高,对企业更友好。
CMMI 被 ISACA(前身为信息系统审计与控制协会)收购,该协会拥有 COBIT 框架等认证。CMMI 是一种流程和行为模型,可以在整个产品或服务的开发过程中为组织提供帮助。
因此,CMMI 的目标非常明确。它旨在通过遵循既能满足客户期望又能增加组织在市场中价值的模型来提高服务或产品的质量。它还有助于评估企业声誉和行业利益相关者的价值。
CMMI 目前关注以下领域:
- CMMI for Development:用于开发产品和服务。
- CMMI for Services:用于服务的建立、交付和管理。
- CMMI for Acquisition:涉及产品和服务的采购。
CMMI 表示法
CMMI 表示法允许组织追求一组改进目标。 有两种表示:
阶段式表示
- 它使用一组已定义的过程域来描述改进路径。
- 它提供了一系列的改进,系列的每个部分都作为下一次改进的构建基础。
- 它通过成熟度级别来定义改进的路径。成熟度级别说明了组织中不同流程的成熟程度。
- 它允许在不同成熟度级别的不同组织之间进行比较。
连续式表示
- 它可以选择特定的过程区域。
- 它使用能力级别来衡量单个过程的改进。
- 此外,它允许根据过程区域逐个对组织进行比较。
- 连续式表示还允许组织从不同的流程中进行选择,以实现更好的改进。
- 在这种表示中,组织可以通过选择不同流程的改进顺序来更好地实现其目标并降低风险。
CMMI 中的阶段
CMMI 中有五个成熟度阶段,采用阶段式表示:
#1. 初始:在此级别,开发过程控制和管理不善,开发过程的结果不可预测。采用的是混乱和临时的方法。没有定义好的关键流程区域 (KPA)。质量不高,产品或服务的风险最高。
#2. 已管理:在这个成熟阶段,需求得到适当管理,开发过程得到控制和计划。项目按照记录的计划得到妥善管理和实施。但风险仍然存在,但低于初始级别。
#3. 已定义:在定义的成熟度级别,使用适当的程序、标准、工具和方法对开发过程进行了良好的描述和表征。你会发现质量是中等的,风险也是中等的。
#4. 定量管理:在这个模型中,确定了质量和绩效流程的量化目标。这些目标基于组织需求和客户要求等。对过程性能测量进行定量分析。在此级别,您会发现质量更高、风险更低的流程。
#5. 优化:这是成熟度模型的最后阶段,涉及绩效和流程的持续改进。此级别的改进既是创新的,也是渐进的。流程和绩效质量更高,风险最低。
CMMI 能力级别
能力级别说明特定过程域的相关实践,旨在增强组织在过程域方面的能力。CMMI 模型有六个能力级别:
- 能力级别 0(不完整):它包括不完整、部分和未执行的流程。在这个层面上,没有通用的目标。
- 能力级别 1(已执行):流程性能在此级别不稳定,无法达到成本、进度和质量目标。级别 1 流程需要执行特定的实践。
- 能力级别 2(已管理):在此级别监视、控制和计划流程。目标不仅包括模型,还包括质量、进度和成本等其他目标。组织需要通过指标来积极管理流程。
- 能力级别 3(已定义):这是一个已定义的级别,流程管理良好,并且符合一组组织准则和标准。它侧重于流程的标准化。
- 能力级别 4(定量管理):在此,使用定量和统计技术控制流程。过程性能通过指标和统计术语来理解。
- 能力级别 5(优化):此级别侧重于流程性能的持续改进。绩效以创新和渐进的方式得到改善。
CMM 与 CMMI:差异
CMMI 是 CMM 的更新或改进模型。SEI 开发 CMMI 是为了标准化和集成 CMM,后者在每个功能上都有各种模型。这些模型不同步,而整合这些模型能提高流程的灵活性和效率。
在关键流程域、实践、成熟度级别和目标方面,CMMI 的结构与 CMM 类似。但是,CMMI 提供了两种不同的流程表示方法。
让我们来探讨一下 CMM 和 CMMI 之间更详细的差异:
特征 | CMM | CMMI |
全称 | 能力成熟度模型 | 能力成熟度模型集成 |
开发年份 | 1984年 | 2006年 |
描述 | 一种行为模型,用于衡量组织中的软件开发流程。 | CMM 的更新版本,更面向任务和效率。 |
主要目的 | 评估软件开发过程中的成熟度级别。 | 将不同的软件模型组合成一个软件,并克服 CMM 的一些缺点。 |
阶段 | 五个阶段:初始、重复、定义、管理和优化。 | 五个阶段:初始、管理、定义、定量管理和优化。 |
效率 | 效率较低。 | 效率较高。 |
侧重点 | 过于侧重流程。 | 侧重于目标。 |
结论
能力成熟度模型 (CMM) 是一种针对行业软件开发过程问题而设计的系统。它可以帮助企业避免流程问题。
另一方面,CMMI 具有比 CMM 更先进的方法论。它关注于满足客户期望、重视创新、促进市场增长、提高产品和服务质量以及提高声誉。
您还可以探索应用生命周期管理框架,该框架有助于在预算范围内按时开发和交付高质量的软件。