9.4 模式应用案例
应用案例:Scrum敏捷软件开发中的“燃尽图(Burndown Chart)”
在Scrum敏捷软件开发中,“燃尽图(Burndown Chart)”是一个非常重要的、对需要完成的工作进行可视化展现的工具。在每一个迭代周期内,通常Scrum团队会以日为维度使用任务燃尽图对任务完成情况进行记录和监控。图15是一个任务燃尽图的例子。图中横轴是时间(迭代周期为两周),纵轴为完成所有任务还剩余的小时数。棕色曲线表示的是理想状况下,任务完成的小时数应该线性递减,直到两周迭代结束时为零(也即“燃尽”);而蓝色曲线是某个迭代的实际任务完成情况。可以看到,在这个示例中,直至迭代结束,还剩余30多个小时的任务没有完成,因此这个迭代并没有完成既定目标,是一个“不成功”的迭代。
图15 任务燃尽图
实际上,“燃尽图”就是对本章所介绍的结合使用先导性指标和滞后性指标思想在敏捷软件开发中一个非常好的应用。对于每一个Scrum开发迭代,有以下两个重要的滞后性指标。
滞后性指标1:用户故事完成率=
(完成的用户故事数目 / 本迭代计划完成的用户故事数目)。
对每一个迭代来说,目标都是希望用户故事完成率达到100%。
滞后性指标2:开发速率 = 每个迭代完成的用户故事的点数的总和。
开发团队会首先选定一个用户故事,将其作为基准点,并将其工作量大小设定为用户故事点数为1。接下来,其他的用户故事都会和这个基准用户故事进行工作量的比较,以确定相应的用户故事点数。开发速率这个KPI的价值在于不仅可以对当前迭代的工作完成量进行评估,还可以对未来工作安排提供有价值的参考。
然而,如果仅仅关注这两个滞后性指标,那么对于软件开发这样变化特别多的工作来说,将有非常大的可能性无法达到预期的目标。因此,有必要引入一个先导性指标对Scrum团队的日常工作进度进行监控,这个先导性指标,就是“燃尽图”中“剩余工作任务小时数”。
如图15所示,如果“剩余工作任务小时数”(蓝色曲线)保持在理想状况(棕色曲线)之下,则意味着团队正在按照计划(甚至提前于计划)完成工作;如果“剩余工作任务小时数”持续若干天都在理想状况之上(例如图1中第5天之后的情况),那就意味着团队的进度已经落后于计划,需要立即弄清原因,并再次制定子OKR去进行纠偏,保证迭代的目标能够完成。在实践中,Scrum团队在“每日例会”上,都会展示当天的燃尽图,作为讨论项目进度、是否存在风险、是否需要对计划进行微调的重要依据。同时,优秀的团队也会在办公区域的显著位置实时展示燃尽图,从而让团队成员能够随时了解这个先导性指标。