很多项目延期,并不是因为团队“做得慢”,而是因为一开始就把任务之间的依赖关系画错了。以一个活动页面上线项目为例,设计、内容准备本来可以并行,却常被排成串行;测试又没有等开发和内容录入全部完成,最终得到的计划看起来完整,实际却无法执行。AON图的真正价值,不是画出几个方框,而是找出哪些工作一旦延误,就会直接推迟项目交付。本文用一份可复算的任务清单,按5步完成AON网络图绘制、正推与逆推计算,并进一步说明如何把关键路径用于项目决策。
一、先记住核心结论:AON图不是流程图,而是可计算的依赖模型
1. AON图解决的不是“任务怎么排”,而是“任务为什么必须这样排”
AON是Activity-on-Node的缩写,通常译为“活动在节点上”。在这种表达方式中,每个方框代表一项活动,方框之间的箭头代表先后依赖关系,工期写在活动节点中。它与普通流程图最大的区别在于:AON图不仅展示流程,还要支持项目工期、时间裕量和关键路径的计算。
如果只把任务按照出现顺序连起来,得到的可能是一张漂亮但没有管理价值的图。真正需要回答的是:某项任务是否必须等待另一项任务完成?两个任务能否并行?一个任务是否必须同时等待两个前置任务?这些逻辑关系,才是AON图的核心输入。
我的判断标准很简单:如果一张网络图无法帮助项目经理回答“今天延误哪项任务最危险”,它就还没有完成从流程图到项目管理工具的转换。
2. 关键路径决定项目最短完工时间
关键路径是从项目开始到项目结束、持续时间最长的一条活动路径。在常见的关键路径法计算中,关键路径上的活动总时差为0。所谓总时差,是指一项活动在不影响项目最终完工时间的前提下,最多可以延迟多久。
这里有一个容易被忽视的细节:关键路径不是“最重要岗位组成的路径”,也不是“工期最长的单个任务”。它是由依赖关系和工期共同计算出来的结果。一个工期只有1天的测试活动,也可能位于关键路径上;一个工期很长的研究活动,如果有足够缓冲,也可能不是关键活动。
3. 先处理数据,再画图,准确率通常更高
实际绘图时,我不会一上来就拖动方框。更可靠的顺序是先建立“活动,工期,前置活动”三列表,再检查是否存在循环依赖、遗漏前置条件或错误的并行关系。原因很现实:图形编辑器只能帮助你画出输入内容,不能替你判断输入逻辑是否正确。
| 输入内容 | 要回答的问题 | 对计算的影响 |
|---|---|---|
| 活动名称 | 项目究竟要完成哪些可交付工作? | 决定网络图的节点数量 |
| 活动工期 | 每项工作需要多少自然日或工作日? | 决定最早、最迟时间 |
| 前置活动 | 哪些条件满足后,该活动才能开始? | 决定路径、并行关系和关键路径 |

二、为什么很多AON图一开始就画错:真实场景中的三个判断陷阱
1. 把“工作顺序”误认为“依赖关系”
团队开会时常会按照会议议程说:“先做需求,再做设计,再做开发,最后测试。”这句话描述的是一种常见执行顺序,却没有说明哪些工作实际上可以并行。内容准备可能从需求确认后就开始,不必等待页面设计;测试也可能分为接口测试、视觉测试和上线检查,而不是所有测试都必须等到最后一天。
如果项目经理把所有任务都按串行方式连接,项目总工期会被人为拉长。反过来,如果把存在硬性依赖的任务错误地并行,计划就会产生无法执行的“虚假提前量”。因此,画图前要问的不是“团队平时先做什么”,而是“后项活动在什么条件满足后才具备开始资格”。
2. 把多个前置任务画成“任选其一”
当一个活动有两个前置任务时,箭头关系通常表示该活动需要等待两个前置任务都完成。例如联调测试既需要页面开发完成,也需要内容录入完成。此时不能因为开发先完成,就让测试提前开始;内容数据未准备好,测试结果仍然不完整。
在时间计算中,多个前置活动的规则是:后续活动的最早开始时间,取所有前置活动最早完成时间中的最大值。这条规则是初学者最常出错的地方。取最小值会让项目计划看起来更快,但会直接违背“等待全部前置条件”的逻辑。
3. 把关键路径理解为“最忙的团队”
关键路径只回答进度问题,不直接等同于资源负荷、成本压力或业务重要性。某个设计团队可能非常忙,但如果设计任务仍有2天总时差,它就不一定是当前的关键活动。相反,一项由外部供应商完成、工期只有1天的验收活动,可能没有任何缓冲,反而更容易成为进度风险。
| 常见说法 | 问题所在 | 更准确的判断 |
|---|---|---|
| 最长的任务就是关键任务 | 关键路径由路径总工期决定 | 查看该活动所在路径及总时差 |
| 所有任务按顺序画最安全 | 会制造不必要的串行等待 | 只保留真实的强依赖 |
| 前置任务完成一个就能开始后续任务 | 忽略“全部前置条件” | 多前置活动取最大EF |
| 软件自动算出关键路径就一定正确 | 软件无法识别错误的业务逻辑 | 先验证依赖,再接受计算结果 |
4. 忽略时间口径,导致结果相差一天
正推计算必须统一时间起点。本文采用“项目开始时点为0”的口径:工期为2天的活动A,其ES为0、EF为2。也可以采用“第1天开始”的教学口径,但必须从头到尾一致。自然日、工作日、节假日和班次日也不能混用,否则图上的数字看似精确,实际却无法对应项目日历。

三、5步绘制AON图:从一张任务表得到可验证的网络图
1. 第一步:把项目拆成可交付的活动
活动拆分不能只看部门名称,也不能把“完成项目”当成一个节点。一个可用的活动应该具有清晰的开始条件、结束条件和责任边界。例如“页面上线”是结果,不适合作为唯一活动;“明确需求”“页面设计”“页面开发”“联调测试”则更容易估算工期和确认完成状态。
拆分粒度要服务于管理,而不是追求节点数量。对于一周以内的小项目,我通常会把活动控制在5至15项之间,先保证依赖关系可讨论。对于大型研发或工程项目,则应在阶段层级绘制总图,再对关键阶段继续分解,避免把数百个活动全部塞进一张图。
2. 第二步:为每项活动补齐工期和前置关系
建议先用表格记录活动,而不是直接在画布上凭记忆添加节点。工期最好写明单位,并注明是估算工期、基准工期还是包含缓冲的计划工期。前置关系则要写具体活动编号,避免使用“等设计完成”“等相关部门确认”这类无法计算的描述。
| 活动 | 工作内容 | 工期 | 前置活动 |
|---|---|---|---|
| A | 明确需求 | 2天 | 无 |
| B | 页面设计 | 3天 | A |
| C | 内容准备 | 4天 | A |
| D | 页面开发 | 5天 | B |
| E | 内容录入 | 2天 | C |
| F | 联调测试 | 2天 | D、E |
| G | 发布上线 | 1天 | F |
3. 第三步:先放置没有前置任务的活动
没有前置任务的活动应连接到统一的开始节点,或者直接作为网络图的起点。在示例中,A是唯一的首项活动,因此从开始节点连接到A。若项目有多个可以同时启动的活动,例如市场调研和技术预研都不依赖其他任务,则应从开始节点分别连接它们。
这一步的检查重点是:是否还有活动被遗漏在网络图之外。一个活动如果没有前置任务,可能是项目真正的起点,也可能是任务表遗漏了前置条件。不能因为软件允许你把它放在左侧,就默认它逻辑正确。
4. 第四步:沿着依赖方向连接串行、并行和汇合活动
接下来按“左侧先完成、右侧后开始”的方向布置节点。A完成后,B和C都可以开始,因此A后面形成两个分支。B完成后进入D,C完成后进入E。D和E最终汇合到F,F完成后才能进入G。
在AON图中,箭头主要表达逻辑依赖,不代表箭头本身有工期。不要把箭头长度当成等待时间,也不要通过拉长或缩短箭头来表达工期。工期应始终写在活动节点中。
开始 → A(明确需求,2天)
├→ B(页面设计,3天) → D(页面开发,5天) ┐
└→ C(内容准备,4天) → E(内容录入,2天) ┘
↓
F(联调测试,2天) → G(发布上线,1天) → 结束
5. 第五步:补充结束节点并做结构检查
如果项目有多个没有后续任务的活动,可以通过统一结束节点收口。开始节点和结束节点不一定在所有AON绘图规则中都被强制要求,但在教学、汇报和关键路径计算中,它们能减少歧义。
结构检查至少包括五项:是否存在孤立节点,是否存在从开始到结束无法连通的活动,是否出现箭头反向,是否出现循环依赖,是否有一个活动被错误地连接到不具备真实前置关系的任务。完成这些检查后,再进入时间计算阶段。

四、用正推、逆推和总时差找出关键路径
1. 正推:先计算每项活动最早什么时候完成
正推从项目开始节点向结束节点进行。以项目开始时点为0为例,A的ES为0,工期为2天,因此EF为2。B和C都依赖A,所以二者的ES都为2;B的EF为5,C的EF为6。
D依赖B,因此D的ES为5,EF为10。E依赖C,因此E的ES为6,EF为8。F同时依赖D和E,它不能在E完成时就开始,也不能在D完成时就开始,而是要等两者都完成,所以F的ES取10,EF为12。最后,G的ES为12,EF为13。
由此得到项目在当前工期和依赖关系下的最短计划工期为13天。注意,这个13天不是所有活动工期之和。所有活动工期相加为19天,其中B与C部分重叠,D与E也部分重叠,正是并行关系压缩了项目总工期。
2. 逆推:从计划完工时间反向计算最迟时间
逆推从项目结束时间13开始。G的LF为13,工期为1天,所以LS为12。F的LF等于G的LS,即12,F的LS为10。D的LF等于F的LS,即10,D的LS为5。
E虽然也连接到F,但它的工期只有2天,因此E的LF为10,LS为8。C的LF等于E的LS,即8,C的LS为4。B的LF为D的LS,即5,B的LS为2。A同时连接到B和C,它的LF应取后续活动LS中的较小值,即min(2,4)=2,A的LS为0。
3. 通过总时差判断哪些活动没有缓冲
总时差的计算公式为:总时差=LS-ES,或者总时差=LF-EF。以C为例,C的ES为2,LS为4,因此总时差为2天。也就是说,只要C的延误不超过2天,并且其他条件不变,项目最终仍有机会在第13天完成。
而A、B、D、F、G的总时差均为0。这些活动从开始到结束形成一条连续路径:A→B→D→F→G。任何一项活动延误1天,都会把项目最早完工时间从13天推迟到14天,除非项目通过压缩工期、增加资源或调整逻辑关系进行补救。
| 活动 | 工期 | ES | EF | LS | LF | 总时差 | 判断 |
|---|---|---|---|---|---|---|---|
| A | 2 | 0 | 2 | 0 | 2 | 0 | 关键活动 |
| B | 3 | 2 | 5 | 2 | 5 | 0 | 关键活动 |
| C | 4 | 2 | 6 | 4 | 8 | 2 | 非关键活动 |
| D | 5 | 5 | 10 | 5 | 10 | 0 | 关键活动 |
| E | 2 | 6 | 8 | 8 | 10 | 2 | 非关键活动 |
| F | 2 | 10 | 12 | 10 | 12 | 0 | 关键活动 |
| G | 1 | 12 | 13 | 12 | 13 | 0 | 关键活动 |
4. 不要把“总时差为0”理解成永远不变
关键路径会随着实际进度、工期调整、资源安排和依赖关系变化而变化。假设C从4天延长为6天,C到E的路径总长度将增加2天,可能与A-B-D路径一样长,项目就可能出现两条并列关键路径。此时只盯住原来的A-B-D-F-G,会漏掉新的进度风险。
因此,关键路径应当被视为动态监控结果,而不是项目启动会上画完就归档的静态图片。对于持续数月甚至数年的项目,我建议至少在里程碑评审、范围变更、关键资源调整和重大延期后重新计算一次。

五、从案例数据看,AON图如何帮助项目经理做取舍
1. 用“路径总工期”而不是“部门忙碌度”安排管理精力
在本案例中,页面设计和内容准备都从第2天开始,但两条路径的结果不同。A-B-D路径耗时10天,A-C-E路径耗时8天。联调测试必须等待两条路径汇合,因此项目总工期由更长的A-B-D路径决定。
这意味着项目经理不应该平均分配关注度。页面开发D虽然只有一个前置任务,却是关键路径上的5天活动;内容准备C工期更长,为4天,但仍有2天时差。若资源有限,我会优先确保开发资源、设计评审和测试环境不阻塞D,而不会因为C看起来耗时较长,就把全部精力投向内容团队。
2. 用总时差安排资源,而不是简单压缩所有任务
当项目要求提前1天上线时,最直接的反应往往是让所有团队加班。但这通常不是最优方案。AON图显示,C和E合计有2天时差,A、B、D、F、G没有时差。项目经理可以先评估是否能够把C的内容准备提前,或者让E与部分测试准备工作重叠,再决定是否压缩关键路径上的活动。
这是一种重要的取舍逻辑:优先消除关键路径上的等待,再考虑增加人力;优先利用已有时差,再考虑全面加班。如果关键活动本身是技术瓶颈,增加人员还可能带来沟通成本,反而使工期变长。
3. 识别“看不见的等待”比识别任务更有价值
很多项目延期并非发生在活动执行期间,而是发生在活动之间。例如设计文件已经完成,但开发排期要等两天;开发已经完成,但测试环境尚未准备;内容已经录入,但发布审批没有明确负责人。AON图可以把这些等待拆成独立活动或明确的依赖关系,让隐性时间成本进入计划。
如果一项等待时间稳定存在,并且会影响关键路径,我会把它显式建模,而不是把它藏在活动工期里。这样做的好处是:当审批人、环境或外部供应商发生变化时,项目团队能够知道延期究竟来自哪一个环节。

4. 当关键路径有多条时,管理难度会明显上升
单一关键路径时,项目经理可以集中管理一条主链;出现两条或更多并列关键路径后,任何一条路径上的延误都可能推动项目结束日期。此时不能只压缩其中一条路径,因为另一条路径仍然会成为新的瓶颈。
我的处理方式是先确认并列路径是否真实存在,再分别标注路径上的资源、外部依赖和风险等级。如果两条路径共享同一个资源,例如同一名架构师同时负责两个关键活动,那么表面上的并行并不成立,网络图还需要加入资源约束。
六、不同项目规模下,AON图应该怎么用
1. 小型项目:用表格加手工网络图
对于活动数量不超过15项、参与人员较少、依赖变化不频繁的项目,Excel或常规流程图工具已经足够。重点不是购买复杂软件,而是保持活动编号、工期、前置关系和计算口径一致。
小型项目可以采用以下工作方式:先用表格维护任务清单,再用流程图工具绘制AON图,最后增加ES、EF、LS、LF和总时差列。只要每次变更都同时更新表格和图,就能避免“图已经改了、计算表却没改”的问题。
2. 中型项目:使用可自动计算依赖的项目管理工具
当活动数量达到几十项,或者项目有多个团队、多个里程碑和频繁变更时,手工维护就容易失控。此时应选择能够维护前置关系、自动重排计划、显示关键路径并保留变更记录的项目管理工具。
工具选型时,我更关注四项能力:依赖关系是否支持批量调整,日历是否能够区分工作日与自然日,关键路径是否能随工期变化自动刷新,历史基线是否可以对比。仅能画图但不能计算的工具,适合汇报,不适合承担计划管理。
3. 中大型企业:重点看权限、部署和迁移能力
中大型企业的难点通常不在于能否画一张AON图,而在于多个项目、多个组织和多套流程如何长期维护。项目计划可能涉及研发、市场、采购、法务和外部供应商,工具必须处理权限隔离、组织协同、审计记录、数据安全和跨项目资源冲突。
以PingCode为例,它主要服务中大型企业及100人以上组织,支持私有化部署,也支持从Jira平滑迁移。在需要国产替代、数据不便出域或已有大量研发项目数据的组织中,这类能力比“能否拖出一个方框”更值得评估。这里需要强调,平台可以帮助企业维护任务依赖和项目进度,但前置关系仍然必须由业务团队确认。
4. 工程项目:AON图要与日历、资源和合同节点结合
工程项目中,AON图不能脱离现场条件。天气、材料到货、分包商进场、验收签字和安全许可,都可能成为真实前置条件。一个“设备安装”节点如果没有把材料到货和基础验收纳入依赖关系,网络图的计算结果就会明显偏乐观。
工程场景还要特别区分自然日和工作日。例如混凝土养护可能以自然日计算,而施工班组工期按工作日计算。项目经理应在任务表中明确日历类型,不能把所有活动简单套用同一个工期单位。
| 项目情况 | 推荐做法 | 主要取舍 |
|---|---|---|
| 5至15项活动,变化少 | 表格加流程图 | 成本低,但依赖变化需要手工维护 |
| 20至100项活动,多团队协作 | 具备自动排期能力的项目管理工具 | 效率更高,但需要统一编码和流程 |
| 100人以上组织,多项目并行 | 关注权限、基线、审计和跨项目资源 | 实施成本更高,但适合长期治理 |
| 工程或强合规项目 | 结合日历、审批、合同和现场条件 | 计划精度更高,但数据维护要求更严 |

七、AON图与AOA图、甘特图的边界
1. AON与AOA的核心区别
AON把活动放在节点中,用箭头表示依赖;AOA通常把活动放在箭线上,节点更多用于表示事件或状态。两者都可以用于网络计划和关键路径分析,但表达方式不同,不能把一张图的符号规则混用到另一张图中。
| 对比项 | AON图 | AOA图 |
|---|---|---|
| 活动位置 | 节点或方框 | 通常位于箭线 |
| 节点含义 | 一项具体活动 | 事件、状态或里程碑 |
| 依赖表达 | 箭头连接活动节点 | 通过事件节点组织活动顺序 |
| 初学者易错点 | 把多个前置任务漏连 | 不理解虚拟活动的使用 |
| 适用优势 | 活动关系直观,便于软件建模 | 事件逻辑清晰,适合特定网络分析 |
2. AON图与甘特图不是替代关系
AON图回答“谁依赖谁、哪条路径决定工期”;甘特图回答“每项任务在日历上的开始和结束时间”。前者更适合分析逻辑,后者更适合跟踪排期和执行状态。项目管理实践中,二者通常应该结合,而不是二选一。
例如,AON图计算出C有2天总时差,甘特图则可以把C安排在第2天至第6天,也可以根据内容团队资源情况安排在第4天至第8天。AON图给出可行时间窗口,甘特图把这个窗口落实到具体日历。
3. 什么时候不必绘制完整AON图
并非所有工作都需要完整网络图。如果只是安排一次两小时的内部会议,列出议程和负责人通常已经足够。AON图适合用于存在多个活动、前置关系、并行任务和交付期限的项目。
如果项目只有单一串行流程,AON图的分析价值也有限。此时简单的任务清单或甘特图即可。我的建议是:当“等待关系”开始影响排期时,再引入AON图;当“路径计算”开始影响资源决策时,再引入关键路径法。

八、用项目管理平台落地AON图时,应该如何判断是否值得
1. 先看依赖变化,而不是先看界面功能
项目管理平台的核心价值,不是把AON图画得更精致,而是当某项活动延期、提前或被拆分时,系统能否沿依赖链自动反映影响范围。选型演示时,我建议现场修改一个关键活动的工期,观察后续任务、里程碑和关键路径是否同步变化。
如果平台只能保存静态图片,项目经理仍然需要手工修改每个后续日期,那么它更像汇报工具。真正适合计划管理的平台,应至少支持活动依赖、工作日历、基线对比、负责人和状态更新。
2. 中大型企业要验证迁移和私有化边界
已有研发项目、缺陷数据和历史计划的组织,迁移成本往往比采购成本更容易被低估。验证时要问清楚:旧系统中的任务、负责人、状态、依赖关系和附件能否迁移;字段映射是否可配置;历史数据能否保留;迁移后关键路径计算口径是否发生变化。
对于数据安全要求较高的企业,还应确认私有化部署的基础设施、升级方式、备份策略和运维责任。PingCode支持私有化部署,并支持Jira平滑迁移,这类能力适合被纳入国产替代评估,但不能因为“支持迁移”四个字就跳过小范围试迁。
3. 用一个真实项目做试点,而不是只听产品介绍
平台试点最好选取一个有真实依赖和变更记录的项目,活动数量建议在30至80项之间。太小看不出协同能力,太大又难以控制试点变量。试点期间至少记录三类数据:计划调整次数、人工更新耗时、延期影响识别时间。
例如,原本需要项目经理每周花6小时整理任务状态、更新后续日期和确认延期影响。如果平台自动化后降到2小时,节省的是4小时维护时间;但如果团队仍不愿更新前置关系,系统的计算结果依然不可靠。因此,工具效果应拆分为“系统能力”和“执行纪律”两部分评估。
| 评估维度 | 建议验证问题 | 不通过时的风险 |
|---|---|---|
| 依赖计算 | 修改一个活动工期后,后续日期是否自动更新? | 关键路径仍需手工维护 |
| 基线管理 | 能否比较原计划与当前计划? | 无法判断延期从何时开始 |
| 组织权限 | 不同团队能否看到并编辑各自范围? | 数据过度暴露或无法协作 |
| 部署方式 | 是否满足私有化、备份和审计要求? | 采购后出现合规阻塞 |
| 迁移能力 | 历史任务、依赖和附件能否保留? | 切换成本高,团队被迫重复录入 |

九、不同情况下的行动建议与取舍
1. 如果你是学生或项目管理初学者
先不要急着学习复杂软件。按照本文案例,手工完成一张任务表、一张AON图和一张时间计算表。只要能解释为什么F的ES取10而不是8,为什么C有2天时差,就已经掌握了关键路径法最重要的逻辑。
练习时建议改变一个变量,例如把E的工期从2天改为4天,再重新计算。你会看到E的EF从8变成10,但项目总工期仍然可能维持13天;如果继续把E延长到6天,A-C-E路径就可能成为新的关键路径。这种“改数据、看结果”的练习,比背诵定义更有效。
2. 如果你是项目经理
把AON图当作项目启动时的依赖审查工具,而不是汇报附件。召集设计、开发、内容、测试和业务负责人,逐条确认活动的完成条件。对每个关键活动记录负责人、外部依赖、风险信号和补救方案。
每次出现范围变更或关键活动延期,都重新检查三件事:关键路径是否变化,原有时差是否被消耗,是否出现新的资源冲突。对于总时差为2天的活动,不要把这2天当成“可以随便拖延”的额度,而要把它视为项目缓冲。
3. 如果你负责企业工具选型
先定义业务问题,再定义产品功能。若主要问题是任务分配和状态收集,轻量级工具可能已经足够;若问题是跨团队依赖、版本基线、变更影响和多项目资源冲突,就应评估更完整的项目管理平台。
在中大型组织中,部署、权限、迁移和审计往往决定长期使用效果。以PingCode为例,私有化部署和Jira平滑迁移可以降低部分切换障碍,但实际采购仍应通过真实项目试点验证数据完整性、计算准确性和团队接受度。
4. 如果项目正在延期
不要先问“哪个团队需要加人”,而要先把当前项目重新画成AON图。将已完成、进行中、未开始和阻塞状态标出来,再重新计算剩余路径。原项目启动时的关键路径,未必仍然是当前的关键路径。
延期处理通常有四种手段:压缩关键活动工期、增加资源、调整活动重叠方式、重新协商交付范围。每种手段都有代价,不能只看日历上的提前天数。
| 处理方式 | 可能收益 | 主要代价 | 适用条件 |
|---|---|---|---|
| 增加关键活动资源 | 缩短执行工期 | 成本上升,沟通复杂度增加 | 工作可拆分,新增人员能快速上手 |
| 让活动部分重叠 | 减少等待时间 | 返工和质量风险上升 | 前置成果可分阶段交付 |
| 调整依赖关系 | 释放并行空间 | 可能改变验收和责任边界 | 业务允许阶段性产出 |
| 缩减或分批交付范围 | 快速保护上线日期 | 用户价值或收入目标可能下降 | 核心功能可以独立发布 |
| 全面加班 | 短期增加投入时间 | 疲劳、质量和人员流失风险 | 只适合作为短期应急方案 |

十、AON图绘制完成后的检查清单
1. 逻辑检查
- 每项活动是否都有明确的完成条件?
- 没有前置任务的活动是否确实可以在项目开始时启动?
- 有多个前置任务的活动是否连接了全部必要前置活动?
- 并行活动是否真的不互相等待?
- 图中是否存在循环依赖或孤立节点?
2. 时间检查
- 所有工期是否使用同一种时间单位?
- ES、EF、LS、LF是否按照同一时间起点计算?
- 多前置活动的ES是否取最大EF?
- 逆推时,汇合前的活动是否取后续活动LS中的最小值?
- 总时差是否满足LS-ES和LF-EF两种计算结果一致?
3. 管理检查
- 关键路径上的每项活动是否都有明确负责人?
- 关键活动是否存在外部审批、采购、环境或资源依赖?
- 非关键活动的时差是否已经被其他变更消耗?
- 项目延期后是否重新计算过关键路径?
- 计划是否记录了基线,便于比较原计划和当前计划?
我在实际评审中最看重最后一项:团队能否用自己的话解释每条箭头。如果负责人只能说“系统就是这么连的”,却说不清前置条件,说明这张图还没有成为团队共同认可的计划模型。

十一、结语:真正提升效率的不是画图速度,而是减少错误等待
掌握项目管理AON图,最值得记住的不是某个方框样式,也不是一条固定公式,而是一套顺序:先拆活动,再确认前置关系;先画网络,再做正推和逆推;先找总时差为0的路径,再决定资源和延期处理方案。
本文示例中,19天的活动工作量通过并行关系压缩为13天的项目工期,但这13天并不是凭经验拍出来的,而是由A-B-D-F-G这条关键路径决定的。C和E虽然不在关键路径上,却拥有有限时差,并不意味着它们可以无限延后。
AON图的独特价值,在于把“感觉会延期”变成“哪项活动、影响几天、通过什么方式补救”的可计算问题。下一步可以把自己的项目任务整理成四列:活动编号、工作内容、工期、前置活动。先手工完成一次ES、EF、LS、LF计算,再决定是否需要某项目管理工具或项目管理平台进行自动化维护。只要这一步做对,后续的甘特图、里程碑计划和延期分析都会更可靠。
常见问题解答(FAQ)
1. 项目管理AON图怎么画?5步具体是什么?
我第一次画AON图时,以为只要把任务写进方框、再用箭头连起来就完成了。真正让我反复返工的是没有先确认前置关系,结果把两个可以并行的任务误画成了串行,项目总工期被多算了4天。
绘制AON图,建议不要从画图软件开始,而要从任务清单开始。AON的核心是Activity-on-Node,也就是把活动放在节点中,箭头只表示活动之间的先后依赖。我实际处理小型项目时,会固定使用以下5步: 第1步:列出活动、工期和编号。每项活动至少写清楚名称、持续时间和唯一编号。
不要把“完成整个项目”作为一个活动,否则后续无法拆解依赖关系。第2步:填写前置活动。先回答“这项工作必须等什么完成后才能开始”,而不是根据任务名称或部门顺序猜测。前置关系错了,后面所有关键路径计算都会失真。第3步:放置没有前置任务的活动。这些活动连接到开始节点。
若有多个首批活动,它们可以从同一个开始节点分支,而不必强行排成一条线。第4步:按依赖关系连接后续活动。如果B和C都只依赖A,那么A完成后,B和C应分别展开,表示它们可以并行推进。如果F同时依赖D和E,就必须让D、E两条线都指向F。第5步:补充结束节点并检查网络。
检查是否存在孤立活动、错误箭头、循环依赖,以及是否每项活动都能从开始节点走到结束节点。图形是否漂亮并不重要,依赖逻辑能否被复核才重要。
可以先用下面这张表整理数据,再开始绘图: 活动工作内容工期前置活动 A明确需求2天无 B页面设计3天A C内容准备4天A D页面开发5天B E内容录入2天C F联调测试2天D、E G发布上线1天F 这组任务最终应形成A分支到B、C,再分别连接D、E,最后汇合到F并进入G。
绘图时先处理逻辑,再调整节点位置,能显著减少返工。
2. AON图中一个活动有多个前置任务时,应该如何计算开始时间?
我在计算网络图时最容易犯的错误,是把多个前置任务的完成时间相加。比如联调测试同时依赖开发和内容录入,我一开始把两条路径的时间都加进去了,导致项目工期被虚增。
当一个活动有多个前置任务时,后续活动的最早开始时间ES,取所有前置活动最早完成时间EF中的最大值,而不是把它们相加。原因很简单:多个前置任务通常是并行执行的,后续活动只需要等待最后一个完成的前置任务。只有在任务明确要求串行执行时,才会把工期沿着同一条路径累加。
仍以页面上线案例为例,D的工期为5天,E的工期为2天。正推计算结果如下: 活动工期前置活动ESEF A2无02 B3A25 C4A26 D5B510 E2C68 F2D、E1012 G1F1213 F的ES不是10加8,而是取D和E的EF较大值,也就是10。
因此F在第10天可以开始,项目最早在第13天完成。这里还有一个容易忽略的口径问题:有些教材从第0个时间点开始计算,有些排期表从第1天开始显示。两种方法都可以,但必须全文统一,否则读者会发现结果相差一天。我的检查方法是:遇到多个前置任务,先问“它们能否同时做”,再看哪个完成得更晚。
若任务可以并行,取最大值;若任务必须串行,则应拆成明确的连续依赖,不能仅靠计算时临时相加。
3. 如何通过AON图判断关键路径?关键路径是不是工期最长的单个任务?
我以前把关键路径理解成项目里耗时最长的那项工作,直到把一个有并行分支的项目算完,才发现这个判断完全不够。真正影响完工日期的,是从开始到结束的完整路径,而不是某一个任务的工期大小。
关键路径是从项目开始到结束、累计工期最长的一条活动路径。它决定项目在当前依赖关系和工期假设下的最早完工时间,不能简单等同于“工期最长的单项任务”。在案例中,主要有两条路径: A,B,D,F,G的总工期为2+3+5+2+1=13天;A,C,E,F,G的总工期为2+4+2+2+1=11天。
因此第一条路径是关键路径。为了避免只凭直觉判断,还要做逆推并计算总时差: 活动ESEFLSLF总时差 A02020 B25250 C26482 D5105100 E688102 F101210120 G121312130 总时差可以用“LS-ES”或“LF-EF”计算。
A、B、D、F、G的总时差均为0,所以它们组成关键路径;C和E各有2天缓冲。但不要把“总时差为0”理解成任务永远不能调整。项目实际执行后,工期估算、资源安排和依赖关系都会变化,原本有2天缓冲的分支可能变成新的关键路径。因此关键路径应随着项目进度定期重新计算,而不是在立项时算一次就永久不变。
复杂项目还可能出现两条或多条同样长的关键路径。此时只盯住其中一条,会低估项目延期风险,应该把所有总时差为0的路径纳入监控。
4. 画AON图用Excel、Project还是流程图工具?小型项目应该怎么选?
我测试过几种做法后发现,工具选择并不能弥补错误的任务依赖。用流程图工具画出来的图最直观,但任务一多就难以维护;用表格计算更容易复核,却不适合频繁变更的项目排期。
选择工具时,先看项目规模、依赖关系是否经常变化,以及是否需要资源和进度跟踪,而不要先看软件功能列表。如果只是课程作业、培训演示或10项以内的小项目,表格加流程图工具通常已经够用。表格负责维护活动、工期、前置关系和ES、EF、LS、LF,流程图工具负责呈现结构,这种组合最容易发现逻辑错误。
工具方式适合场景优势主要限制 表格小型项目、手算验证公式透明,便于复核依赖变化后需手动维护 流程图工具汇报、培训、结构展示节点和箭头直观通常不能自动重算关键路径 专业项目管理工具多活动、频繁调整、资源跟踪可联动排期、基线和进度前置关系错误时会自动放大错误结果 我建议先用表格完成一次人工计算,再把数据录入某项目管理平台。
这样做看似多了一步,实际上能避免把软件生成的日期误认为正确答案。软件擅长计算,不擅长判断“内容审核是否真的必须等设计完成”。无论使用什么工具,都要重点检查四类错误:把并行任务画成串行;多个前置任务只连接一个;混用自然日和工作日;以及出现循环依赖。
尤其是循环依赖,常见于“测试依赖开发完成、开发又依赖测试反馈”的描述,必须拆分成不同阶段,例如“首轮测试”和“缺陷修复”。如果项目活动超过十几项,或者每周都会调整工期和依赖关系,建议使用能自动更新网络计划的专业工具;如果只是要向团队解释项目逻辑,流程图工具反而更轻便。
工具的最佳选择,取决于你是要计算和跟踪,还是要展示和沟通。
核心关键词
原创文章,作者:飞飞,如若转载,请注明出处:https://worktile.com/solution-1/archives/28932
读者评论
文章把AON图从绘制、正推到逆推讲得比较完整,尤其是多前置任务取最大EF这一点,对避免计划虚假提前很有帮助。示例结构清楚,适合项目管理初学者复算。
内容对“工作顺序”和“依赖关系”的区分很实用,也提醒了自然日、工作日口径不一致的问题。不过实际大型项目还需结合资源冲突和风险缓冲,不能只看关键路径。
示例项目通过设计与内容准备并行,直观说明了关键路径如何压缩工期。任务表和时间参数较容易照着操作,适合作为培训材料或项目计划检查清单。