首页 › 指南 › 用于软件开发的甘特图

用于软件开发的甘特图

软件团队反复听到两个迷思:甘特图是瀑布时代的遗物,以及一个待办列表就能回答所有问题。两者都站不住脚。甘特图和待办列表解决的是不同的问题。待办列表负责冲刺内部繁杂多变的日常工作,而甘特图则展示其上方发布的整体形态:各个阶段、固定日期,以及团队之间的交接。在正确的高度上使用,甘特图能支撑一份软件计划,而丝毫不触碰你的敏捷。

作者 Uttam Regmi更新于 2026年10月10日3 分钟阅读

本页内容
  1. 甘特图属于软件,只要放在正确的高度
  2. 软件进度的五个阶段
  3. 甘特图胜过待办列表之处
  4. 待办列表胜过甘特图之处
  5. 甘特图与待办列表并排对照
  6. 跨团队依赖才是真正的理由
  7. 实例演练:一个为期十周的结账功能
  8. 决定你日期的那条链
  9. 把发布甘特图与冲刺执行配对起来
  10. 一步步搭建进度
  11. 保持粗粒度,否则它会腐烂
  12. 什么时候干脆跳过甘特图
一个软件功能的五个阶段如何在时间轴上排列:
周 1-8阶段 1任务 A任务 B阶段 2任务 C里程碑今天

甘特图属于软件,只要放在正确的高度

这种反对很常见。把一张甘特图摆在一个 scrum 团队面前,总会有人说它是穿了西装的瀑布。他们有一点说对了,其余都说错了。他们说对的是,在甘特图上排期单个用户故事是个错误,因为那些故事每天都在变,图表到午饭时就已经过时。他们说错的是,认为甘特图在软件里根本没有一席之地。

诀窍在于高度。待办列表运作在故事层面,那里的工作细碎、不断重排,由流动而非日期来驱动。甘特图运作在高一层,即发布层面,在那里你对上线日期作出承诺、跨团队协调,并向不看 Jira 的利益相关者交代。把甘特图保持在那个高度,它与敏捷之间的张力就干脆消失了。把它降到故事层面,团队冲你发出的每一句抱怨你都活该承受。

软件进度的五个阶段

大多数功能工作都会经过五个可辨认的阶段,而甘特图正是为展示这种序列而生的。探索澄清问题与范围。设计敲定界面、数据模型和 API 契约。构建是工程的主体。测试涵盖集成、质量保证和加固。发布涵盖部署、迁移和上线本身。每个阶段都倚赖前一个阶段,而这正是条形图能让人看见的关系。

周 1-8阶段 1任务 A任务 B阶段 2任务 C里程碑今天
五个阶段在单一条发布时间轴上画成条形:

阶段不是冲刺。像构建这样的单一阶段可能横跨三到四个冲刺,而探索也许一个冲刺就能装下。这没问题。甘特图里每个阶段一条,而不是每个冲刺一条,更不是每张工单一条。正是这种粗粒度的视图,让一位负责人瞥一眼图表,就能在一秒内看出团队还在构建,还是已在为发布做加固。待办列表永远给不了你这种形态,因为它刻意隐藏了日期。

甘特图胜过待办列表之处

待办列表是一份扁平的、按优先级排序的清单。它在安排接下来几天的工作上出类拔萃,却对发布所依赖的三件事视而不见。第一,发布视图。一位利益相关者问结账功能何时上线,想要的是从探索到上线整段跨度的一幅图,而不是在 200 张工单里翻滚。甘特图在一个画面里就把这幅图给了他。

第二,截止期。一条合同条款、一次会议演示或一个合规日期,都是时间上的固定点。待办列表没有日历日期的概念,所以它无法告诉你承诺的日期是否仍然现实。甘特图把这些日期锚定为里程碑,并显示出它们之前的余量,或是余量的缺失。第三,依赖。当一个团队卡住另一个团队时,那种关系在两个团队的看板上都不会出现,但它恰恰是软件日期延误最常见的原因。甘特图是唯一能让它一目了然的产物。

待办列表胜过甘特图之处

诚实是双向的,确实有一类真实的工作甘特图永远不该去碰。繁杂多变的日常属于看板。接下来拉取哪张工单、今早什么被阻塞、冲刺里还剩多少点数、刚失败的那个不稳定测试由谁来接:这些都不属于甘特图,硬把它们塞进去,正是甘特图在工程界落下坏名声的原因。

看板上的工作时时刻刻都在变。估算在挪动,故事在拆分,缺陷在插队,每次站会之后优先级又重新洗牌。一张要这么频繁重画的甘特图比没用还糟,因为它看上去很权威,实际却是错的。看板天生就是来吸收这种波动的。它把变化当作正常的流动,而不是对某个计划的偏差。所以,把嘈杂、快速变动的细节留在看板上,让它翻腾。甘特图只关心每个冲刺产出的结果,而不关心团队为到达那里所走的每一分每一秒的路径。

甘特图与待办列表并排对照

这两个工具几乎不重叠,而这正是你两者都用的原因。把各自回答的问题排在一起,分工就显而易见了。

问题待办列表与看板发布甘特图
我们接下来构建什么?能,待办列表顶部不能
现在什么被阻塞了?能部分能
我们能赶上上线日期吗?不能能
哪个团队卡住了我们?很少可见能,作为依赖
这个阶段之后是哪个阶段?不能能
它能有多善变?每小时都在变每个冲刺变一次

注意这两列共享的东西有多少。你不是在两个工具里二选一。你是用两种不同的工具覆盖两组不同的问题。

跨团队依赖才是真正的理由

如果说软件甘特图单凭一件事就配得上它的位置,那就是跨团队依赖。软件工作充满了没有任何单一看板能展示的交接。API 必须先暴露一个端点,界面才能调用它。基础设施必须先配置好集群,任何人才能向它部署。数据团队必须先交付迁移,功能才能读取新的模式。这其中每一项都是一个跨越团队边界的完成到开始的依赖,而每一项在相关团队的看板上都是隐形的。

完成 → 开始ABB 等待 A开始 → 开始ABB 等待 A完成 → 完成ABB 等待 A开始 → 完成ABB 等待 A
API 先于界面、基础设施先于部署:单一看板所隐藏的那些交接:

在甘特图上,这些交接就是一根根箭头,它们改变了你管理发布的方式。一旦你能看到界面那条在 API 那条完成之前无法开始,你就知道该保护哪项工作、哪项可以有弹性。你不再把每个团队的延误都当作同等紧急,而开始去守护那些真正决定日期的具体交接。这是待办列表永远无法为你提供依据的决定,因为待办列表根本不知道另一个团队的存在。

实例演练:一个为期十周的结账功能

一个团队承诺在十周内交付自助结账。探索和设计先行,然后三个团队并行构建,最后一切汇入测试和发布。看板负责工单。甘特图负责发布。下面是各阶段和负责方如何映射到时间轴上。

阶段团队周次依赖于
探索与设计产品、设计第 1 至 2 周无
支付 APIAPI第 3 至 5 周设计
基础设施与部署流水线平台第 3 至 4 周设计
结账界面应用第 6 至 8 周支付 API
测试与加固QA、全体第 8 至 9 周界面、基础设施
发布与上线全体第 10 周以上全部

甘特图揭示了什么。应用团队要等到 API 团队在第 5 周完成支付端点,才能开始结账界面。如果 API 延误一周,界面随之延误,测试被压缩,第 10 周的上线就没了。没有哪个待办列表能把这一点浮现出来,因为这个依赖跨越了两个团队。在甘特图上它只是一根箭头,它告诉发布负责人究竟该先投入哪个阶段、把哪个阶段当作不可动摇:支付 API。

决定你日期的那条链

在上面的例子里,设计到支付 API 到结账界面到测试到发布这一序列,是最长的一条依赖工作链。基础设施并行推进并提前完成,所以它有挪动的余地。那条最长的链就是你的关键路径,而它是唯一真正决定上线日期的东西。平台工作延误几天,发布照样能出。支付 API 则不行。

这正是甘特图在工程团队里物有所值之处。一张速度图告诉你某一个团队推进得有多快。它没法告诉你三条并行工作流里是哪一条劫持了整个发布。关键路径能,它让你把注意力花在延误真会让你丢掉日期的地方,而不是把忧虑平摊到每一个团队身上。用真实的历史吞吐量而非乐观情绪去估算那条链上的各个条形,并在你对任何会被客户听到的日期作出承诺之前,先读我们关于估算工期的指南。

把发布甘特图与冲刺执行配对起来

可行的模式很简单。甘特图掌管发布。冲刺掌管细节。你在阶段和史诗的层面绘制甘特图,然后让每个团队完全像今天一样在看板上规划自己的故事。冲刺的各项仪式毫无变化。变化的是,在每次冲刺评审时,你更新对应的阶段条:它完成了、延误了,还是缩短了?

把近处的阶段规划得细致,因为你理解它们;把远处的阶段保留为粗略的块,因为你老实说还不理解它们。随着每一块逼近当前冲刺,再去细化它。这种滚动式推进让甘特图保持真实,而不假装在第 2 周就知道第 10 周的情况。甘特图不是管理任务的第二个地方。它是一面透镜,把一个季度的冲刺成果浓缩成关于上线日期的一个答案。看板回答接下来构建什么。甘特图回答所有这些构建的总和是否按时抵达。

一步步搭建进度

搭建一份进度,你既不需要重量级工具,也不需要项目认证。你需要的是各个阶段、你已经承诺的日期,以及和团队负责人一起度过的一个小时。下面是步骤。

  1. 列出本次发布的各个阶段和主要史诗,而不是故事。目标是六到十二条。
  2. 先标出固定日期:上线、任何演示,以及任何合规或合同截止期。把它们画成不会移动的里程碑菱形。
  3. 用你真实的吞吐量给每个阶段定大小,然后把它放到时间轴上。
  4. 画出阶段之间的依赖,尤其是每一处跨越团队的交接。这是价值最高的一步。
  5. 找出依赖阶段最长的那条链。那就是你要守护的关键路径。
  6. 指定一个人在每次冲刺评审时更新图表,别处一概不动。

在甘特图编辑器里打开一份空白计划,每个阶段加一行,连上依赖,不到一个小时你就有了一份发布视图。把工单的细节留在看板上,那才是它该待的地方。

保持粗粒度,否则它会腐烂

甘特图在软件团队里失败最主要的原因是太重。有人搭了一张漂亮的图,每张工单一条,不到一个冲刺它就过时了,于是团队得出结论:甘特图没用。失败的不是图表。是粒度。一张发布甘特图应当小到让一个人在冲刺评审时十分钟就能更新完,拖动几条、挪一个日期即可。

粗的存活,细的死亡。A 团队画了 60 条故事条,两个冲刺后其中 40 条已经变了,于是放弃了这张图。B 团队为同一次发布画了 8 条阶段条。每次评审他们挪动一两条,并调整一次上线里程碑。十周之后,B 团队仍然拥有一份准确的发布视图,并在第 4 周就抓到了一处为期两周的 API 延误,早到足以重新调配一名工程师。同一次发布,相反的结果,完全由粒度决定。

一张只搭一次、再也不碰的甘特图不是计划,而是愿望。要么更新它,要么删掉它,但绝不要让它在共享盘里腐烂,还假装自己是事实。

什么时候干脆跳过甘特图

并非每一项软件工作都需要甘特图,在它毫无产出的地方加一张纯属额外负担。如果你的工作是一连串细小、独立、没有外部截止期、也没有跨团队交接的持续流动,那么一个看板就绰绰有余。一个维护小队、一条支持队列,或一个每天多次向生产环境发布的单一团队,从发布层中得到的很少,因为根本没有可塑造的发布。

当三个信号同时出现时,再去取用甘特图:一个你已经承诺的固定外部日期、不止一个团队的工作依赖于另一个,以及一位需要在一个视图里看到整段跨度的利益相关者。三者俱全时,待办列表会把真实的问题悬而不决,而甘特图能干净利落地回答它们。三者皆无时,大可问心无愧地跳过它。而如果你确实想要一张,也不必为它付费,因为我们盘点的最佳免费甘特图软件所涵盖的工具,正好能应付这类需求。

把工单跑在你的看板上,把发布跑在甘特图上。一个回答接下来构建什么,另一个回答这一切是否能在承诺的日期交付。

常见问题

甘特图和敏捷软件团队搭得来吗?

搭得来,只要把它保持在发布层。敏捷管的是一个团队在冲刺内部如何工作。甘特图展示的是冲刺之上的各个阶段、固定日期和跨团队依赖。冲突只有在有人把单个故事排期到甘特图上时才会出现,而那是任何团队都永远不该做的事。保持它粗粒度,两者就能愉快共存。

软件甘特图上的每一条应该代表什么?

一个阶段或一个史诗,绝不是单个故事或工单。像构建这样的阶段可能横跨好几个冲刺,仍保持为一条。十周的发布,目标大约是六到十二条。故事层面的细节活在看板上,在那里它每天都变,而这恰恰是它绝不能待在甘特图上的原因。

甘特图如何处理跨团队依赖?

以阶段条之间明确的箭头来处理。当 API 必须先于界面交付,或基础设施先于部署时,那个交接就在图上变成一条完成到开始的连线。这些关系在任何单一团队的看板上都是隐形的,而它们是软件日期延误最常见的原因,这也正是使用甘特图最主要的理由。

我应该多久更新一次软件发布甘特图?

每个冲刺一次,在冲刺评审时更新,别处一概不动。移动条形以匹配实际完成的内容,调整任何延误的日期,并确认上线里程碑依然成立。更新得更勤,它就变成了与看板重复的第二个任务追踪器。更新得更少,它就会悄悄地过时,直到没人再信任它。

甘特图能取代我们的待办列表吗?

不能,也不该去尝试。待办列表管理繁杂多变的日常流动,回答接下来拉取什么。甘特图回答发布是否会按日期落地,以及哪个团队卡住了另一个。它们在不同的高度覆盖不同的问题。两者都用,让它们各自分开,并让每一个去做它被造出来要做的那份工作。

作者 Uttam Regmi. Synth88 Labs 创始人,在迪拜打造注重隐私的网页与移动应用。 完整简介 · LinkedIn · Medium · GitHub

本文也提供英文版本。

免费创建你的甘特图

在浏览器中直接使用,无需注册。数据保存在你自己的设备上。

打开编辑器