Scrum实践之冲刺
定义和特性说明
- 定义
Scrum框架是目前在敏捷圈内比较流行的,下图展示了Scrum框架实践的全景图。
在Scrum框架中,工作在建议时间长度的迭代中循环做,这个迭代叫做冲刺。
- 各个冲刺提交的工作内容必须是对用户和客户来说具有确定价值的交付物。通常来说,在每一个冲刺中,不可以对交付内容的人员和范围等目标做改变。各个冲刺要达到Scrum团队共同认同的完成定义,并且交付一个潜在的可以发布的产品增量。
- 各个冲刺有固定的开始和结束时间,也就是冲刺应该在一个时间盒(Time Box)内。冲刺要短,长度建议2周到4周之间,每个冲刺的Time Box建议保持一样。
- 特性说明
- 时间盒
每个冲刺以“时间盒”这个概念为基础,用它来安排工作执行情况和管理工作范围。时间盒的优点为,对积压的工作(WIP,Work in Process)设定数量限制,强制排列优先顺序、展示进度,避免不必要的完美主义,促进结束,增强可预测性。具体内容如下:
- 时间盒是设定WIP数量限制的技术:WIP是已经开始但还没有完成的工作清单,开发团队只开发自己认为在一个冲刺内可以开始并按时完成的工作事项,因此时间盒是为每个冲刺设定WIP数量限制。
- 时间盒可以强制排列优先级:我们需要先执行高优先级的工作,时间盒可以强制我们按优先级排序执行小批量工作,这样我们的注意力可以更集中于快速完成高价值的工作。
- 时间盒可以展示进度:时间盒可以展示我们需要多少个时间盒才能完成大特性的进度,帮助准确知道为交付整个特性还需要做多少工作。
- 时间盒可以避免不必要的完美主义:有时候团队会花过多的时间把事情做得“完美”。每个冲刺中,时间盒限定了一个固定的结束日期,通过这种方式强制结束可能无休止的工作。
- 时间盒可以促进结束:冲刺有明确的最后期限,这个期限不允许修改,这可以激发Scrum团队成员全力以赴按时完成冲刺内的工作。如果没有时间盒的限制,Scrum团队成员就不会有完成工作的紧迫感存在。
- 时间盒可以增强预测性:团队不预测后续长时间段内可以完成的工作,但是预测下个冲刺内能够完成的工作是可以做到的。
- 短持续期
每个冲刺持续期短有很多好处,持续期短的冲刺更容易规划、反馈快、错误有限、投入产出比(ROI,Return on Invest)高、有助于保持较高的参与热情、检查点多。具体好处如下:
- 持续期短的冲刺更容易规划:为短时间的工作范围做规划所需要的工作量,比给长时间的工作范围做规划的工作量要小得很多、结果更准确、可执行性更强。
- 持续期短的冲刺可以产生快速的反馈:快速反馈可以去掉不适宜的产品路径和开发方法,避免产生更多的不良质量成本(COPQ,Cost of Poor Quality),最重要的是快速反馈可以使团队更快速地发现和利用稍纵即逝的商机。
- 持续期短的冲刺投入产出比(ROI)更高:持续期短可以更早、更频繁地交付,有更多的机会快速投入生产,产生收入。
- 持续期短的冲刺所犯的错误是有限的:在短短1或2周的时间内,就算错了,全部搞砸了,也只是失去了短短的1或2周的时间,不会带来巨大的损失。坚持持续期短的冲刺能够进行频繁地试错、协调和反馈。
- 持续期短的冲刺有助于保持较高的参与热情:团队参与工作的热情、兴趣和兴奋程度会随着时间的拉长而越来越弱。如果一个项目时间过于长,人们看不到结果,那么显然人们会逐渐失去兴趣。持续期短的冲刺通过频繁快速的交付可用的工作产品,让参与者有满足感、操持较高的参与热情,便团队成员恢复兴趣并渴望继续完成冲刺的目标。
- 持续期短的冲刺能提供多个有意义的检查点:传统瀑布式开发有里程碑,例如分析、设计、编码、测试和运行,这些里程碑其实是一些不太靠谱的指标。Scrum在每个冲刺结束时会有一个有意义的检查点(冲刺评审会议),团队中的每个人可以根据展示的可以工作的特性做出判断和决策。有更多的检查点来检验和修正,我们就能更好地应对复杂的项目。
- 一致长度
每个冲刺的长度建议保持一致。
一致的持续期更有节奏感。冲刺中,稳定的节奏感让团队中的成员进入最好的状态;稳定的节奏感使单调而必要的活动成为习惯,从而让团队成员留出心力,集中做有趣、增值的工作。比如,为期一年的开发工作中执行时间盒为2周的冲刺,那么对于接下来二十几个冲刺评审或冲刺回顾活动,我们可以在每个人的日程表发出一个重复发生的事件,否则每个冲刺评审或冲刺回顾需要额外花更多的精力去协调利益干系人的日程。
一致的持续期还可以简化规划活动。长度一致的冲刺更容易计算出团队的速率,也可以简化剩余的计算活动。
- 锁定目标
每个冲刺需要锁定冲刺目标。
Scrum框架有一个重要的原则:一旦制定冲刺目标,在冲刺执行开始后就不允许有任何变更对冲刺目标实际产生影响。冲刺目标是Scrum团队和产品负责人的共同承诺。Scrum团队承诺按时完成目标,产品负责人承诺在冲刺执行过程中不变更目标。虽然冲刺目标不应该有实质上的变更,但是允许澄清目标。在冲刺开始时,Scrum团队对PBI相关的细节不一定完全明确,在冲刺执行中提供更多的澄清是合理的。变更冲刺目标会引起浪费,损害团队的士气和信任。
“锁定目标”是一个规则,并不是铁律。Scrum团队在遵守“锁定目标”的同时还要注实效。如果变更冲刺目标造成的经济后果远远小于推迟变更所造成的经济后果,那么就应该选择适时变更。假如冲刺的目标变得完全无效,可以选择终止当前冲刺,终止冲刺是不得已而为之的最后手段。终止冲刺后,Scrum团队应该决定下一个冲刺的长度,尽量考虑节奏重新同步。
- 定义完成
每个冲刺需要有团队共同认同的完成的定义(DOD,Definition of “Done”),完成的定义可以随时间演变。例如,很多情况是软件开发的人说:“硬件总是很晚才到位!”像这种情况,如果一个团队构建软件而没有硬件做测试,不能声称在每个冲刺结束时产生的结果是潜在可发布的,需要灵活变通处理完成的定义。引入冲刺的每个PBI都应该有一组由产品负责人指定的完成的定义,或者称之为接收标准(AC,Acceptance Criteria)。这些接收标准在接收测试中进行验证,产品负责人会确认AC是否全部满足。
- 时间盒
案例说明
- 常见问题
- 如何增强团队工作紧迫感,完成冲刺内的任务?
- 团队无能力预测下一个冲刺可以完成的工作容量,如何增强预测能力?
- 只有在冲刺活动中才有时间盒吗?
- 解决方法
- 强调时间盒的概念,团队成员有时间盒的意识,借助时间盒设定冲刺中WIP的数量,设定优先级,强制完成时间,防止无休止的工作。团队务必明确冲刺目标及完成定义。每个冲刺需要由团队共同确定目标,共同定义“完成”的标准。只要完成了定义的“完成”就可以认为完成了冲刺内的任务。
- 时间盒可以增强预测性。团队不预测后续长时间段内可以完成的工作,但是预测下个冲刺内能够完成的工作是可以做到的。
- 时间盒在Scrum中多处被体现出来,只是有的团队为了赶任务而被忽略。总结起来大概有如下图时间盒或许更多,通常建议如下:
- 一个冲刺在2到4周。
- 冲刺计划会议控制在2到4小时。
- 站立会议控制在15分钟之内。
- 冲刺评审会议控制在2小时之内。
- 冲刺回顾会议控制在30分钟之内。
- 产品经理要提前准备1到2个冲刺的PBI。
以上并不是绝对要求,只是阐述通常情况下的选择。
- 主要收益
短期快速稳定节奏交付可以快速试错、协调和反馈、把握商机、降低COPQ、提高ROI、增强团队成员参与热情、提高可执行性、更好地应对复杂项目,并相对容易对近期工作做出预测和判断。
文章来源:
- 华为云社区敏捷实践之冲刺,原作者:黄隽 Charlie。