项目进度管理中的“进度网络分析(Schedule Network Analysis)”详解
描述
进度网络分析是项目时间管理的核心技术之一,它通过分析项目活动之间的逻辑关系、估算的活动持续时间以及资源限制,来计算出项目的关键路径、总工期以及各活动的浮动时间。这项技术是制定可靠、可行的项目进度计划的基础,其核心输出是关键路径、总浮动时间和自由浮动时间。
解题/讲解过程
第一步:理解基础概念——进度网络图
在进行分析之前,我们必须先构建一个进度网络图。这个图由节点(代表活动)和箭头(代表活动之间的逻辑依赖关系)组成。
- 活动(Activity):项目中的具体工作任务。
- 依赖关系(Dependency):活动之间的先后顺序联系。主要有四种类型:
- 完成-开始(FS):最常见的关系。活动A必须完成后,活动B才能开始。(例如:墙体砌筑完成,才能开始粉刷。)
- 开始-开始(SS):活动A开始后,活动B才能开始。(例如:地基浇筑开始后,钢筋绑扎可以开始。)
- 完成-完成(FF):活动A完成后,活动B才能完成。(例如:软件编码完成后,技术文档编写才能完成。)
- 开始-完成(SF):较少使用。活动A开始后,活动B才能完成。
第二步:构建网络图并估算时间
假设我们有一个小型项目,包含以下活动(均采用FS关系):
- 活动A:持续时间2天
- 活动B:持续时间4天(依赖于A)
- 活动C:持续时间3天(依赖于A)
- 活动D:持续时间5天(依赖于B和C)
- 活动E:持续时间2天(依赖于D)
我们需要将这些活动按照逻辑关系绘制成网络图。虽然实际中常用前导图法(PDM),但为了简化理解,我们可以用逻辑时序图表示:
[开始] -> A(2天) -> B(4天) -> D(5天) -> E(2天) -> [结束]
[开始] -> A(2天) -> C(3天) -> D(5天) -> E(2天) -> [结束]
第三步:进行正推法(Forward Pass)计算最早时间
正推法是从项目的开始点,沿着网络逻辑流向结束点,计算每个活动最早可以开始和完成的时间。
- 规则:
- 第一个活动的最早开始时间(ES)为0。
- 活动的最早完成时间(EF)= 活动的最早开始时间(ES)+ 活动持续时间(Dur)。
- 后续活动的最早开始时间(ES)= 所有前置活动中最大的那个最早完成时间(EF)。
让我们手动计算:
- 活动A:ES = 0, EF = 0 + 2 = 2
- 活动B:依赖于A。ES = A的EF = 2, EF = 2 + 4 = 6
- 活动C:依赖于A。ES = A的EF = 2, EF = 2 + 3 = 5
- 活动D:依赖于B和C。它的ES必须是B和C的EF中最大的一个。B的EF=6, C的EF=5, 最大为6。所以ES = 6, EF = 6 + 5 = 11
- 活动E:依赖于D。ES = D的EF = 11, EF = 11 + 2 = 13
因此,项目的总工期是13天(活动E的EF)。
第四步:进行逆推法(Backward Pass)计算最晚时间
逆推法是从项目的结束点(总工期已知),逆着网络逻辑流向开始点,计算每个活动最晚必须开始和完成的时间,而不延误项目总工期。
- 规则:
- 最后一个活动的最晚完成时间(LF) = 项目的总工期(或该活动的EF)。
- 活动的最晚开始时间(LS)= 活动的最晚完成时间(LF)- 活动持续时间(Dur)。
- 前置活动的最晚完成时间(LF)= 所有后续活动中最小的那个最晚开始时间(LS)。
让我们手动计算:
- 活动E:LF = 总工期 = 13, LS = 13 - 2 = 11
- 活动D:后续活动是E。LF = E的LS = 11, LS = 11 - 5 = 6
- 活动B:后续活动是D。LF = D的LS = 6, LS = 6 - 4 = 2
- 活动C:后续活动是D。LF = D的LS = 6, LS = 6 - 3 = 3
- 活动A:后续活动是B和C。它的LF必须是B和C的LS中最小的一个。B的LS=2, C的LS=3, 最小为2。所以LF = 2, LS = 2 - 2 = 0
第五步:识别关键路径与计算浮动时间
这是进度网络分析的核心产出。
-
关键路径(Critical Path):这是网络中总浮动时间为零或为负的一系列活动组成的路径。关键路径上的任何延迟都会直接导致项目总工期的延迟。
- 如何找:对比每个活动的ES和LS(或EF和LF)。如果ES = LS(且EF = LF),则该活动的浮动时间为零,它位于关键路径上。
- 在我们的例子中:
- 活动A:ES=0, LS=0 -> 浮动时间=0
- 活动B:ES=2, LS=2 -> 浮动时间=0
- 活动D:ES=6, LS=6 -> 浮动时间=0
- 活动E:ES=11, LS=11 -> 浮动时间=0
- 活动C:ES=2, LS=3 -> 浮动时间≠0
- 因此,关键路径是 A -> B -> D -> E,总工期13天。
-
浮动时间(Float)或时差(Slack):指一个活动在不影响总工期的前提下,可以延误的时间。
- 总浮动时间(Total Float):一个活动从它的最早开始时间起,可以延误的时间,而不影响整个项目的总工期或违反任何进度约束。
- 公式:总浮动时间 = LS - ES 或 LF - EF
- 在我们的例子中:
- 活动C的总浮动时间 = LS - ES = 3 - 2 = 1天。
- 这意味着活动C可以晚开始1天,或者持续时间延长1天,只要不超过其LF(第6天完成),就不会影响13天的总工期。
- 总浮动时间(Total Float):一个活动从它的最早开始时间起,可以延误的时间,而不影响整个项目的总工期或违反任何进度约束。
总结
进度网络分析是一个系统性的、循序渐进的过程。它从定义活动和依赖关系开始,通过正推法确定项目最早可能完成的日期,再通过逆推法确定每个活动最晚必须完成的日期,最终通过对比最早和最晚时间,精准地识别出决定项目工期的“生命线”——关键路径,并量化非关键路径上的活动可以拥有的灵活时间(浮动时间)。项目经理利用这些信息,可以有效地监控项目进度,集中资源确保关键活动按时完成,并灵活调度非关键活动以应对资源冲突或意外情况。