本文主要是介绍信息系统项目管理师之一关键路径分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
活动定义、活动排序以及资源和历时估算的结果就构成了制定项目进度计划的基础。项目的进度计划既是回答每个活动的进度安排,而更重要的是得到有关项目整体的进度信息。制定项目进度计划的工具和方法有:干特图,关键路径分析和PERT估计。
这是一种用日历形式来列出项目活动及其活动起止时间的项目图示方法。由于这种图形表示方法最初是由泰勒的同事亨利.干特所发明,所以又被称作干特图。现在大多数项目管理软件都可以自动生成干特图。
在项目的干特图中,有几个特殊的符号需要关注:
任务(Task),用带状的水平横道来代表一个任务,所以有的时候干特图又叫横道图。横道的起点和终点就代表了任务的起止时间,横道的长度就代表了任务的持续时间。
里程碑(Milestone),具有零历时的重要事件。在图中用菱形符号代表。
依赖关系(Dependency),指各个任务之间存在着一定的依赖关系,例如:结束-开始,开始-开始,结束-结束,开始-结束关系。
概要任务(Summary Task),是指的一些任务集合成一个更大的任务,通常代表了任务的不同层级。
由于干特图在表示项目进度信息方面简单明了,所以是现在应用最广泛的项目进度表示方法。
关键路径分析也称为关键路径法(Critical Path Method),是一种用来预测总体项目历时的项目网络分析技术。所谓“关键路径”,是指当我们完成了项目进度计划后,在项目的网络图上,存在着若干条从项目启动到项目结束之间的路径,但是对其中一条(严格的来说,可能存在一条以上)路径上来说:
l
l
l
这条路径就是项目的关键路径。如下图:
怎样确定关键路径呢?它实际是项目网络图中(历时)最长的路径。下面我们来下一个定义,一个项目的关键路径:是指一系列决定项目最早完成时间的活动。在关键路径上的活动都很“关键”,因为它们直接决定了项目的进度。每个活动都只有最少的浮动时间或时差。所谓浮动时间或时差是指一项活动在不耽误后续活动或项目完成日期的条件下可以拖延的时间长度。
现在所有的项目管理软件工具都将寻找一个项目的关键路径作为最基本的功能。它是运用某种运算法则来计算而得出项目关键路径信息的。该运算法则被称为正推法和倒推法,这个法则输出的结果就是项目的关键路径,当然也包括项目的总历时和项目中每个活动关于进度的“关键”信息。虽然今天已经很少需要手工计算来得到项目的关键路径了,但是仔细了解一下它的算法将会非常有助于更深刻地理解所得到各项信息的意义。下面我们就来看一下如何用正推法和倒推法来计算项目的关键路径。
正推法和倒推法主要是用来计算有关一个项目活动的:
l
l
l
l
如下图所示,对每一个项目活动的这4个参数都是一个时间点。
所谓正推法就是从项目的第一个活动到最后一个活动跟踪全部活动的先后关系,计算出每个活动的最早开始时间(ES)和最早结束时间(EF)。
所谓倒推法则是从最后一个活动开始向前追溯到第一个活动,计算出每个活动的最晚开始时间(LS)和最晚结束时间(LF)。
正推法的计算过程包括四步:
步骤一:设定项目的第一个活动的最早开始时间是从第一天开始,如图:
步骤二:计算第一个活动的最早结束时间,可以用第一个活动的最早开始时间加该活动的历时减1得出:EF = ES + 历时-1,如图:
步骤三:计算该活动的所有后续活动的最早开始时间(ES):
后续活动的ES=前导活动的EF+1
步骤四:过重复步骤二、三,为项目中的每个活动计算最早开始时间(ES)和结束时间(EF),如图所示:
EF = ES + 历时 – 1
ES = 前导活动EF + 1
但是这里有一种情况需要特别考虑,因为正推法是依赖每个活动的前导活动来决定的,所以如果一个活动存在多个前导活动的话,需要采用前导活动中EF最晚的那个活动来计算该活动的ES。
倒推法的计算过程也包括四个步骤,只不过这次你是从项目的结束时间开始。但这里要用到正推法的结果:
步骤一:因为你不能延误项目的完成时间,因此最后一个活动的最早结束时间EF等同于最晚结束时间LF。
步骤二:计算最后一个活动的最晚开始时间,可以通过用最晚结束时间减去该活动的历时然后加1来得出。
LS = LF – 历时+1
步骤三:每个活动必须在后续活动开始之前完成,因此可以为每个活动计算最晚结束时间。
LF = 后续活动 LS – 1
步骤四:然后重复第二、三步骤,计算出每个活动的最晚开始时间和最晚结束时间
同样在计算过程中也需要处理一个特殊情况,由于倒推法是依赖每个活动的后续活动来考虑的,所以如果一个活动出现多个后续活动的时候,应该取后续活动中LS最早的那个来计算该活动的LF。
事实上在完成倒推法的计算之后,我们得到了每个活动有关进度的关键信息:
l
l
l
l
l
l
l
下面我们来看一个例子的推演,帮助大家更好的理解。如下图是一个小项目的网络图,已经完成每个活动的历史估算,我们需要确定利用正推法和倒推法求出个活动的ES-EF-LS-LF,以及项目的关键路径:
正推法求ES-EF:
步骤一:活动A的ES=1,EF=ES+20-1=20,如下图:
步骤二:求出以活动A为前导活动的那些活动的ES以及EF。
ES = 前导活动的EF+1
如下图:
步骤三:重复步骤二,计算出所有活动的ES-EF。但对于出现了两个前导活动的活动E来说,由于B的EF晚于D的EF,所以其计算取B的EF。如下图:
然后我们用倒推法来计算LS-LF。
步骤一:设最后一个活动E的LF=EF。LS = LF – 历时 + 1。如下图:
步骤二:计算那些以活动E为后续活动的活动的LF-LS。
LF = 后续活动的LS – 1
如下图:
步骤三:重复步骤二计算所有活动的LS-LF。其中活动A有两个后续活动B和C,
|
现在我们就得到了这个项目的关键路径: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没有。
问题总结:
总时差是指在不延误项目完成日期或违反进度因素的前提下,某活动可以推迟的时间。总时差= LS-ES=LF-EF
自由时差是指在不影响紧后活动最早开始的情况下,当前活动可以推迟的时间。自由时差=( 后一活动)ES-( 前一活动的)EF-1
所以总时差影响总工期,自由时差影响紧后活动。
前推法来计算最早时间
某一活动的最早开始时间(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
这篇关于信息系统项目管理师之一关键路径分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!