Scrum框架下如何管理未完成或部分完成的工作

在Scrum 的教学中,经常会被问到这样的问题:

如何处理Sprint 未完成的工作?听到最多的最直接的一个回答:“挪到下一个迭代做”。

回答这个问题前,我们首先定义一下“未完成的或部分完成的工作(unfinished work)”的范畴:


(1)没有满足当前Sprint完成的定义(DoD)标准的PBI 或产品增量


(2)某些PBI 的验收标准(AC)或业务满意条件没有满足约定的范围。这里我们姑且不讨论 Sprit 的DoD 和理想的发布DoD 的gap,有时我们也把这个gap 称为未完成的工作(undone work),即Sprint DoD 以外的做到真正潜在可发布的未完成的工作,这里我们不涉及如何加强或放大完成的定义(DoD),以免混淆。  


本文中,我们把在Sprint 中未完成的或部分完成的工作,统一归属为“迭代未完成的工作”,方便我们讨论。


先从两个维度来分析:(1)在迭代中如何管理以避免未完成工作的滞后和堆集?(2)迭代结束分析未完成的工作是如何造成的?然后再回答最初的问题,如何在一个迭代结束后处理未完成的工作。

01

在迭代中如何管理工作流(work flow)以避免未完成的工作堆集?

Daily Scrum (站会)的目的就是检视和调整团队每天的工作(replan or planning),ScrumMaster 可以问团队这样的问题:我们Sprint 工作的进度和进展如何?团队现在手上有几个PBI 或用户故事已“打开”了?哪些用户故事还没有完成?有哪些任务需要今天规划可以加速用户故事的“关闭?有没有阻碍或障碍?Sprint 的燃尽图是否翘的很高超过过我们约定的警戒线?我们离迭代的目标有多远?这些问题有助于提高团队的觉察能力,深入思考和加强团队协作,把问题暴露出来,并且可视化。团队开始越来越关注Sprint 的目标和成果,有意加强协作,多数情况下团队内部可以自己搞定“报”出来的多数问题。站会暴露的团队外部的阻碍,有ScrumMaster 去跟踪和移除。团队遵循这样的工作原则“start finishing(开始关闭), stop starting(停止打开)”,控制在制品(WIP)的数量,越少越好。 有些高效的团队甚至约定在Sprint中一次只专注一个PBI(Swarming),保证一个PBI 干干净净的完成,严格拒绝迭代结束出现大量的“半成品”, 处于“未完成“的状态,这样的情形令PO 很尴尬。

图片

如果一个Sprint 的实际进度与理想的Sprint 燃尽图参照,落后20% 以上,Scrum 团队要启动一个Scrum 紧急情况处理(emergency procedure)的流程,这个想法来自Scrum的发明人Jeff 在越战中 Fighter Aircraft 一个操作流程, 如下图。

图片

图片

类比地,Scrum 紧急情况处理流程如下:(do only as much as necessary)

1.改变工作方式,激发创新思维(Change the way the team does the work. Do something different)

2.寻求其他团队的帮助(Get help, usually by offloading backlog to someone else)

3.减少范围(Reduce scope)

4.终止Sprint 并重新规划(Abort the Sprint and replan)

5.及时通知管理层和干系人对发布日期的影响(Inform management how the emergency affects release dates)

ScrumMaster 引导团队首先要把前面的措施1-2步走一遍,第3步PO 参与进来,最大化当前Sprint 团队工作的价值。当然PO也有权利把这个Sprint 终止,这类似于精益的概念stop the line,比如团队碰到大的技术瓶颈,迭代的目标无效等。迭代终止后,团队可能会开回顾会,启动一个新的Sprint,但是要保证Sprint 的长度与组织中做同一产品的其他团队的迭代节奏和长度对齐;第5步,PO 线下与干系人及时沟通,把他们对当前Sprint 的期望值降下来(reset expectation),比如重新规划和更新发布日期。对于新团队和一般的团队,ScrumMaster 要确保这个Scrum 紧急情况处理流程实施到位。

相关阅读:Scrum紧急程序

02

迭代未完成的工作是如何造成的?

首先我们不要轻易地忽视或“放过”这些未完成的工作,要把它作为一次学习的机会。ScrumMaster 抓住这个教练的时机,在评审会上讨论产品的哪些需求未完成和简要的解释,在回顾会上大家分析是什么原因导致这样的结果,如何避免类似问题重演。可能的原因有:


• 团队在Sprint 计划会议上规划所有的工作,任务分配到人头,计划一次,一个萝卜一个坑


• Sprint 中团队在跑小瀑布,测试工作积压在Sprint 后期,测试压力大,全手工测试,自动化测试少


• 迭代中,习惯单兵作战,Sprint 中缺乏协作,开发和测试分家,各干各的


• 紧急的需求出现(Emergent requirements)


• 技术问题的壁垒(Technical problems)


• 关键人员的流失或技能的缺失(Loss of critical people or capabilities)


• 团队盲目乐观,过于高估,忽略团队在迭代的容量(Overestimated capacity)


• 计划外的打断(Unplanned interruptions)


• 先前未完成的工作对当前迭代的拖累(Previous work not Done)


• PO 改变迭代中的工作内容(Product Owner changes backlog)


• 管理层的干预(Management interference)

......

图片

总之,充分利用回顾会,大家一起复盘,一起学习成长,会变得更好,不是简单的“放过”或“放下”,而是持续改进,改善(kaizen)的心态。


在迭代中这个未完成或部分完成的需求,在迭代结束后如何处理呢?是不是一定在下一个迭代接着做,如果这样处理的话,与瀑布式有什么本质不同?

03

迭代结束如何处理未完成的工作?

对于这个未完成的工作如何处理,是不是非要在下一个迭代继续做?答案是“不一定”。正确的流程是把这个未完成的PBI 重新放回在产品待办列表中。PO 会做进一步的评估,也可能降低优先级,有时候因为市场发布周期短的压力,或者解决方案的可行性,PO 会考虑值不值得花费多余的超过预期的时间去投资这些功能和特性,不排除PO做出判断,果断放弃这些功能。


从精益思想看,部分完成的工作也是浪费,下次开发人员捡起来这些工作需要花费更多的时间回忆学习,所以PO 有时候会决定在下一个迭代继续做这个未完成的PBI 。那问题来了,我们是重写一个PBI 还是就延用原来的PBI呢?这需要PO 来快速重新考量,最简单的一个判断标准是:团队看了这个需求是不是会联想到“我们已经做过这个PBI 了,如果答案是yes,PO 最好重新写一个新的需求,以避免团队误解。

图片

需要澄清的是,在我们计算团队迭代交付速率时,这个未完成的PBI(假如是用户故事的形式呈现)的相对估算值,故事点计为零。只有Binary 0或1,要么完成,要么未完成, 没有中间状态。


最后一个问题,这个在产品待办列表中未完成的或以新的PBI 呈现的需求,是不是需要重新估算还是继续保留原来的故事点估值呢?我们建议要重新估算,原因如下:


敏捷估算是相对的,估算仅仅是最好的猜测,随着团队的知识经验和能力的提升,可以重新估算,估算不是“一锤定音”的买卖。对于这个未完成的PBI,团队通过上个迭代有了全新的认识和理解,敏捷是鼓励和允许重新估算的。重新估算是对新的PBI工作范围和业务条件进一步的评估和学习,以降低风险和提升完成率。如果不重新估算,继续保持原来的估算结果,团队可能会take 上个迭代的credit, 团队的实际速率不准确,速率不准, 这样也会给干系人和PO  一个错觉------团队交付很快。这个速率实际上不符合团队的现状,这样的速率是危险的,会误导PO 对发布计划的预测和管理。一句话, 速率是用来做发布管理的, 见下图。  

图片

小结

1.首先要关注和管理未完成的工作出现和堆集,站会就是一个检视和调整我们每天工作计划的机会。

2.Scrum 紧急情况处理流程给ScrumMaster 提供了一个可操作的流程和模式化的语言(pattern)去引导和提醒团队,让Scrum 团队自我管理Sprint 的风险,PO 管理干系人对当前Sprint 的期望值。

3.Scrum 是讲究纪律的,比如“时间盒”的概念是Scrum特有的, 不要忽略或忽视未完成的工作,也不要简单地把未完成的工作“顺延”到下一个迭代继续做,而是作为一次学习和改进的机会,在回顾会上挖掘原因,避免重复就范,久而久之,团队的洞察力和责任感会逐渐提升。

4.如何处理未完成的PBI,一切以价值为导向PO 来重新评估,准确地度量团队的交付速率,稳定的交付速率对PO 对发布管理和对干系人的预期管理非常重要。

可以想象,如果没有一个合格称职的ScrumMaster, 引导和反思这些“未完成的工作”就很难落地和持续,从另一个维度也印证了ScrumMaster 这个角色的重要性。

作者:Jim Wang王军  

写于2020年6月18日疫情期间  

参考资料:

(1)A Scrum Book: The Spirit of the Game 1st Edition, by Jeff Sutherland, James O. Coplien,  Kiro Harada, Joseph Yoder, June Kim, Jens Østergaard etc.

(2)Essential Scrum: A Practical Guide to the Most Popular Agile Process by Kenneth S. Rubin

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值