DevOps成长路线——DoR vs DoD
IDCF的Devops成长路线图就贴在吹风机旁边的墙上,每次吹头发的时候,盯着图看,很多的新名词都不懂。既然叫成长路线图,那就顺着图一点一点学习吧。开篇先来聊聊DoR和DoD。
全景图
产品级backlog就是项目的代办列表,也叫需求池。项目范围内的所有事项,无论颗粒度如何,都归入产品backlog,经过排序——意味着排名第1的比第5的重要,同样,第5位的比第23位的重要。事项顺序通常是由商业价值驱动,由PO和开发团队一起协商,最终由PO决定。
项目范围通过用户故事的方式来记录,会随着后续的需求探索而变化。产品backlog由PO负责,并持续更新。
产品backlog是迭代backlog的来源。如果说产品backlog代表项目的需求池,那么迭代backlog 就是针对下一个迭代约定的范围,也代表着开发团队的交付承诺。
一旦大家认同并作出了承诺,迭代backlog通常不会再改变,以保证开发团队能够兑现诺言。
开发团队按迭代backlog从上到下的顺序开发(从最重要到不太重要),如果工作提前完成了,就从产品backlog的最上面依次取出额外的代办事项,放到当前的迭代中。
如果事项在迭代结束前没有完成,就放回到产品backlog中,在下一个迭代计划会中重新考虑。
新发现的需求以用户故事的方式加到产品backlog中,在未来的迭代中考虑。
定义已准备(DoR) vs 定义已完成(DoD)
一个“准备好”的backlog事项应该是清晰的,可行的,可测试的:
“清晰的”意味着所有的scum团队成员对该条目达成了共识。通过协同编写用户故事,对高优先级事项添加验收标准,有利于需求的澄清。
“可测试的”意味着能通过有效的办法决定该条目是否符合期望。验收标准可确保每个故事都能被测试。
“可行的”意味着根据DoD,该条目能够在一个迭代中完成。否则,条目需要进一步的分解。
简单的讲,DoR定义了一些标准,用户故事在开始估算或者进入迭代前,必须先符合这些标准。
1. 用户故事所处的系统环境(哪个版本的Linux,Android,iOS或者浏览器)?
2. 需要输出什么样的文档(自动生成的javadoc,还是完整的终端用户手册)?
3. 有什么质量要求(用于演示的基本功能,还是一个功能完整,健壮的app)?
4. 有什么安全要求(无安全要求,还是从代码评审,代码扫描到网络安全配置等各方面都要求做安全审查)?
5. 有什么扩展性要求(10个并发,还是10万个并发)?
DoR的一些例子
用户故事是清晰的 用户故事是可测试的 用户故事是可行的 用户故事已定义 用户故事验收标准已定义 用户故事依赖已明确 用户故事已由开发团队做过粒度划分 Scrum团队已接受UI原型设计 指定场景下的性能指标已明确 指定场景下的可扩展性指标已明确 指定场景下的安全指标已明确 验收用户故事的人已明确 团队都清楚用户故事所表达的意思
DoD的一些例子
代码已完成(所有代办事项已经完成编码) 代码已注释,已提交。版本库当前版本能正常运行 结对检视已完成(或者采用结对编程),代码符合开发标准 构建没有错误 单元测试全部通过 部署到测试环境并通过系统测试 通过UAT(用户验收测试)并签字确认符合需求。 任何编译/部署/配置变化都已实现/记录/沟通。 相关文档/图表已完成或已更新 任务剩余的小时数已设置为0,任务已关闭
DoR和DoD另外的用法
小结