Published on

敏捷DoD

Authors
  • avatar
    Name
    Guming
    Twitter

“完成”的定义

虽然具体情况因组织而异,但“完成”的典型定义包括以下项目的检查清单:

代码已经进行了CodeReview 代码已经check in 代码已部署到测试环境 代码/功能通过冒烟测试 代码/功能通过回归测试 代码/功能通过安全测试 帮助文档已更新 功能已得到用户/需求方的验收

不同的公司和开发团队可能会提出自己的checklist,但它们都有着相同的理念:代码实现了需求所要求的功能,而且不会破坏其他任何东西。确保每个特性/发布/迭代都经历这些步骤是非常重要的。

ps. "功能已得到用户/需求方的验收" 严格意义来讲,算是敏捷DoD右移

谁来定义 完成

Agile里面一般是由Scrum Master / 产品经理来定义。 最佳实践是,产品需求由产品经理来定义,技术类需求由Tech Leader来定义。

DoD vs 验收标准

验收标准是针对特定用户故事或功能的。这些标准应由产品经理定义,从时间上来看,被认为是在“完成”之前。 更简单的理解DoD 包含了Acceptance criteria

另一个重要的区别,DoD 更像是软件流程中的状态,便于迭代管理。例如:只有DoD的用户故事和功能才计入到生产率的统计

如何实施

  1. 定义过程应该是利益相关者和实施的人之间的协作过程,充分的讨论,并对最终产品/功能DoD达成一致。

  2. 为每个标准指定负责人,一旦在标准的实施过程中遇到问题,由负责人裁决和修正

  3. 每个标准应该尽可能的简单和简短,不易产生歧义

  4. 控制checklist的长度。不要追求最高标准,标准要切合组织实际情况

  5. 标准是可迭代的