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个概念的关系:
如果套用我们上边的案例,解释此图就是:
右上角就是都是验收标准与完成标准都做到了,即吃饱了,也打扫干净了。
左下角就是都没做到,没吃饱,也没打扫卫生。
左上角就是吃饱了,没洗干净,没打扫卫生。
右下角就是没吃饱,但是菜洗净,餐具打扫干净了。
作为顾客,你去餐厅吃饭,只要吃饱,吃好即可,至于是否做菜时是否洗干净了,你并不知道。你也不关心这个餐馆是否长期存在下去,你只关心这顿饭你是否吃爽了。
但是餐厅的人要确保你吃的是干净食物,吃完了要打扫卫生。否则,以后就没人来这个餐馆吃饭了,他保证长期利益,不能为了短期利益牺牲了长期利益。
上一篇: 【Nowcoder 上海五校赛】二数
下一篇: ZF框架实现发送邮件的方法