欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Scrum | AC和DoD的区别

程序员文章站 2022-04-27 23:37:44
...

Accept criteria 与 Definition of Done是敏捷开发中的两个概念,容易混淆。

AC是针对每个需求定义的。

DoD是针对所有需求,任务,迭代,交付定义的。

打个比方解释二者的区别:

需求1:晚饭吃饱。

验收标准AC:

  1 牛肉+蔬菜+啤酒;

   2 18点到19点之间完成。

需求2:午饭吃饱。

验收标准AC:

  1 有荤有素;

  2 面食不超过2两;

  3 12点到1点之间完成。

所有需求的完成标准DoD:

 1 所有的食物要洗干净再吃;

 2 重量经过称重不超标;

 3 吃完饭后食盘要洗净放好。

满足了AC确保我们做了正确的事情,AC是站在最终用户的角度定义的,定义了产品的外部质量。

满足了DoD确保我们采用了正确的方法做事,DoD是站在利益相关者的角度定义,未必一定是最终用户的角度,它定义了产品的内部质量,保证了产品的长久的适应性。

最终用户验收时只关注了AC,而没有关注DoD。

开发方对产品验收时,不但关注AC还要关注DoD,否则可能留下技术债务,导致产品的适应性比较差。

有专家画了下图来表示这2个概念的关系:
Scrum | AC和DoD的区别
如果套用我们上边的案例,解释此图就是:

右上角就是都是验收标准与完成标准都做到了,即吃饱了,也打扫干净了。

左下角就是都没做到,没吃饱,也没打扫卫生。

左上角就是吃饱了,没洗干净,没打扫卫生。

右下角就是没吃饱,但是菜洗净,餐具打扫干净了。

作为顾客,你去餐厅吃饭,只要吃饱,吃好即可,至于是否做菜时是否洗干净了,你并不知道。你也不关心这个餐馆是否长期存在下去,你只关心这顿饭你是否吃爽了。

但是餐厅的人要确保你吃的是干净食物,吃完了要打扫卫生。否则,以后就没人来这个餐馆吃饭了,他保证长期利益,不能为了短期利益牺牲了长期利益。

相关标签: 敏捷