作者 | Will Hayes, Patrick Place, and Keith Korzec ——卡耐基梅隆大学
度量标准有助于实现一个运作良好的系统,评判现有流程的绩效。在项目交付契约功能时能够对其性能进行监督。本文探讨了在一个复杂的信息物理系统的迭代、增量交付过程中,政府项目评估的指标所起的作用。
这篇博文是基于我们在SEI支持程序的经验,这些项目使用针对赞助组织任务的增量交付方法。对于增量交付的关键指标强调评估计划进度和评估质量,这两个指标都包括受精益和敏捷思维影响的基于流程的指标。尽管这篇文章重点关注于评估计划的进展,但评估质量的指标也有助于构建成功的系统。其中技术是否充分是一个主要的问题,它涉及到计划进度和质量。
01、决策评估范围与时间范围之间的对应关系
评估迭代、增量交付计划的进展,通常涉及对近期、中期和长期计划的衡量,而不是对单一的综合总体计划的衡量。迭代开发方法为不同层次的工作建立了明确的标准。这些标准是计划评估进展的基础。
项目近期成就和长期计划之间的联系是项目管理的重点。这种从近期到中期再到长期的计划接连不断,取代了单一的综合总体计划。每个级别的监督都有一个与其计划和时间范围相对应的重点。以下部分描述了为每个计划提供的测量方法,从下往上看图1。
图1:敏捷度量的三个视角
1、工程——这些指标是基于实现技术和工程目标以及性能目标制定的。用于衡量工作技术是否充分,以确保及时交付高质量的工作。这些指标的适用人群是团队领导、特定领域专家和工程经理。
2、项目管理——对于希望采用持续交付方法的项目,这些指标着重追踪管道交付的产品元素。度量故事、特性和能力的变化可以帮助深入了解项目的进展情况。这些指标的对象是中高层项目管理人员,他们随着时间的推移监督成品的交付,因为它们被集成到系统中。
3、采购——这些指标有助于了解采购的目标,他们在美国国防部(DoD)中得到完善,并与长期项目的估算和合同直接挂钩。这些指标通常是针对行政领导和高层管理人员(例如,物料主管、高级物料主管、项目执行官)——还有项目经理汇报关键数据。他们还会关注超出项目管理层面的部分。
工程师和特定领域专家、项目经理和采购专家必须从这三个的角度综合地评估工作进展。工程侧重技术的进步,推进尖端技术是项目的主要重点。项目管理的角度是根据计划交付成果和为项目制定的时间表来评估进展。最后,采购则是从企业目标考虑的,也就是项目为什么开始。从不同角度评估进展需要不同的衡量标准和技能。
工程进展指标
评估在设计方面具备高成熟度的技术成果,需要从工程角度出发。工程师们根据所使用的技术和问题的性质得出主导指标。因此,一般指标,如生产率和质量,不能全面地评估进度,因为它们通常不把使用的具体技术考虑在内。对来自需求分析、设计活动和实施示例的工件的工程评审是必要的。负责项目监督的政府人员需要根据近期计划衡量工程进展。这些评估结果最终会推动项目的里程碑。
通常评估工程项目进度的评审会包括以下内容:
• 技术审查—产品路线图中列出每项能力的主要交付成果将通过系统工程技术评审(SETR)过程进行技术审查--该会议由承包商召集,政府关系人在会上评估交付成果的完成程度。他通常以迭代的形式,以便在较小的工作单元里较快地推进工作。当产生成就时,政府监督人员通常会比较关注是否到达了里程碑要求的标准(如初步设计审查[PDR]和关键设计审查[CDR])。这些成就便作为对下一个工程项目的输入。
• 演示活动--随着特性和能力的成熟,技术的成熟也彰显出来。无论是在测试中演示一小部分功能,还是在实验室中运行一个完整的模拟任务,开发人员通过演示得到了比书面报告更深入的了解。合适的主题专家对特定功能或性能进行评估(例如,针对特定的技术性能的度量)。一些组织会对所展示的功能的实用性(或价值)进行评估。
• 验证活动--通常在专业实验室内执行,或在测试范围内使用生产硬件进行,这样收集的数据是基础的。根据基线要求进行评估,达到测试覆盖阈值,并对测试数据进行详细分析,为决策者提供信息。该过程的结束往往取决于对观察到的异常情况的处理,并提供认证相关的数据以确保产品的完整性。
项目管理进度指标
与工程角度相比,项目管理角度的指标来自里程碑、评审会和可交付成果的产品路线图,提供稳定的信息来源来确认进展或触发行动。这些进度指标最常见的来源有工作单元(如故事、特征、用例、能力)的完成情况和对相关标准的满意程度,以及相关的日程表和成本数据。
已完成的定义确定了被开发的项目在被认为完成之前必须满足的所有标准。在实践中,确定完工需要政府和承包商双方充分达成共识,以确保工作真正意义上已经完成。应该注意的是,当开发者使用应用程序生命周期管理工具的所有功能时,该工具通常包含大多数项目进度管理指标的所需数据。这些工具可以自动生成这些指标,尽管可能需要额外的工具来根据程序的属性提供更高层级的数据。衡量项目管理计划的进展可能包括以下内容:
• 在一个增量内完成功能-许多人在相关产品支持验证的基础上去设计软件工程并测试,这个时间跨度通常被称为增量,通常是一到两周。衡量一个增量中符合已完成定义的特征的数量是一个非常普遍的方法。这种方法通过燃尽图,为进度提供了一个明确的指标。达到验收标准或满足了已完成的定义,通常表明待交付产品的性能超过了 "单元水平”(即整体水平)。当与其他数据结合时,已完成产品特征的数量帮助了解以下两点:
a、将完成产品特征的数量与先前内承诺的数量进行比较,深入了解评估过程。
b、对于一个给定的能力,将已完成产品功能的数量与预期的数量进行比较,可以粗略估计该能力的完成情况。此外,并不是所有的产品功能都具有同等难度,并非所需产品功能在开始时都一目了然。监督人员可以对其他工作,如史诗和用户故事,采用同样的方法。
• 在一个迭代(冲刺)中用户故事的完成情况--虽然这种细化的数据通常对执行团队更有用,但观察故事完成数据对政府也很有用。如果出现剧烈的波动,那么很可能是开发过程中存在不稳定因素,进度则会遭到阻碍。亦或是故事的大小/难度差别很大,需要格外小心。集成对于评估软件产品实用性的意义,往往增加了在迭代层面上计划进展的不确定性。持续集成的策略是为了解决软件验证的这一重要作用,通过开发方法和工具,有效地增加早期测试活动的技术范围,以加速下一层次的验证反馈。
• 可追溯性矩阵报告——该报告允许项目经理向利益相关者确认工作是按照公认的项目优先级执行的。对于诸如升级开发或测试环境、维护不断演化的测试资产,以及技术进步的其他推动者等事情所需的时间线和工作量的核算是具有挑战性的。本报告还保证支持针对其他受众的汇总措施,以便监督人员可以对合同能力的完成情况做出推断。
• 报告的缺陷/遗失的缺陷—完成后发现的缺陷往往表明已经完成的定义中的一个弱点或未能达到定义标准。大量的遗漏的缺陷会削弱对完成数据和相应指标的信心,最终,当须耗费精力来纠正这些缺陷时,进而减缓了进度。
采购进度指标
用于深入了解采购计划目标的指标有时包括项目管理者对迭代和增量交付的挣值管理的应用。挣值管理系统(EVMS)是一种根据计划追踪成本、进度和范围的项目管理工具。数据的结构通常与工作分解结构(WBS)和主时间表保持一致。一般来说,挣值结构主要关注计算机软件配置项(CSCI)。然而,这种方法并不太适用于敏捷开发。对于敏捷来说,正如《敏捷和挣值管理:项目经理指南》一文所推荐,可以用产品待办事项来填充EVMS提供了技术角度的跟踪。
图2:可能的敏捷分解,不是规定性的——敏捷和挣值管理:项目经理的桌面指南
为了促进工作软件更好地交付,需求分解每一层的规模限制(通常用功能、特征和用户故事等术语来描述)有助于在了解进展上保持一致。在分配了这些约束条件后,构建WBS来显示合同能力的进展就变得容易得多了。规模限制有两个很重要的目的:第一,使工作包规范化,保证它们在固定的大小范围内,这样才有可比性(计算它们可以得到有用的总结);其次,WBS在整个工作中保证了细节的一致,同时也实现产品可追溯性。
一种有前景的方法是将敏捷开发的即时计划与EVMS滚动波策略结合使用。这种方法允许采购人员结合最新的项目性能和产品知识。在增量规划中承诺的特性将在EVMS中更新,以反映最新的成本和规模信息。更精确的近期计划提供了对采购进展更详细的评估,而长期计划的不确定性则重点关注最新进展的迭代评估。与产品元素,而不是产品CSCI结构的连接,使人们更关注于所取得进展的操作部分。
一个由两周的迭代组成的季度增量的节奏是很常见的。当功能足以在一个增量中完成时,便可以实现细节的追踪——确保交付产品达到标准。通过研究功能交付的进度,以及未来交付性能的主导指标,来了解与计划发布的进度、测试或生产。
比起这里的EVMS,使用完善的项目监督机制是一个更值得关注的话题。总体成本与现用系统的性能常常使大家忽视了开发成本。根据用户的需求对结果进行预测并追踪,提供了一个最有意义的度量标准。也请期待未来关于这个主题的博文。
02、制定有效的度量方案
评估迭代/增量交付计划的进展,通常包括针对近期、中期和长期计划评估进展的度量。一个有效的度量计划确定每个相关计划和时间范围唯一的光圈和焦点。这些衡量标准的收集依赖于通过及时的信息沟通来保持利益相关者的信心,以证明目标的完成。利益相关者对计划背景的了解,以及对驱动指标的行动和结果的共同理解,有助于更好地评估计划的进展。
在以后的博客文章中,我们将进一步研究评估质量的指标。