公司新闻
要言不繁的DoD指南——敏捷开发
编辑日期 2018-11-09 阅读次数:1406 次
DoD(The definition of done:DoD)完成的定义、完成的标准或完成的准则是敏捷开发方法中的一个重要概念,一个重要实践。本文对DoD如何理解、如何定义DoD及其作用给了简明扼要的论述,供各位实践者参考。
01
DoD的定义
可以从不同的维度理解DoD的定义:
1)DoD就是完成准则,完成就是不需要再做其他任何事情,可以直接交付了。DoD就是100%完成,而不是99%,95%,90%的完成。
2)DoD定义了达成目标的最小活动集,不增值的、无用的活动不在此清单上。
3)DoD就是产品的质量活动的标准,代表了团队为保证交付质量,对质量投入的共识与承诺。DoD与用户故事的验收标准不同。每个用户故事都有自己的验收标准,故事的验收标准是客户可以感知的、对产品的外部质量的要求,DoD是对产品内部质量投入的要求。

图1: DoD与用户故事的验收标准的关系
此概念也可以应用到非敏捷的开发模式中,比如针对每个岗位定义每个任务的DoD。
02
DoD的分类
不同类型的DoD关注的宏观层次不同。
1)故事DoD:每个故事完成了哪些事情才算这个故事开发完成,达到可交付的标准了?
2)迭代DoD:每个迭代的所有故事做到什么程度才算完成,完成哪些事情了,本次迭代的输出才是可交付的?
3)发布DoD:每次交付完成了哪些事情,才是可以交付的?
每日DoD或每周DoD,每个团队可以根据自己的实际情况来裁剪,可有可无。
03
DoD的作用
1) 明确对完成的预期,确保项目中的内外部的干系人对完成的含义达成理解一致;
2) 承诺的可视化,隐藏的、内部的质量投入对外暴露出来,增强团队的透明性;
3) 避免快而脏的开发模式,不留技术债务,不遗留问题给后续迭代;
4) 作为迭代策划的前提与约束条件,帮助我们合理估算工作量,制定切实可行的计划;
5) 聚焦目标,减少不必要的活动,定义完成任务的最小活动集合;
6) 在做计划时判断是否有遗漏的活动;
7) 在验收时检查是否有遗漏的活动,比如作为sprint review的检查单的一部分;
04
如何定义DoD
1)团队成员协商一致,并确保所有人都可视!
2)不要让领导定义DoD!
3)在需求梳理会议或迭代策划会议上定义DoD!
4)不同的活动有不同的完成定义,要区别对待。
5)随着迭代的进展,逐步完善DoD。
6)在迭代回顾会议上是讨论对DoD的优化修改。
7)DoD越弱,欠债越多,后期风险越大。如图2所示。
8)质量投入的活动要包含在DoD定义中,如各种测试、评审、重构活动等。
图2:不完善的DoD会导致交付时的返工
05
DoD的案例
用户故事的DoD案例:
① 所有的代码都通过了单元测试,语句覆盖率达到了100%;
② 所有的代码要么做了结对编程,要么做了代码评审;
③ 通过了工具的静态检查;
④ 所有的代码都入库了;
⑤ 完成了集成,并通过了自动化测试;
⑥ 非功能性需求已经测试通过了;
⑦ PO对照故事的验收标准,认可完成的功能;
⑧ 对应的联机帮助已经完成;
迭代DoD案例:
① 所有完成的用户故事都满足了其验收标准;
② 所有完成的用户故事都满足了用户故事的DoD;
③ PO对集成后的功能做了确认;
④ 自动部署的脚本经过了测试;
⑤ 所有已知的缺陷都修复了,自动回归测试没有发现缺陷;
⑥ 通过了性能测试;
发布DoD案例:
① 满足了迭代DoD;
② 产品通过了全量回归测试;
③ 已经通过了用户体验测试;
④ 交付给用户的文档都经过了评审或测试;
⑤ 在客户预期的环境中做了确认;
⑥ 未能按期交付的故事得到了PO的认可;
⑦ 产品已经自动部署到生产环境中;
⑧ 对运维、市场人员的培训已经完成;
每个团队可以根据自己项目组的实际情况定义自己的DoD,以上的案例仅供参考