在《跳出任务管理的泥沼,拥抱甘特图的怀抱》一文中,我谈到了使用甘特图来规划任务。甘特图更多的关注每一个任务的进度上。那么如果我希望了解项目整体的进度,应该如何选择呢?此时就需要引入另一个简单又强大的工具:燃尽图( Burn down chart )。
假设项目 X 有 5 个任务,我们在预估这些任务的时候,时间安排如下:
| 项目名称 | 预计用时(小时) |
| --- | --- |
| 任务 1 | 5 |
| 任务 2 | 6 |
| 任务 3 | 7 |
| 任务 4 | 4 |
| 任务 5 | 3 |
这个任务预计需要 25 小时完成,考虑到可能需要处理各种突发事件留出机动时间,因此,我需要在 7 天内完成这个项目,项目时间定为:2018-12-01 到 2018-12-07。
在非常理想的情况下,平均分配工作时间,到 2018-12-07 这一个公作日结束时刚刚好完成任务。此时的时间消耗,绘制为折线图如下图所示。
纵坐标为任务剩余时间,横坐标为日期,
然而,在实际情况中,可能有些任务能提前完成,有些任务时间又需要延迟,实际上的剩余时间和日期的折线图可能如下图橙色曲线所示。
这就是燃尽图
。非常简单又非常直观。
从这一幅燃尽图中,我们可以看到:在 2018-12-01 到 2018-12-05 时,我们的开发进度是领先于计划的,看起来任务应该能够提前完成,橙色曲线斜率负得越多,越陡,表示实际开发进度领先得越多。然而从 2018-12-03 开始,开发速度下降,到 2018-12-06 时进度和预期时间重合。到 2018-12-07,开发进度落后于预期,任务无法如期完成。
我们再来看几个例子:
燃尽图是敏捷开发中的一个概念,不少敏捷开发的相关的项目管理系统中都能够生成燃尽图。由于燃尽图非常简单,使用 Excel 自带的画图功能,稍稍费一些功夫也能够正常生成。
本着使用 Python 提高日常办公效率的考虑,我使用 macOS 自带的 numbers 表格工具 + Python 来生成燃尽图。当然你也可以使用 Excel 来完成。其中表格用于记录任务的剩余时间,Python 用于格式化任务时间并生成燃尽图。
其中表格如下图所示:
其中,表格的第一行是任务名称,第一列是日期。表格中间填写的数字,表示任务的剩余时间。表格的填写规则如下:
填写好表格以后,把它保存为 excel 的 xlsx 文件。假设路径为:/Users/kingname/Desktop/test.xlsx
(或者 Windows 系统保存在:D:\work\test.xlsx
)。
使用 Anaconda 中的 Jupyter 打开分析程序的 ipynb 文件,如下图所示:
只需要修改这三行数据中,单引号里面的内容,其余内容不需要修改。
修改完成以后,点击工具栏的Kernel-Restart & Run All
,如下图所示。
静静等待 2 秒钟,燃尽图将会出现在页面的最下方。如下图所示。
Excel 与 ipynb 文件地址:https://github.com/kingname/Automatic/tree/master/burndown_chart
使用 Jupyter 打开 ipynb 文件可以看到分析程序。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.