文章目录

  • 一、需求侧:DoR
    • 案例:
    • DoR是什么?
    • 如何建立DoR的标准?
    • DoR样例
      • 1、需求
      • 2、交互
      • 3、架构
  • 二、研发侧:DoD
    • DoD是什么?
    • 如何建立DoD的标准?
    • DoD样例
  • 三、用户侧:AC
  • 四、总结:
  • 参考

在传统项目管理中,产品的质量通常是通过质量管理中的管理质量、控制质量来完成。在敏捷方法中,很多人关注的是敏捷的快速交付,认为快了,质量就会有所下降,bug就会比传统瀑布模式更多了。事实是这样吗?在敏捷方法中,如何确保产品的质量?本文详细解答敏捷中的质量控制方法:DoR、DoD与AC

dor是指需求是否可以开发,dod是开发过程中是否完成,dor是dod的前置条件

一、需求侧:DoR

案例:

某企业在敏捷转型过程时,团队商定的迭代周期是2周。按计划,在周一召开的Sprint Planning会议大概需要4小时。但会议开始时,PO并未完全梳理好待办事项PB的优先级,而且由于有一些复杂的业务流程,PO输出纯靠一张嘴。没有低保真的原型图,没有流程图…导致后续在sprint执行过程中,团队不得不再次开会,确定一些细节以及AC(验收标准)。团队怨声载道,吐槽有太多的会议影响大家的开发……

这里的Sprint Planning 是指迭代规划会议。

我当时作为外部教练的角色,给团队引入了DoR的机制,开始引导团队一起来制定DoR的规则,并在每个回顾的时候不断优化,经过几个迭代后,团队的SP计划会基本上都可以按期进行,且只要召开一次即可达到高质量的交付。

由于没有准备好图之类的东西,导致开会讨论时没有重点,超时

DoR是什么?

DoR = Definition of Ready,通过DoR的Story可以进入迭代开发

DoR中的R表示Story准备就绪,是Story“合格”的验收标准,即Story应该长什么样,通过DoR的Story可以从Product Backlog进入Sprint Backlog准备开发,属于Sprint开始前的需求确认阶段。是指能够被研发团队接受的代办事项列表。

具体来讲DOR可以是否能够被研发团队接受的代办事项列表,是否已经可以作为开发候选所需要达到的最小要求。DOR是为在每次迭代开发前针对需求梳理或需求输入所设置的质量验收标准。

如何建立DoR的标准?

DoR不是PO自己梳理,而是团队成员一起商议的结果。下面给大家复盘一下我当时如何引导团队建立DoR的做法:

  • 第1步:发起会议,引导为什么要DoR

组织PO、研发团队,解决项目中目前的问题,比如:当前的一些需求反复沟通、迭代计划会时间严重超时、会议需要反复进行、PO和研发需求理解偏差等现象。让大家就这些现象挖掘根本原因。根本原因在于我们对需求的理解不一致。怎么能够减少不一致,尽快就需求达成共识?

  • 第2步:引导大家认知到,我们的需求需要有一个标准

从为什么出发,我们为什么需要有DoR标准,以及DoR是什么。它是为了解决我们上面提到的问题。每个人的认知不同,导致对需求的理解会不一致。怎么提高达成一致的效率?我们需要对需求有一个基本的标准,帮助大家尽快达成一致。

  • 第3步:引导成员输出初始的DoR

采用头脑风暴的方式,让大家写出需求要做到什么样,我们才可以更好的开发。采用便签输出到白板上,并对内容进行分类。对于描述不清的或不够明确的,可以让写这条规则的同学澄清明确一下。然后大家进行投票,选出符合团队具体情况的标准。这就形成了初始的DoR

  • 第4步:重申价值观,持续优化

重申敏捷价值观,我们一直在寻找更好的软件开发方法,所以1.0版本的DoR不是固定不变的,在需要的时候,我们随时都可以更新DoR

DoR样例

1、需求

产品需求文档(PRD)及界面原型已经准备就绪,并提前同步给团队全员

产品待完成项或用户故事得到澄清

已经在需求梳理会上识别高优先级需求,并进行合理拆分

验收标准按场景、业务规则、成功路径或失败路径等测试要点编写

2、交互

低保真线框图已完成

业务场景、业务流程逻辑清晰

UI/X已经经过评审

3、架构

所需的技术调研、概念验证等已经spike完成,针对复杂用户需求已经提前给出概要设计方案

所需的架构或框架的代码已完成

二、研发侧:DoD

在日常生活中,我们定义一件事情已经完成,那到底做到什么程度叫完成呢?比如家长问小朋友,作业做完了吗?小朋友说做完了。家长把作业拿过来一看,这怎么能叫做完呢?这么多错的,也没订正,不行,作业要重做……

那么,我们在软件开发活动中,什么叫做完成呢?我相信大家都曾遇到过这样的情况:

研发提交了一个完成的功能。你打开后,直接报错。然后就问研发:“你这不对呀,有bug”,研发可能马上会回复你一句:“不可能,我刚还运行了一下呢!”

为什么会出现这样的问题?是因为没定义好完成的标准。对于研发来说,可能是在他电脑上(开发环境)是可以运行的。但是在你的电脑上(实际环境)却运行不起来了。

其实这种问题,可以通过定义DoD来预防这种问题。

DoD是什么?

DoD = Definition of Done

DoD也叫完成标准,通过DoD的Story可以交付使用,包括AC、测试、bug修复、部署等,所以DoD标准的目标只有一个:是否可以交付使用。当某个需求被描述为“完成”的时候,所有人都要理解“完成”意味着什么。这就是 Scrum 团队的“完成”定义,用来评估产品增量是否完成。

如何建立DoD的标准?

同DoR一样,DoD也是和团队一起共创出来的,作为SM,如何引导团队建立DoD?

第1步:明确会议目标,确定会议时间盒(一般半小时左右)

参会人包含PO、研发,邀请大家一起来建立团队的DoD。

第2步:重申敏捷原则:可工作的软件是首要的进度度量(敏捷12条原则)

PO和研发需要就本原则达成共识,只有都认同敏捷原则,才能建立DoD。否则PO如果以进度为衡量指标,研发自然会追求进度而忽略了产品质量。

第3步:引导大家建立DoD标准

DoD的建立在实践过程中,通常会遇到的问题是团队不知道怎么写,不知道从哪些方面来写。这时候作为敏捷教练,就需要充分发挥出引导能力。我通常会从如下2大类来引导大家,比如:

a、按照流转状态来定义:下游为上游制定准入条件,比如需求->开发,由开发来写准入开发的DoD,开发->测试,由测试来写准入测试的DoD,测试->验收,验收->上线。都可以按照这个上下游规则来写出准入准出标准。

b、按照分层来定义:比如大家一起思考:

我们确认迭代完成的标准是什么?代码、测试、bug等,要达到什么标准?

我们确认发布完成的标准是什么?部署、运维、相关文档、培训等要达到什么标准?

我们确认每天完成的标准是什么?编码、测试、集成有没有要达到什么标准?

第4步:持续优化

DoD的建立也是逐步优化的过程,在sprint执行过程中,遇到的问题,记录下来,在回顾会上共创解决方案,并针对DoD做出修正或调整。

DoD样例

每日DoD

注意代码缩进规范,代码需要有注释,提交代码前完成自测

每天下班前必须签入(check in)当天编写的代码

当天的代码必须在当天或者第2天邀请同伴进行code review

当天持续集成、构建环境中的问题,当天解决

每日修复前一日构建和测试发现的bug

静态代码扫描出的错误已经修复,新增代码扫描出的警告已经修复

迭代完成DoD

所有代码通过静态检测,P0级bug都已修正

代码已合并团队最新代码并提交至主干

所有完成的用户故事都有对应的测试用例并得到执行

PO已验收每一个完成的用户故事

集成环境中,主流程端到端的回归测试通过,无功能回退问题

发布DoD

完成发布规划所要求的重点需求

至少通过一次全量回归测试

产品文档已全部更新

代码已部署到产品服务器上

P0、P1级缺陷全部修复,P2、P3级缺陷不超过10个

运维在验收测试环境上冒烟通过

应急回滚方案已明确且测试通过

三、用户侧:AC

在培训中,经常有同学混淆AC(Accept Criteria)和DoD的概念。它们是2个不同的概念。

AC是针对每个需求单独定义的,是一个专有的定义,每个需求的AC都不一样。

DoD是针对所有需求,任务,迭代,交付定义的,是一个通用性的定义。

比如:

需求1:干饭人中午要吃的好一些

验收标准AC:

1、一荤一素

2、米饭一碗

3、12:30-13:00吃完

需求2:早上吃好,营养丰富

验收标准AC:

1、两个包子1杯咖啡奶

2、9:00之前吃完

但对于以上2条需求,其完成标准DoD可能是:

1、所有的食材都要新鲜

2、所有的烹饪过程都要干净卫生

不知道你发现没有,AC是最终用户的角度定义的,定义了产品的外部质量。满足了AC确保我们做了正确的事情,

DoD确保我们采用了正确的方法做事,它定义了产品的内部质量,保证了产品的长久的适应性。

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

但在开发时,不仅要关注AC还要关注DoD,否则可能留下技术债务,导致产品后续出现比较多的问题。

四、总结:

以上,详细介绍了DoR、DoD、AC的区别。在敏捷管理中,通过这些约束条件,进一步提升了产品的交付质量。

最后3句话总结三者的区别:

  • DoR = Definition of Ready,通过DoR的Story可以进入迭代开发

  • DoD = Definition of Done,通过DoD的Story可以交付使用

  • AC= Accept Criteria,通过AC的Story可以获得客户验收

参考

一文讲透敏捷管理中的DoR、DoD与AC

【敏捷开发】一文讲透敏捷管理中的DoR、DoD与AC相关推荐

  1. 敏捷开发需求文档_需求的长期,敏捷文档

    敏捷开发需求文档 In my training courses, we discuss many topics. Including: how do you document requirements ...

  2. js打印线程id_一文讲透“进程,线程和协程”

    一文讲透"进程,线程和协程" 本文从操作系统原理出发结合代码实践讲解了以下内容: 什么是进程,线程和协程? 它们之间的关系是什么? 为什么说Python中的多线程是伪多线程? 不同 ...

  3. 敏捷开发绩效管理之六:敏捷开发生产率(中)(功能点分析,FPA,简化的功能点)...

    这是敏捷开发绩效管理的第六篇.(之一,之二,之三,之四,之五,之六,之七) 直接估天数或用故事点估天数,都很"程序员".如果在项目的甚早期,面临与客户相关的报价问题,或高层领导要统 ...

  4. 敏捷开发绩效管理之七:敏捷开发生产率(下)(简化功能点分析,NESMA,两级简化)...

    这是敏捷开发绩效管理的第七篇.(之一,之二,之三,之四,之五,之六,之七) 续前文-- 功能点估算 第一级简化 上次说到只用数据+操作就能准确计算规模,听起来够简单了,但其实还不够. 谁能在刚拿出2页 ...

  5. 从持续交付看敏捷开发的自相似性(敏捷开发的心跳)

    作者:陈勇 出处:blog.csdn.net/cheny_com 自相似性是指一个事物的局部与其更大的局部乃至整体具有相似性. 从大的方面看,敏捷开发具有重视客户价值,提倡持续交付等思想.但一般而言, ...

  6. 一文讲透『大神修炼心法』!35岁让自己过的越来越好!

    Cocos 的老铁,如果你这几天没有被麒麟子给卷到?那说明你还没有真正进入 Cocos 圈子里来.为什么这么说呢?看下面. 3月1号 23:57 | 2800+字 麒麟子全方位解读 Cocos Cyb ...

  7. 10自带sftp服务器_一文讲透FTP和SFTP的区别

    阅读本文约需要10分钟,您可以先关注我们或收藏本文,避免下次无法找到. FTP和SFTP都是文件传输协议,我们知道FTP使用的是20和21端口,SFTP使用的是22端口.另外,SFTP前面的S应该是S ...

  8. 敏捷开发绩效管理之五:敏捷开发生产率(上)(故事点估算)

    这是敏捷开发绩效管理的第五篇.(之一,之二,之三,之四,之五,之六,之七) 度量敏捷开发的生产率一直是个难题,确切说度量任何开发方法的生产率都是一个难题,但它实际上有答案,这个答案是本文的主要内容. ...

  9. 双线macd指标参数最佳设置_一文讲透双线MACD指标及其实战运用

    原标题:一文讲透双线MACD指标及其实战运用 船长的舍得交易体系技术理论模型中,我们要用到两大指标,分别是均线系统和双线MACD指标. 很多小伙伴都喜欢用双线MACD这个指标,但是90%的人都不知道其 ...

最新文章

  1. 收藏 | 分享 3 种脑洞大开的Excel技巧
  2. XML Schema是什么
  3. python3.6与3.7的区别_选择 Python3.6 还是 Python 3.7
  4. 【Java企业级开发二】jsp简答题汇总
  5. 分享吴恩达机器学习视频和300页word学习笔记,以及深度学习五门课视频及700页word笔记
  6. 在dw中它只能对html文件进行编辑,DreamWeaver期末考试试卷
  7. 电商项目——分布式基础概念和电商项目微服务架构图,划分图的详解——第二章——上篇
  8. 中国科学技术大学计算机考研好考吗,中国科学技术大学计算机考研复习方法谈(2)...
  9. 浏览器的id_在浏览器的环境下学习ES6的模块化
  10. 适合新手的mac电脑使用技巧 苹果电脑的快捷键和使用技巧
  11. cubemx实现CAN通讯
  12. 迷你linux系统安装方法,64M内存安装体验迷你版Linux操作系统Tinyme
  13. 同事喜欢、领导器重的是哪类人?
  14. GeekBand c++學習筆記之四(conversion fuction vs non-explicit-one-arguement ctor)
  15. 深度解析 React useRef Hook 的使用
  16. 【远程访问】Linux搭建SVN服务器,并内网穿透实现公网远程访问
  17. 局域网内远程控制访问共享文件
  18. TNT 到底会不会成就老罗的乔布斯梦?
  19. matlab怎么算描述函数法,极限环非线性系统的描述函数法.ppt
  20. ssm药店药品进销存管理系统idea maven mysql

热门文章

  1. 【六袆 - Redis】Redis内存数据库;redis数据结构;redis文档
  2. 模切刀模的日常维护有哪些呢?
  3. 平面设计师的自我修养是什么样子的?
  4. 【混战】你以为只有摩拜和ofo,却忽略了微信和谷歌!
  5. 三大句型:主谓宾句型
  6. MATLAB数组的一些操作
  7. flutter 字符串zip压缩与解压
  8. 信息差永远存在,聪明的人也永远能利用信息差赚钱
  9. 计算机excel新课导入,Excel导入文本文件的技巧
  10. 美国新的州隐私和安全法律解释:你的企业准备好了吗?(一)