“这项任务完成了吗?”
回答这个看似简单的问题需要查看项目或产品增量是已经完成还是正在进行中。但是,如果团队及其利益相关者没有明确将其定义为“完成”,那么它就无效 。
在敏捷项目管理方法(如看板或 Scrum)中,“完成”是指可视化面板上代表已完成项目的最右侧一列。确定明确的完成定义 (DoD) 可让包括 DevOps 和 Scrum 团队在内的敏捷团队更高效地完成项目。
本指南解释了完成定义 (DoD) 在敏捷开发方法中的含义,以及如何创建 DoD 以使项目更有效和更有价值。
理解敏捷开发中的“完成定义”
DoD 是产品增量必须满足的一组标准,只有在满足这些标准时,团队才能认为产品增量已完成并已准备就绪,可供客户使用。无论产品增量规模有多庞大、包含多少项目,团队成员都应该对何时可以发布该增量达成共识,DoD 即是这种共识。通过明确指定项目“完成”的含义,敏捷团队能够专注于在每次冲刺中交付价值,并最大限度地减少返工。
需要注意的是,“完成定义”并非由单个人确定,而是由整个项目团队(包括开发人员、测试人员、产品负责人以及其他利益相关者)共同商定。这可确保冲刺期间的流程更加顺畅,因为所有人都使用 DoD 作为指南,同时还要参考所有清单,然后才能将某一项标记为已完成。
Atlassian 现代工作教练 Mark Cruth 表示:“如果您处理的是移交给其他团队的工作,需要确保您的完成定义包含确保其他团队取得成功所需的一切。与价值流中的其他团队合作,查明您应该在 DoD 中包含哪些内容,以便为其提供支持。”
“完成定义”的示例
项目的 DoD 会因项目类型和涉及的团队而异。下面的 DoD 示例展示了这些定义在不同项目类型之间的差异:
在移动应用开发项目中,DoD 可能包括:
- 所有图像均已压缩。
所有代码均已缩小并压缩。
在软件开发项目中,DoD 中的示例标准可能包括:
- 所有代码均已通过单元测试、集成测试和端到端测试进行全面测试。
产品增量已经在暂存环境中部署,并由团队进行了测试。
通用项目可能会将以下内容作为 DoD 的一部分:
- 所有错误均已解决。
所有发布文档均已编写和编辑。
完成定义与就绪定义
DoD 是一组高层次标准,用于定义产品增量何时算是完成。它可以确保可交付成果的质量和一致性。通常,团队会在冲刺结束时使用 DoD 来检查产品增量的质量。
相比之下,就绪定义 (DoR) 是一组低层次且具体的标准,仅适用于产品待办事项项目。DoR 定义了待办事项列表项目何时准备就绪,以供团队在即将到来的冲刺中处理。在冲刺开始时,团队在待办事项列表细化流程中使用 DoR。
为什么完成定义很重要?
拥有 DoD 对于交付客户所需的优质产品至关重要,因为它明确了何时可以将项目标记为完成,并可纳入产品增量中。精心制定的 DoD 可提供以下优势:
提高质量:通过根据 DoD 中的标准检查每个产品增量,可确保敏捷团队在整个产品开发过程中始终牢记质量目标。这可以保证产品始终符合发布所需的质量标准。
最大限度地降低风险:遵循 DoD 可以最大限度地降低返工风险,或减少由此造成的延误,因为团队清楚地知道在将项目标记为完成之前应遵循的标准。这有助于确保项目每个阶段均达到高质量。
提高团队一致性:由于 DoD 是对项目背景下的“完成”含义达成的共识,因此团队可以更轻松地专注于满足客户需求,并在每次冲刺中创造价值。
衡量进度:拥有明确的 DoD 使团队能够跟踪符合“完成”标准的产品增量数量。例如,Scrum 指标可能包括速度,可用来显示一个人在设定的时间范围内交付了多少已完成的产品增量。
创建“完成定义”的步骤
虽然制定“完成定义”的确切步骤因团队和项目而异,但流程遵循相似的模式。以下是创建 DoD 的步骤:
1. 与合适的团队合作
在创建 DoD 时,务必与合适的团队成员合作,因为所确定的标准将会成为所有参与者的共识。这意味着要将所有应该在项目的“完成”定义中发表意见的人包括在内:产品负责人、Scrum 教练、Scrum 团队成员、测试人员、产品经理、赞助商和其他相关利益相关者。
每个团队成员都可以将自己的领域知识带到项目中,并可以就对他们的专业领域有意义的标准发表意见。如果选择的团队成员不合适或遗漏了关键团队成员,DoD 的标准可能不够全面,从而导致产品不合格。
2. 确立标准
在定义“完成”的过程中,最主要的任务是确立团队将在项目中使用的标准。为 DoD 设定标准至关重要,因为这将影响所完成工作的质量。
团队如何知道项目的每个组件是否已完成?哪些条件将表明此产品增量已完成?这些标准必须是具体、可衡量、可实现、相关且有时限的。为了选择合适的标准,团队必须问自己两个主要问题:
- 标准是否足够具体?不要含糊其辞(所有代码均已经过测试),要具体(所有代码均已通过单元测试、集成测试和端到端测试进行全面测试)。
- 标准是否以客户为中心?在这方面,一个很好的例子是“所有文档均已编写和更新”,这应该可以帮助最终用户在使用产品时轻松找到指南。
Cruth 解释道:“请记住,完成定义与验收标准是两码事。DoD 是团队认为需要完成的一系列活动,以便‘完成’用户故事(可能包括验收标准),但这与认为用户故事得到了正确实施不是一回事。”
3. 构建完成清单
DoD 标准似乎更适合负责大型项目的团队,但负责较小任务、事务或错误的团队也可以应用相同的概念来构建一个不用太详尽的完成清单。每项任务或事务的完成清单可以确保团队始终如一地交付高质量的工作。
4. 为用户故事指定验收标准
验收标准 (AC) 是指用户故事要为客户所接受而必须满足的条件。这与 DoD 标准不同,因为它涉及的是用户故事或功能,而不是产品增量。
但是,像 DoD 一样,AC 也是确定用户故事或个人任务是否已完成的商定标准。例如,如果用户故事是:“作为用户,我希望能够使用搜索字段来查找所需的产品。”验收标准可能包括:
- 搜索字段位于顶部导航栏中。
- 点击“搜索”按钮后即可开始搜索。
搜索字段包含灰色占位符文本,其中显示“您要找什么?”
5. 修订和更新 DoD
DoD 不是一个静态文档。冲刺期间发现的每一个缺陷或错误都是质量问题,这可能是因完成定义不明确所导致的。因此,更新 DoD 就变得至关重要,这有助防止缺陷再次出现。
Cruth 补充道:“完成定义应该是一份动态文档,这意味着,当您学习有关工作的新知识时,您的团队应该更新 DoD。可以考虑每季度对 DoD 进行一次审查,确保包括您认为必要的所有项目。”
在冲刺审查期间修订和更新 DoD,以保持与项目的相关性。随着项目的发展以及团队对客户需求的更多了解,DoD 可能也需要进修订才能变得切实可行。确保团队成员有机会在冲刺审查或待办事项列表完善会议上对 DoD 提出更改建议。
使用 Jira 确立定义明确的 DoD
对于软件团队而言,Jira 可让您轻松创建“完成定义”。可以创建自定义字段或下载扩展程序以创建清单(在每个 Jira 事务上创建)。还可以通过自定义 Jira 事务类型,为不同类型的工作创建不同的 DoD。
Jira 深受数百万个优质敏捷团队的信赖,可满足他们的计划和项目管理需求,包括敏捷规划、冲刺站会以及两者之间所有其他方面的需求。可免费试用。
完成定义:常见问题
谁负责创建完成定义?
DoD 通常由 Scrum 教练领导的开发团队创建。但是,他们应该征求产品负责人、测试人员和其他利益相关者的意见。
完成定义和验收标准有什么区别?
DoD 是一组高层次标准,用于确定产品增量是否算是完成。它适用于所有产品增量,并定义产品的整体质量。
相比之下,验收标准是低层次条件,仅适用于特定的用户故事或功能。AC 用于定义用户故事是否为客户所接受。DoD 的一个示例可能是“所有文档均已编写和更新”。AC 的一个示例可能是“可从导航菜单访问用户文档的链接”。
创建“完成定义”的最佳实践有哪些?
与您的团队一起定义标准:定义 DoD 应该是一项协作工作,需要整个团队(包括开发人员、测试人员、产品负责人和相关利益相关者)的参与。创建 DoD 可确保团队成员对产品增量何时算是完成达成共识。
保持可见性:在冲刺规划期间或围绕产品待办事项估算进行讨论时,DoD 应可用且可见。团队应该能够定期参考它。将其打印出来然后挂在墙上,或者将其包含在维基或项目计划中。
务实并切合实际:DoD 应该能够在时间期限内利用现有资源实现。更重要的是,它应该与客户的实际需求相关。