敏捷开发的基本特征是迭代开发。而迭代开发的强调的是"小批量、频繁交付"。因此,进度控制尤为重要。如何及时地展现进度并发现问题,需要有一些辅助的手段。
Scrum中采用燃尽图(Burn-down Chart)来直观得展现项目总体进度。它展示了时间和项目剩余总体工作量间的关系。燃尽图(burn down chart)是在项目完成之前,对需要完成的工作的一种可视化表示。理想情况下,该图表是一个向下的曲线,随着剩余工作的完成,“烧尽”至零。示例如下:
燃尽图更多得是给人以一种压迫感——让人清晰直观得感受到随着时间的推移,项目所剩的工作量逐天减少!因此,燃尽图也受到了一定的批判。
而另外一种形式的图表——燃起图(Burn-up Chart),它能够直观展现项目时间与已完成的工作间的关系的一种图表,根据每天完成的story情况动态展现工作成果的曲线。因为燃起图可以区分不同角色展现工作量完成状况,更易跟踪和理解,所以目前各个项目应用更广泛的是燃起图,示例如下:
因为它将团队成员的工作成果直观得展现出来,因此,某种程度上燃起图不仅仅展示了项目进度,也是对团队成员的一种激励形式。从燃起图里可以找到工作状态的典型信息:多少工作完成了,多少正在开展,多少待进行,进展的步伐等。另一方面,理解了燃起图,它可以帮助你发现团队可能遇到的各种问题。
总结起来,燃起图有如下三个方面的作用:
燃起图有助于展示团队的工作成果。
燃起图可以度量项目的迭代速率和工作效率。
燃起图可以帮助团队分析一些项目可能遇到的问题。
现在我们从一个燃起图的示例来看一下燃起图的主要结构:
如上图所示,其中范围线代表项目待办的工作;开发完成线代表研发同学已完成开发的工作;而测试完成线代表测试通过后具备上线条件的工作;而开发完成和测试完成之间的差距就是待测试部分的工作。
那么,燃起图的绘制都需要哪些规则呢?
每天站会之后由迭代负责人绘制,用不同颜色的笔绘制来区分不同的线:
在发现燃起图数据有异常的时候,及时分析原因,并确认是否需要采取相应措施;
几个迭代周期后,通过燃起图获取度量基础数据,形成迭代速率、团队工作效率等度量数据,来衡量团队的能力
燃起图可以按周绘制,也可以几周连续绘制,具体方式可以根据项目特点来自由安排;
燃起图一个新的起点时,需要将白板上完成的工作清理清楚,没有完成的分清完成的部分和剩余的点数,避免工作量计算错误。
从燃起图看进度很容易理解,但是在项目进行过程中,项目同学们经常会对如何通过燃起图分析项目隐含的问题产生疑惑,因此就从实际项目的一些典型例子入手,跟大家交流一下如何对燃起图进行分析:
典型场景一
从上图可以看出:开发中间时段,研发和测试曲线相差较远,测试完成曲线几天都没有明显上升,可能的情况:
1)研发完成后没有及时开展测试,常见原因有:story较大没有提测;测试因为人力不足、测试资源缺乏、测试环境问题等没能及时开展测试工作;
2)测试中出现阻碍性问题或较复杂的bug导致测试工作无法完成
分析出具体原因后,再根据相应的问题采取措施。
典型场景二
这幅图中,迭代开始时,范围曲线跟研发完成曲线距离很近,说明需求导入不足,需要重点分析需求不足的原因,比如PM人力不足,PM经验不足,需求没有拆细没有区分优先级等。这种情况下可能会造成研发团队空闲的状况,需要及时沟通解决。
典型场景三
此迭代前几天测试完成和整体完成的点数都为0,可能有如下几个方面的原因:开发完成后测试人员人力缺乏,未及时开展测试;开发完成后未及时进行数据配置;项目因各种原因造成hold等。
典型场景四
在前一迭代完成后,范围突然猛增。这里可能存在的问题:需求导入时间过晚,一般建议在前一个迭代的中间开始导入需求,并进行需求沟通、估点等工作,否则等前一个迭代完成后再导入,需要额外的时间来开展讨论,研发和测试形成等待时间;
典型场景五
这个示例中迭代趋势图出现回落。这里可能存在的原因:已经完成的case发现新的bug;已经完成的需求发生变化,需要重新开发。
典型场景六
这个例子跟之前的区别是范围线也同步回落。这里可能存在的问题:最初的项目取消(而且发现时间太晚),但是研发和测试已经完成,造成人力的浪费。
除了通过燃起图跟踪进度,发现问题以外,燃起图还可以提供基础数据,供分析项目整体的数据,来指导或预测团队的效率、质量等方面的工作。
如上图所示,通过燃起图,可以获取如下信息: 研发测试迭代天数,完成的工作量(story点数),投入人力,而且根据这些基础数据,可以得出范围(需求点数)、效率(项目整体效率,研发效率,QA效率等)、质量(线上/线下缺陷密度)。根据这些数据,我们可以得出项目的整体进度、成本、质量的趋势图,进一步分析团队的健康状态,并制定出合理的目标来指导项目的工作。
综上所述,燃起图是项目管理的得力助手,简单说来,可以归纳为如下三个关键词:
路线图:通过这张图,在项目进展过程中,团队成员实时了解到项目所处的状态,各部分的进展,跟目标的差距等等,一切尽在掌握;
晴雨表:曲线异常的时候,可能就要多云转阴喽,项目经理发现苗头时可要及时采取措施啊!
测量仪:每天每个状态的数据都有记录并有据可查,什么工作量、效率、人力投入都门儿清,再也不需要一头雾水拍脑袋决定工期啦。
另外,再给各位看官几个小tips:
燃起图中设置的变量,可以根据实际项目情况来设置,如果需要粗粒度管理,范围、开发完成、测试完成即可,如果需要细粒度管理,配合scrum看板的各个状态都可以用做变量来跟踪绘制;
建议scrum master带领项目成员形成习惯,让同学们轮流自己动手画一画,一来让大家都长长知识,也让团队形成了一个好的传统,不至于咱敏捷教练一撤出就回退不是?
如果团队配合敏捷管理工具开展工作,可以通过平台自动生成燃起图是最好,如果没用现代化的工具,自己准备直至模板,粘贴在站会白板旁边也是一个不错的方法,记得要准备多种颜色的笔来区分不同的变量哦!
最后,提醒大家一句,燃起图画了,就一定不要当摆设,在日常站会,以及retro会中,及时发现问题引导项目成员分析问题和解决问题,这才是将工具的作用落到了实处。
本文作者:李燕,来自:百度敏捷教练