软件开发甘特图:从调研到复盘规划一次发布
把软件项目做成甘特图:调研、设计、开发、测试、部署、发布和上线后复盘,包含并行工作流和决策关卡,以及它与敏捷迭代如何搭配。
软件项目的甘特图显示各条工作流如何互相依赖,以及发布何时能落地。它回答迭代看板回答不了的问题:在这些依赖关系下,最早什么时候能发布?
简而言之
- 按发布层级规划:工作流、关卡和依赖关系,而不是单个工单。
- 并行工作流表现为等待同一前置任务的多项任务;较长的一条决定日期。
- “范围确认”和“上线决策”这样的决策点应作为里程碑放进图里。
- 一条开发工作流可以按迭代数折算成工作日来估算。
- 不对产能和工作量建模;这些请用你的跟踪工具。
甘特图对软件团队的帮助,以及它帮不上的地方
大多数软件团队已经在跑迭代,迭代内部的工作由迭代看板来管理最合适。甘特图位于其上,覆盖整次发布:设计开始前要先完成什么、哪些工作流可以并行、测试要等集成、哪些决策把关部署。它呈现的是项目的形状,而不是待办事项列表的替代品。
甘特图能显示而看板不能的,是时间和依赖关系放在一起。看板告诉你什么在进行;甘特图告诉你前端和后端必须都完成才能集成,集成之前不能开始测试,而两条并行开发线中较长的一条决定日期。这让它适用于发布规划、与团队之外的人沟通,以及找出拖住全局的那一条工作流。
任务要粗粒度。按调研、设计、开发工作流、集成、测试、发布和复盘的层级,以工作日计划,把用户故事和工单留给你的跟踪工具。如果你按迭代工作,一条开发工作流可以就是一项任务,其工期是若干迭代折算成的工作日。不要试图在这里为每个迭代的范围建模;待办事项一变,这张图立刻就过时了。
把决策点加为工期为 0 的里程碑:范围确认、设计评审、上线决策。排期真正被决定的地方就在这里,把它们放进图里,谁来决定、何时决定就难以回避。QueryChart 不跟踪工作量或产能,所以团队规模不在建模范围内。下面的示例是一份完整的发布计划,按阶段展示。
从访谈到发布后复盘的一次软件发布
共十七项任务。打开电子表格面板,可以看到每个阶段背后的依赖关系。
调研以范围决策收尾
“干系人访谈”(4 个工作日)通向“编写需求”(5 天)。“范围确认”是工期为 0 的里程碑,两条设计工作流都要等它。
两条设计工作流,一次评审
“技术架构”(4 个工作日)和“UX设计与原型”(8 天)都在“范围确认”之后开始。“设计评审”要等两者,所以较长的 UX 工作决定它何时进行。
开发工作流与测试准备
“后端开发”(20 个工作日)和“前端开发”(18 天)在“设计评审”之后开始,并在“集成”(5 天)处汇合。“测试计划与测试数据”(4 天)同样在评审之后开始,所以远早于测试需要时就已就绪。
测试、决策、发布、复盘
“系统测试”要等“集成”和测试准备。“上线决策”是“部署到生产环境”(2 个工作日)之前的里程碑,之后是“发布”“上线后加强支持”(10 天)和“发布后复盘”(2 天)。
运作方式
决定详细程度
按发布层级规划。每项任务应是一条耗时数天或数周的工作流或阶段,而不是一张工单。如果任务短于两三天,就并入它的上级任务。
录入调研和设计,并加决策里程碑
添加调研和设计任务,填写以工作日计的工期,再为范围确认和设计评审添加工期为 0 的里程碑。让下一阶段依赖这个里程碑,而不是依赖最后一项任务。
让并行工作流共用同一前置任务
后端、前端和测试准备都应依赖设计评审。不要把它们一个接一个串起来;这张图的意义就是显示哪些可以重叠。
把迭代折算成工作日
如果一条工作流要四个两周迭代,就填 40 个工作日。只在确有等待时才加延隔,例如发布冻结期。
添加发布关卡
在部署之前把上线决策加为里程碑,并为上线后加强支持和发布后复盘各设任务,让计划涵盖上线后的几周。
点亮关键路径并分享
打开“视图”中的关键路径,查看决定发布日期的任务链,然后以链接分享图表,或为相关方导出 PDF。
应避免的错误
规划到工单层级
有几百个小任务的甘特图,一个迭代内就过时了。保持在工作流层级,细节交给跟踪工具。
把并行工作流串起来
因为同一个人做前后端,就把前端排在后端之后,会掩盖真实的依赖结构。按任务真正需要的东西来链接,共用的人在“人员”中注明。
忘了产能没有建模
分给同一个人的两项任务可能在没有任何提示的情况下重叠。QueryChart 会记录负责人,但不检查工作量。
漏掉发布后的几周
上线后加强支持和复盘都是实打实的工作。漏掉它们,计划就在发布日结束,而团队那时往往并不空闲。
打开软件项目模板
把软件项目计划作为你自己的图打开,换成你的工作流,并分享发布时间线。
相关指南
常见问题
甘特图适合敏捷团队吗?
适合,在发布层级上。用它呈现项目的形状、依赖关系和关卡,把迭代范围留在待办事项工具里。两者回答的问题不同。
甘特图能显示看板不能显示的什么?
时间和依赖关系放在一起:哪些工作流并行、哪些必须先完成下一项才能开始,以及哪条链决定发布日期。
如何在图中规划迭代?
一般不用。把一条开发工作流表示为一项任务,其工期是迭代数折算的工作日,迭代范围留给看板。
可以和缺陷跟踪工具关联吗?
不可以。QueryChart 没有与缺陷跟踪工具的集成。你可以把电子表格导出的行粘贴到表格中。
可以显示谁在做什么吗?
可以,每项任务都有“人员”字段。没有工作负荷或过载检查。
