承诺:Definition of Done #
如果你刚开始使用或正在学习Scrum,你会频繁听到“完成”(Done)和“完成的定义”(Definition of Done)这两个概念。可以将“完成”理解为构成完整的产品增量所需的所有要素之和。“完成的定义”则是开发人员对增量的承诺,类似于Sprint目标是开发人员对Sprint Backlog的承诺,而产品目标是产品负责人对产品Backlog的承诺。“完成的定义”涵盖了增量为了能够发布所需要满足的所有特性和标准。
Scrum指南里说,“完成的定义”是对增量达到产品所需质量标准时的状态的正式描述。一旦满足了“完成的定义”,增量即视为完成并可以交付了。
通过对“完成的定义”的共识,每个人都对增量中完成了哪些工作,达到了哪些标准有了共同的理解,从而提高了透明度。如果产品待办项不符合“完成的定义”,就不能被发布。把“完成的定义”看作是为交付产品设定的标准。
有时,增量的完成的定义会包含组织的标准。在这种情况下,所有Scrum团队必须至少遵循这些标准,并可以根据产品需要满足的任何其他标准或特性进行补充。如果没有特定的组织标准,Scrum团队就必须为产品创建一个合适的“完成的定义”(Definition of Done)。
如何创建 Definition of Done #
“完成的定义”通过为每个人提供对增量所需工作标准的共同理解来创建透明度。这个创建过程可以像团队一起协作写下任何内容一样简单。一些Scrum 团队还可能结合诸如“释放性结构”之类的头脑风暴活动。
为了讲清楚来龙去脉,可以参看下述可能在“完成的定义”中找到的一些项目示例:
书面营销案例研究的“完成定义”中的项目示例:
- 符合特色客户的品牌指导原则
- 以 AP风格编写
- 由客户审核并收到反馈
- 已落实了反馈
- 客户批准的最终草案
以聚焦健康的软件应用程序的完成定义中的项目示例
- 全部测试完成
- 无已知缺陷
- 代码审查完成并通过
- 符合 HIPAA合规标准
- 满足一般安全要求
一旦“完成的定义”中的所有项目都被勾选并完成,该增量就被视为完成。当然,Scrum 用于解决复杂的工作场景,可以将许多复杂的特征添加到“完成的定义”中以使其更加严格。