白话透解验收标准(AC)与完成标准(DoD)的区别

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个概念的关系:

白话透解验收标准(AC)与完成标准(DoD)的区别_第1张图片

如果套用我们上边的案例,解释此图就是:

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

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

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

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

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

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

你可能感兴趣的:(敏捷方法,敏捷开发方法)