Scrum协作稳定性保障——DoR和DoD

Posted 我是程序员

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scrum协作稳定性保障——DoR和DoD相关的知识,希望对你有一定的参考价值。


在Scrum框架中,我们知道最终交付给客户的产品,是通过一个又一个的Sprint迭代产生的。那么如何保证每个Sprint是高效的呢?这涉及到很多方面,但最重要的是团队之间的信息透明,即DoR(Definition of Ready)和DoD(Definition of Done)。

简单来说,DoR是一个Sprint迭代正常开启的先决条件,即需求池中的PBI(Project Backlog Item)是否满足加入迭代的要求。而DoD则是Sprint产物验收的标准。

Scrum协作稳定性保障——DoR和DoD

我们只能把需求池Project Backlog 中已经认为是“Ready”状态的需求加入到马上要开始的迭代中,同时在Sprint启动之前,我们也需要明确Sprint及其每一个Backlog什么标准叫做“Done”。当我们团队内部对于DoR和DoD拥有一致的认识时,整个Sprint和团队协作才能达到最理想的专业和效率状态。

当产品待办事项或增量被描述为“完成”时,每名团队成员都必须对“‘完成’意味着什么”有着相同的理解。在此基础上,每个产品待办事项一旦被放入 Sprint ,都应该包含一组由更为具体的完成和检验标准组成的核对清单,并对全员透明。这样做的目的是:

  • 指导开发团队在 Sprint 计划会上选择适量的产品待办事项和讨论实现思路;

  • 在团队内部就质量和完整性建立共识;

  • 限制返工的成本;

  • 减少开发团队与产品所有者、产品相关方之间的误解。


DoR和DoD随着经验是不断变化和发展的

每个 Sprint 的“完成定义”与“潜在可交付”越接近越好。不过需要注意的是,随着 Scrum 团队的成熟,工作流程和方式的改进,“完成”定义的要求也会更为严格。如果此前 Scrum 团队对“完成”的要求较低,那前面的 Sprint 遗留和累积下来一些“已完成”的工作一旦影响到产品发布,Scrum 团队就需要安排一个额外的 Sprint 来处理它们。

此消彼长的,DoD的要求越来越严格,DoR的定义就会相应的变得更少一些。



具体的建议

前面关于DoR和DoD都还是很抽象地说明了意义和价值,并没有回答什么样的是“Ready”和“Done”。

DoR

A definition of ready deals with the user story, wherein the user story is ready to be taken into a sprint. It doesn’t need to be “100 % defined” covering all the acceptance criteria. However, it should be “ready enough” only when the team is confident that they can successfully deliver the user story.


一个准备好的用户故事至少要能够回答

  • 这个用户故事的意义和目的是什么?

  • 我们在实现什么东西?比如能够回答“我想要xxxx”,并且要能附上验收标准

  • 我们该如何实现它?能够估计一个用户故事的复杂性是一个迹象,表明开发团队在实现上提供了足够的信息,并且在团队内部保持了一致的意见。

一种有效的类似Checklist的方式是,参照INVEST方法:

  • I (Independent),独立的:这个用户故事应该是独立的,并不依赖其他的用户故事或者其他的外部资源,否则用户故事还可以进行更好的拆解。

  • N (Negotiable),可商议的:这样才能够发现最优的实现方式到底是怎样的。

  • V (Valuable) :这个用户故事能够给客户带来的价值应该是明确的。

  • E (Estimable) :这个用户故事的大小应该是可以评估的。

  • S (Small) 分解得尽量的小,以便能够在一个或多个Sprint的时间盒里面得以安排和实现。

  • T (Testable) 每一个用户故事都应该有明确的验收标准,以便能够进行测试和验收。

例如 :

  • 业务价值被清晰地表达出来。

  • 确定了依赖项,并且没有外部依赖项会阻止这个需求的完成。

  • 开发团队对细节有充分的理解,因此可以对是否完成该需求做出明智的决定。

  • 可以配备适当的人员来完成该需求。

  • 用户故事是预估的,足够小,可以在一个sprint内轻松完成。

  • 验收标准是清晰和可测试的。

  • 性能标准(如果有的话)是定义清晰和可测试的。

  • Scrum团队知道如何在sprint评审中演示这个用户故事的实现。


DoD

  • 代码开发完了

  • 代码有合理的注释,已经提交到代码仓库中正确的分支中

  • 代码经过了结对检视或满足了团队的代码规范、质量检测

  • 提交的代码没有编译错误

  • 具有足够的单元测试用例,并且用例都是通过的

  • 部署到了测试环境,并且测试通过

  • 通过UAT (User Acceptance Testing) 测试,并获得PO验收

  • 任何必须的构建、部署、配置都已经完成

  • 相关的文档、图表都已制作或更新。

  • 任务中的剩余工时已更新为0,并且关闭了这些任务



Reference

问题的整理过程,参考了一些资料,一并列入文末。


[1] https://www.quora.com/What-is-the-difference-between-the-Definition-of-Done-DoD-and-the-Definition-of-Ready-DoR-in-Agile-processes

[2] https://www.slideshare.net/gramakri/fundamentals-of-agile-methodologies-part-ii

[3] https://www.linkedin.com/pulse/definition-ready-dor-vs-done-dod-brian-will/

[4]  https://www.yuque.com/wtshare/abc/eyv7b2


以上是关于Scrum协作稳定性保障——DoR和DoD的主要内容,如果未能解决你的问题,请参考以下文章

CODING DevOps 高可用实践,保障服务稳定的“定海神针”

CODING DevOps 高可用实践,保障服务稳定的“定海神针”

我对 SRE 的理解

Scrum 实践之 DoD

微服务稳定性保障

SCRUM实践之DOD