完成的定义(DoD)是 Scrum 团队内部对如何使软件做好发布准备的共识。
1. 一份详尽的完成清单包含哪些内容
米奇·曼特尔 (Mickey Mantle) 和罗恩·利奇蒂 (Ron Lichty)
在他们的《管理难以管理的事情》一书中提出了一份详尽的清单,列出了“完成的定义”应包括的内容。在实践中,敏捷团队会在清单中选择最适合自己的内容。
项目启动通常是就“功能、任务或冲刺何时完成?”这一问题达成一致的最佳时机。什么才算“完成”? 定义“完成”是与业务、开发团队、项目管理、QA(有时还有其他人)的联合行动,以定义何时可以宣布每个功能完成。除了编码之外,可能还需要
-
设计回顾
-
同行评审
-
单元测试
-
静态代码检查
-
签入源代码管理
-
必要的重构
-
在多个平台、浏览器、配置等上进行了测试
-
性能测试
-
必须修复的错误已修复
-
安装脚本编写
-
必须的文档已更新
对于团队来说,同意“完成”的要素并同意交付它们非常重要。两个团队就“完成”的相同定义达成一致的情况很少见。定义甚至可能会在迭代之间、任务之间、冲刺之间发生变化(经团队同意)。
2. 常见陷阱
- 过分关注标准清单可能会适得其反,该列表需要定义使产品增量达到“完成”状态通常所需的最小工作量
- 除了适用于一般工作的标准之外,个别功能或用户故事可能还有特定的“完成”标准
- 如果“完成”的定义仅仅是一种共同的理解,而不是详细说明并展示在墙上,那么它可能会失去很多有效性;它的很大一部分价值在于成为团队所有成员都知道的明确合同