如何用甘特图规划软件发布日程
规划从功能完成到上线的阶段:把代码冻结设为里程碑,让测试并行进行,在签收前汇合,并通过关键路径看清是什么决定了发布日期。
发布日期通常在测试计划出来之前就已公布。本指南说明如何把从冻结到上线的这一段变成一份排期,让你能对照别人给你的日期来检查。
简而言之
- 把代码冻结设为工期为 0 的里程碑,所有开发任务都要到达它。
- 让测试工作流、发布说明和运维手册都从冻结开始,并排进行。
- 在签收前用一个任务汇合所有工作流,然后让部署依赖签收和文档。
- 把部署之后的几天也规划成任务:冒烟测试、公告和监控窗口。
- 打开关键路径,看哪条工作流决定日期,并把完成日期与你需要的日期比较。
规划最后一个功能之后的这一段
发布计划很短,但很密。十七个任务可能只占一个月左右,而且大多数依赖另外两三个任务。这就是平铺的清单在这里行不通的原因:它告诉你要做什么,却没有告诉你用户验收测试可以在冻结两天后开始,而回归测试不能在它之前结束,也没有告诉你运维手册必须在部署开始那天就准备好,而不是测试结束那天。
方法分四步。第一,把冻结设为里程碑,之前的一切都要到达它。第二,让测试工作流从冻结开始,文档也从那里开始。第三,在签收之前用一个任务把各条工作流汇合,这样签收不会出现得过早。第四,给部署设置关口,并把部署之后的几天也规划成真正的任务。日期随后由工期和链接算出,你要拿完成日期去对照你需要的日期,而不是一开始就把日期写进去。
排期不会让发布变得安全。它显示的是如果每项估算都成立,工作应在何时完成,却发现不了漏掉的测试或没测过的回滚。测试结果、审批和缺陷清单请保存在专门的系统里。图表规划顺序和时间,它不连接代码仓库、工单系统或部署工具。
示例是 /zh/templates/软件发布甘特图 中的软件发布模板。如果你需要的是流程和决策而不是排期,请看 /zh/templates/软件发布流程 和 /zh/templates/软件部署流程 中的流程图。如果要规划从需求到上线的整个构建,请使用 /zh/templates/软件项目甘特图。
分阶段搭建的发布日程
四组共 17 个任务。工期是示例性的工作日,请换成你自己的。打开表格面板可以看到每个阶段背后的行。
开发以一个里程碑结束
“完成剩余功能”为 10 个工作日。“修复已知缺陷”(6 天)在它开始 5 个工作日后开始,这是带延迟的开始-开始链接,所以缺陷修复与开发的收尾重叠。“功能开发完成”是工期为 0 的里程碑。
冻结与三条测试工作流
“代码冻结”是一个里程碑。“回归测试”(5 天)、“性能与安全检查”(4)和“用户验收测试”(6)都跟在它后面,验收测试在冻结 2 个工作日后开始。“修复发布阻塞问题”(3 天)要等这三项全部完成。
准备工作与部署关口
“撰写发布说明”和“更新运维手册与回滚方案”(各 3 天)从冻结开始,而不是等测试之后。“部署到生产环境”(1 天)要等“发布签收”、说明和手册。“生产环境冒烟测试”跟在它后面。
部署之后的几天
“发布公告”(1 天)和“监控并处理早期问题”(5 天)都要等冒烟测试,所以它们并排进行。“发布复盘”是最后一个任务,用一天总结下一份计划应当改变什么。
运作方式
列出最后一个功能与第一位用户之间的任务
写下上线前后必须完成的每个任务,包括文档和回滚方案。为每个任务设置以工作日计的工期。只用整天,半天的任务请向上取整。
把冻结设为里程碑
为冻结添加一个工期为 0 的任务。让它依赖开发任务,并让测试工作流、发布说明和运维手册依赖它。
让能重叠的重叠
在工作从另一个任务中途开始的地方,使用带延迟的开始-开始链接,例如在“依赖”列中写 4SS+2。用于开发期间的缺陷修复,以及冻结几天后才开始的验收测试。
在签收前汇合各条工作流
让测试之后的任务依赖每一条工作流,写成用逗号分隔的列表。这样签收不会早于最慢的那条工作流。
给部署设关口,并规划部署之后的日子
让部署依赖签收和文档。把冒烟测试、公告和监控窗口加为任务,让支持时间成为计划的一部分。
对照你的日期检查关键路径
打开“视图”菜单并开启关键路径。把完成日期与你需要的日期比较。如果日期是固定的,就去改变决定它的那条链,因为缩短其他任务不会让它提前。
应避免的错误
测试之后才写文档
测试之后才写的发布说明和回滚方案,会把它们的工期加到计划末尾。让它们从冻结开始,并让部署等它们,这样在时间压力下也不会被跳过。
签收没有汇合
如果签收只依赖一条测试工作流,图表显示的日期可能是其他工作流赶不上的。请把它直接或通过修复任务链接到每一条工作流。
忘了部署之后的日子
止于部署的计划掩盖了随后的监控和修复。即使工期只是估计,也请在图表中保留一个监控窗口。
把发布日期固定为开始日期
给部署任务设置固定开始日期,并不会让前面的工作随之调整。如果算出的日期晚于固定日期,图表会标记冲突。请把这个标记当作信号:按这些估算,这个日期无法达到。
打开软件发布甘特图
打开发布模板,把工期改成你自己的,看看哪条测试工作流决定了日期。
相关指南
常见问题
发布日程应该多长?
取决于你的团队从冻结到上线需要多久。模板中的工期只是示例。请换成你最近几次发布实际花的时间,并把部署之后的日子也算进去。
冻结应该是任务还是里程碑?
是里程碑,也就是工期为 0 的任务,绘制成菱形。它标记之前的一切都必须到达的时间点,测试工作流链接到它。
能看出是哪条测试工作流决定发布日期吗?
可以。在“视图”菜单中打开关键路径。它会高亮决定完成日期的任务链,选中一个任务还会高亮它依赖什么、什么依赖它。
适用于热修复吗?
热修复是一张很短的图:修复、测试、批准、部署、冒烟测试。复制一份发布图表,删掉不需要的部分,保留各个关口。
发布流程本身在哪里?
在流程图模板中,它们绘制决策和审批:/zh/templates/软件发布流程 和 /zh/templates/软件部署流程。用甘特图看需要多久,用流程图看谁来决定什么。
