Skip to content

软件过程评估

软件过程评估是对照标准模型或框架,对组织软件开发过程进行的系统化评估。其主要目的是识别优势、劣势和改进机会,最终带来更好的软件质量、更低的成本和更可预测的进度。

评估帮助组织理解其当前的过程能力,并指导其过程改进工作。它们可以根据执行者进行分类:

  • 第一方评估(自评估): 由组织自身人员在内部进行。有助于内部改进跟踪和识别初步的关注领域。
  • 第二方评估: 由具有直接利益的外部实体执行,通常是客户评估供应商的能力。
  • 第三方评估: 由独立的外部组织进行。通常用于正式认证或与行业标准进行基准测试(例如,CMMI 评估,ISO 认证)。

有效的评估通常以协作方式进行,侧重于改进而非指责。评估结果通常对组织保密,尤其是第一方评估,以鼓励开放性。

许多评估方法都基于过程成熟度的概念,该概念表明组织会随着其过程变得更加明确、受管理、可度量和可优化,而通过不同的能力级别演进。

关键模型包括:

  • CMMI(能力成熟度模型集成): 一个广泛认可的框架,从早期的 CMM 演变而来。CMMI(当前为 CMMI V2.0/V3.0)提供了一套最佳实践(实践域),这些实践域被分组到能力级别(衡量特定领域的过程有效性)和成熟度级别(代表组织整体过程成熟度)。[此处可提及 CMMI 研究所或相关资源的链接]
  • ISO/IEC 330xx 系列(SPICE - Software Process Improvement and Capability dEtermination): 一个用于过程评估的国际标准,侧重于与 CMMI 相似的过程能力级别。
  • ISO 9001: 一个更广泛的质量管理体系标准,适用于软件以外的领域,侧重于客户满意度和持续改进。
  • 敏捷 (Agile) 和 DevOps 模型: 虽然通常不太正式,但存在各种模型来评估敏捷 (Agile) 实践的成熟度(例如,对原则的遵守、流程效率)或 DevOps 能力(例如,基于 DORA 指标)。

评估的范围可以是整个组织、特定的业务单元,甚至单个项目。评估结果可能因定义的范围和抽样的具体项目而异。

项目级评估应审查该项目的实际实践和数据,评估它们在实现项目目标方面的有效性,而不考虑特定成熟度模型的结构。组织级评估通常提供更广阔的视野,支持战略性的长期改进工作。

大多数正式的过程评估方法遵循一个结构化的周期,尽管具体步骤可能因模型和评估类型而异。常见阶段包括:

  • 1. 规划与准备: 定义评估范围和目标,选择评估团队(包括被评估组织的成员),选择评估模型/方法,培训团队,收集初步信息(例如,问卷、现有文档),并制定详细的评估计划。
  • 2. 现场评估 / 数据收集: 收集有关当前过程的证据。这通常包括审查文档和项目工件,对经理和实践者进行访谈,并可能观察工作活动。目标是了解过程实际是如何执行的。
  • 3. 数据分析与发现生成: 根据所选的评估模型分析收集到的证据。团队识别优势、劣势(与模型的差距)以及潜在的风险或改进机会。发现应客观且基于证据。
  • 4. 报告与反馈: 将发现整合到正式报告中。这包括向利益相关者展示结果(如果适用,通常包括能力或成熟度级别评级),讨论其影响,并推荐下一步的改进措施。反馈会议确保发现被理解和验证。

数据收集方法至关重要。常见技术包括分析过程文档、审查项目记录(计划、报告、会议纪要)、发放问卷,并对参与软件过程的个人和群体进行访谈。

SCAMPI(过程改进标准 CMMI 评估方法)

Section titled “SCAMPI(过程改进标准 CMMI 评估方法)”

SCAMPI 是基于 CMMI 模型进行评估的官方方法。它提供了对照 CMMI 最佳实践评估组织过程的要求和指南。SCAMPI 评估可用于多种目的,包括基准测试、识别改进领域以及确定过程能力或组织成熟度级别。

SCAMPI 评估有不同的类别(A、B、C),提供不同程度的严谨性和资源密集度:

  • SCAMPI A: 最严谨的类型,常用于正式基准测试或获得 CMMI 成熟度级别评级。
  • SCAMPI B: 正式程度较低,主要用于评估过程改进期间的进展或为 SCAMPI A 做准备。
  • SCAMPI C: 一种快速评估,有助于识别初步的改进领域或为后续评估提供重点。

与通用评估周期类似,SCAMPI 评估通常包括三个主要阶段:

  • 阶段 1:规划和准备评估: 包括定义范围,选择团队(SCAMPI A 由授权的 Lead Appraiser 领导),规划后勤,初步数据收集和团队准备。
  • 阶段 2:进行评估: 包括通过文档审查、访谈和演示进行详细的现场(或虚拟)数据收集。对照 CMMI 实践分析数据以生成初步发现。
  • 阶段 3:报告结果: 最终确定发现,生成评估评级(如果适用),并将结果呈现给评估发起人和参与者。此阶段以记录评估结果结束。

无论采用何种具体方法,过程评估的最终目标都应该是推动组织软件工程能力实现有意义和可持续的改进。