信息系统项目管理师之一关键路径分析

活动定义、活动排序以及资源和历时估算的结果就构成了制定项目进度计划的基础。项目的进度计划既是回答每个活动的进度安排,而更重要的是得到有关项目整体的进度信息。制定项目进度计划的工具和方法有:干特图,关键路径分析和PERT估计。

 

这是一种用日历形式来列出项目活动及其活动起止时间的项目图示方法。由于这种图形表示方法最初是由泰勒的同事亨利.干特所发明,所以又被称作干特图。现在大多数项目管理软件都可以自动生成干特图。

在项目的干特图中,有几个特殊的符号需要关注:

任务(Task),用带状的水平横道来代表一个任务,所以有的时候干特图又叫横道图。横道的起点和终点就代表了任务的起止时间,横道的长度就代表了任务的持续时间。

里程碑(Milestone),具有零历时的重要事件。在图中用菱形符号代表。

依赖关系(Dependency),指各个任务之间存在着一定的依赖关系,例如:结束-开始,开始-开始,结束-结束,开始-结束关系。

概要任务(Summary Task),是指的一些任务集合成一个更大的任务,通常代表了任务的不同层级。

 

由于干特图在表示项目进度信息方面简单明了,所以是现在应用最广泛的项目进度表示方法。

 

关键路径分析也称为关键路径法(Critical Path Method),是一种用来预测总体项目历时的项目网络分析技术。所谓“关键路径”,是指当我们完成了项目进度计划后,在项目的网络图上,存在着若干条从项目启动到项目结束之间的路径,但是对其中一条(严格的来说,可能存在一条以上)路径上来说:

        其上所有活动的时间之和就是完成项目的最短历时;

        路径上任何活动的延误都会导致项目时间的延长;

        如果我们想缩短项目历时,就必须缩短这条路径上活动的历时;

这条路径就是项目的关键路径。如下图:

制定进度计划 <wbr>关键路径分析

图 - 2.        关键路径

怎样确定关键路径呢?它实际是项目网络图中(历时)最长的路径。下面我们来下一个定义,一个项目的关键路径:是指一系列决定项目最早完成时间的活动。在关键路径上的活动都很“关键”,因为它们直接决定了项目的进度。每个活动都只有最少的浮动时间或时差。所谓浮动时间或时差是指一项活动在不耽误后续活动或项目完成日期的条件下可以拖延的时间长度。

现在所有的项目管理软件工具都将寻找一个项目的关键路径作为最基本的功能。它是运用某种运算法则来计算而得出项目关键路径信息的。该运算法则被称为正推法和倒推法,这个法则输出的结果就是项目的关键路径,当然也包括项目的总历时和项目中每个活动关于进度的“关键”信息。虽然今天已经很少需要手工计算来得到项目的关键路径了,但是仔细了解一下它的算法将会非常有助于更深刻地理解所得到各项信息的意义。下面我们就来看一下如何用正推法和倒推法来计算项目的关键路径。

正推法和倒推法主要是用来计算有关一个项目活动的:

        最早开始时间(Early Start,简称ES),在条件具备的情况下,该活动可以开始进行的最早可能;

        最早结束时间(Early Finish,简称EF), 在条件具备的情况下,该活动可以完成的最早可能;

        最晚开始时间(Late Start,简称LS),在不拖延项目进度的情况下,该活动可以开始进行的最晚可能;

        最早结束时间(Late Finish,简称LF), 在不拖延项目进度的情况下,该活动可以完成的最晚可能;

如下图所示,对每一个项目活动的这4个参数都是一个时间点。

制定进度计划 <wbr>关键路径分析

图 - 3.        正推法和倒推法的活动参数

所谓正推法就是从项目的第一个活动到最后一个活动跟踪全部活动的先后关系,计算出每个活动的最早开始时间(ES)和最早结束时间(EF)。

所谓倒推法则是从最后一个活动开始向前追溯到第一个活动,计算出每个活动的最晚开始时间(LS)和最晚结束时间(LF)。

 

正推法的计算过程包括四步:

步骤一:设定项目的第一个活动的最早开始时间是从第一天开始,如图:

制定进度计划 <wbr>关键路径分析

图 - 4.        关键路径正推法的步骤一

步骤二:计算第一个活动的最早结束时间,可以用第一个活动的最早开始时间加该活动的历时减1得出:EF = ES + 历时-1,如图:

制定进度计划 <wbr>关键路径分析

图 - 5.        关键路径正推法的步骤二

步骤三:计算该活动的所有后续活动的最早开始时间(ES):

后续活动的ES=前导活动的EF+1

制定进度计划 <wbr>关键路径分析

图 - 6.        关键路径正推法的步骤三

步骤四:过重复步骤二、三,为项目中的每个活动计算最早开始时间(ES)和结束时间(EF),如图所示:

EF = ES + 历时 – 1

ES = 前导活动EF + 1

制定进度计划 <wbr>关键路径分析

图 - 7.        关键路径正推法的步骤四

但是这里有一种情况需要特别考虑,因为正推法是依赖每个活动的前导活动来决定的,所以如果一个活动存在多个前导活动的话,需要采用前导活动中EF最晚的那个活动来计算该活动的ES。

 

倒推法的计算过程也包括四个步骤,只不过这次你是从项目的结束时间开始。但这里要用到正推法的结果:

步骤一:因为你不能延误项目的完成时间,因此最后一个活动的最早结束时间EF等同于最晚结束时间LF。

制定进度计划 <wbr>关键路径分析

图 - 8.        关键路径倒推法的步骤一

步骤二:计算最后一个活动的最晚开始时间,可以通过用最晚结束时间减去该活动的历时然后加1来得出。

LS = LF – 历时+1

制定进度计划 <wbr>关键路径分析

图 - 9.        关键路径倒推法的步骤二

 

步骤三:每个活动必须在后续活动开始之前完成,因此可以为每个活动计算最晚结束时间。

LF = 后续活动 LS – 1

制定进度计划 <wbr>关键路径分析

图 - 10.    关键路径倒推法的步骤三

步骤四:然后重复第二、三步骤,计算出每个活动的最晚开始时间和最晚结束时间

制定进度计划 <wbr>关键路径分析

图 - 11.    关键路径正推法的步骤四

同样在计算过程中也需要处理一个特殊情况,由于倒推法是依赖每个活动的后续活动来考虑的,所以如果一个活动出现多个后续活动的时候,应该取后续活动中LS最早的那个来计算该活动的LF。

 

事实上在完成倒推法的计算之后,我们得到了每个活动有关进度的关键信息:

        最后一个活动的EF(LF)就是项目可能的最早完成时间,也就是项目的最终进度;

        活动的LS确定了我们需要给该活动提供资源的最晚时间,如果超过了这个时间则意味着可能的项目最早交付时间会被延迟;

        项目中历时最长的路径就是项目的关键路径;

        如果关键路径上的活动历时没有被延误,那么项目进度就不会有延误;

        如果我们要缩短项目的历时,就要缩短该路径上活动的历时;

        我们可以通过公式来计算每个活动的总浮动时间(Total Float)TF = LF-EF,又被称为总时差。它代表了在不影响项目总体进度的前提下,活动可以延误的时间段;

        我们还可以通过公式计算每个活动的自由浮动时间(Free Float)FF(活动X)=后续活动的ES - EF(活动X)- 1。它代表了该活动不影响后续活动而可以被延误的时间。上面所说的总时差是自由浮动时间的一种。总时差是每个活动历时可以延误的范围,并且可以不影响总体项目的进度,而自由浮动时间是指在不延误任何活动最早开始的情况下,项目活动可以延误的时间范围。

 

下面我们来看一个例子的推演,帮助大家更好的理解。如下图是一个小项目的网络图,已经完成每个活动的历史估算,我们需要确定利用正推法和倒推法求出个活动的ES-EF-LS-LF,以及项目的关键路径:

制定进度计划 <wbr>关键路径分析

图 - 12.    例题-推算关键路径

正推法求ES-EF:

步骤一:活动A的ES=1,EF=ES+20-1=20,如下图:

制定进度计划 <wbr>关键路径分析

图 - 13.    例题-推算关键路径正推法步骤一

步骤二:求出以活动A为前导活动的那些活动的ES以及EF。

ES = 前导活动的EF+1  EF = ES + 历时 - 1

如下图:

制定进度计划 <wbr>关键路径分析

图 - 14.    例题-推算关键路径正推法步骤二

步骤三:重复步骤二,计算出所有活动的ES-EF。但对于出现了两个前导活动的活动E来说,由于B的EF晚于D的EF,所以其计算取B的EF。如下图:

制定进度计划 <wbr>关键路径分析

图 - 15.    例题-推算关键路径正推法步骤三

然后我们用倒推法来计算LS-LF。

步骤一:设最后一个活动E的LF=EF。LS = LF – 历时 + 1。如下图:

制定进度计划 <wbr>关键路径分析

图 - 16.    例题-推算关键路径倒推法步骤一

步骤二:计算那些以活动E为后续活动的活动的LF-LS。

LF = 后续活动的LS – 1    Ls = LF – 历时 + 1

如下图:

制定进度计划 <wbr>关键路径分析

图 - 17.    例题-推算关键路径倒推法步骤二

步骤三:重复步骤二计算所有活动的LS-LF。其中活动A有两个后续活动B和C,

 

TF=10

制定进度计划 <wbr>关键路径分析

图 - 18.    例题-推算关键路径倒推法步骤三

现在我们就得到了这个项目的关键路径:A- B-E。对于每一个活动的进度要求信息也很清楚,我们可以看到每个活动的浮动时间。在关键路径上活动的浮动时间都为0,意味着这些活动不能有半点拖延。而活动C和D的浮动时间为10,所以只要延误在10以内就不影响项目的总进度。因此我们可以灵活安排活动C和活动D的资源,可以在这些活动即将开始的时候再安排资源。这些活动也可以在最早开始时间时开始,也可以延后10天才开始,但都不会影响项目的结束。在资源平衡过程中,我们也经常会用到总时差。

实际上,活动C和活动D有10天的浮动时间,并不是意味着每个活动都有10天的浮动时间,而是两个活动共有10天的浮动时间。我们习惯上将活动C的浮动时间扣除掉,即只有活动D有浮动时间。路径CD的浮动时间仅为10天。

 

但是活动C的总时差和活动D的总时差是有差别的。换句话说,就是活动C允许偏离进度的时间和活动D允许偏离进度的时间是有差别的。

如果活动D在第31天开始,这是活动D的最早开始时间,由于活动D有10天的延误时间,那么该活动在第60天结束,那么会不会影响项目的结束呢?回答是:不会。

现在,我们假设活动C 可以准时在第21天开始,并且最晚要在第40天时完成。如果这样的话就不会影响项目的进度。但由于活动C的进度发生偏离,那么会影响项目D不能在最早时间开始和最早时间结束。如果在工作计划中,被安排到活动D的资源的使用时间段为:第31天到第40天。在第40天的时候,这些资源将被撤走,安排到其它的项目中。因为活动C的进度延误将会导致活动D的资源出现短缺,因而活动D也会出现延误,并最终导致项目的延误。因此活动C间接地导致了项目的延误。

在这里我就可以看到总时差和自由浮动时间的区别,例如:

FF(活动C)=31(后续活动最早ES)-30(EF(活动C))- 1 = 0

FF(活动D)=61(后续活动最早ES)-50(EF(活动C))- 1 = 10

因此活动D有10天的自由浮动时间,而活动C没有。

 

问题总结:

1. 关键路径是什么


2. 总时差与自由时差的区别
总时差是指在不延误项目完成日期或违反进度因素的前提下,某活动可以推迟的时间。总时差= LS-ES=LF-EF
自由时差是指在不影响紧后活动最早开始的情况下,当前活动可以推迟的时间。自由时差=( 后一活动)ES-( 前一活动的)EF-1
所以总时差影响总工期,自由时差影响紧后活动。
 
 
3. 如何计算ES,EF,LS,LF
前推法来计算最早时间

某一活动的最早开始时间(ES)=指向它的所有紧前活动的最早结束时间的最大值。
某一活动的最早结束时间(EF)=ES+T(作业时间)

逆推法来计算最迟时间
某一活动的最迟结束时间(LF)=指向它的所有紧后活动的最迟开始时间的最小值。
某一活动的最迟开始时间(LS)=LF-T(作业时间)

 

4.计算关键路径的步骤
1. 用有方向的线段标出各结点的紧前活动和紧后活动的关系,使之成为一个有方向的网络图(PDM)
2. 用正推和逆推法计算出各个活动的ES,LS, EF, LF,并计算出各个活动的自由时差。找出所有总时差为零或为负的活动,就是关键活动
3. 关键路径上的活动持续时间决定了项目的工期,总和就是项目工期。

 

5. 进度压缩的方法
增加人手,聘请更有经验的人员,或找兼职人员
加班
并行
重新估算后面的工期
加强沟通,减少变更
加强控制,避免返工
外包
加强沟通,先完成关键需求
增加资源有时可能压缩工期有限
降低要求或减少项目的范围。

 

原文链接:http://blog.sina.com.cn/s/blog_508ae0b20100tz0f.html

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值