跳到主要内容

关键路径法

我们将探讨项目越来越复杂的原因、关键路径法(CPM)的基础知识以及使用关键路径法来节省资源的方法。

项目难题时有出现

工作难题出现的频率要超乎我们的预期。假设你正在管理一个2人或3人的团队。你和另一个团队成员之间只有一种联系。 如果一个项目共有3个人,那么你共有3种联系:一个是你与人员A之间的联系,一个是你与人员B之间的联系,还有一个是人员A与人员B之间的联系(见图15) 。如果事情都这么简单就好了!一个项目共有4个人,那么就会有6种联系;有5个人,就会有10种联系;如图16所示。

项目难题时有出现

一个项目共有6个人,就会有15种联系;有7个人,就会有21种联系。因此,当项目的人数超过5时,相互联系的种类数量就会迅速增长,甚至可能变得难以把控。

假设某种重要的物品出现短缺,需要在项目人员之间共用;这是一种项目限制,即经常会短缺的关键项目要素,如资金、时间和人力资源等。 再加上一些其他的资源限制,如项目团队成员只能在特定时间使用某种特定的设备,以及需要在特定的时间对该设备进行维护。 如果由于设备正处于维修时期而无法使用,那么这也可能是一种主要限制!

现在再加上第二种所需的资源,例如对数据库的访问,以及对正在进行的调查或另一种设备的依赖。 由于项目团队人员众多,同时还有时间、金钱或资源的限制,有效的管理就变得非常复杂。

有些任务的启动需要依赖于先前任务的完成,这样就会形成各种瓶颈或障碍,造成项目工作效率低下。 随着所需项目资源的不断增长,项目复杂度不一定要归咎于任何人;相反,它往往是各种限制、关联性和依赖性的结果。

甘特图是一种很有价值的工具,特别是对于那些团队成员较少、接近尾声和限制较少的项目。 对于涉及很多人员、资源和限制的长期大型项目来说,项目经理需要使用更复杂的工具来维持管理。

关键路径法(CPM)和评审技术(PERT)

关键路径法(CPM)是杜邦公司(Dupont Incorporated)于1957年发明的一种方法。即使你个人不需要参与CPM分析,了解其基本原理也是很有意义的。 项目中的CPM是耗时最长的路径。根据定义,关键路径是没有浮动性的。如果你在关键路径上落后于进度,那么整个项目就会落后于进度。

第二种项目管理方法是项目评审技术(PERT),与CPM有些类似,但更为复杂。 PERT是1958年由博思艾伦咨询公司(Booz-Allan Hamilton)和洛克希德公司(Lockheed Corporation)联合美国海军在北极星潜射核导弹项目中研制的一种管理方法。 该方法对项目工作的完成进度进行一定程度的控制,这种控制对很多项目来说极其重要,尤其是大型项目。

项目经理将使用PERT指明一项或一组任务,即确定工序,这对项目的成功至关重要。 PERT图实际上描述了一种估算任务工期的三点法,通常分为最乐观工期、最可能工期和最悲观工期。通过这种估算方法,项目经理能够更好地掌握项目的实际进度。

我们会在本章适当探讨CPM,CPM是一种有效的项目管理方法,使项目经理能够监控各种项目进度的影响。例如:

如果一项关键任务推迟了几天,并最终与下一项关键任务同时开始,怎样确定孰先孰后?由于有两项关键任务,那么推迟的任务必须在另一项任务开始前完成。

让项目人员在一项任务上多耗费3天时间会造成什么影响?如果该项任务在关键路径上,那么将会导致其他关键任务延迟3天。

如果一项非关键任务推迟了两周,会有什么影响?这取决于该项非关键任务有多少浮动时间。如果它有16天的浮动时间,那么最终还会剩余2天的浮动时间。

提示

需要强调的是:关键任务是指关键路径上的单个任务。非关键任务是指CPM网络中有浮动时间的一项任务。浮动时间是指完成某项特定任务的时间间隔。

大有可为

项目经理使用CPM来压缩项目时间表,方法是确定哪些任务可以同时进行;这种方式很有价值,因为根据最初的计划,这些任务可能需要按顺序来执行。

由于关键路径代表需要花费最多时间完成的路径,因此它不包含浮动时间。关键路径上的延迟会影响整个项目,而非关键路径上的任务的完工时间可以有一些浮动。 因此,与承担关键路径任务的团队成员相比,承担非关键路径任务的团队成员可能不必像前者那样马不停蹄地赶工。 然而,如果承担非关键路径任务的团队成员不够谨慎,他们的任务总工期可能会超过关键路径上的任务工期。 同样,他们也可能造成项目落后于计划。

为项目创建一个工作分解结构(WBS)。图17是我们的示例,工期以分钟为单位。

CPM

在本例中,需要最多时间的路径是任务10,即到郊游地点的40分钟车程。

根据WBS中的信息,创建一个如图18所示的流程图。请注意,在此流程图中,有些任务可以同时进行。比尔的任务和艾丽卡的任务如下图所示。

CPM

黑色线条表示方框之间的关系。

例如,“准备三明治“ 和 “准备水果“ 是通过一条细线连接起来的。比尔的任务 “制作饮料“ 与艾丽卡的任务 “准备篮子“ 由一条粗线连接在一起,稍后我们将讨论这个问题。

比尔和艾丽卡的任务都指向 “收集运动装备“。

由于 “制作饮料“ 需要30分钟,而艾丽卡的任务分别需要20分钟和4分钟,“制作饮料“ 代表了这个项目的关键路径,由比尔的第一个活动和第二个活动之间的黑线表示。

艾丽卡的路径有6分钟的浮动时间。如果她晚开始了几分钟,或者在两个任务之间逗留了一两分钟,只要她的总浮动时间不超过6分钟,她仍然能够赶在比尔前完成任务。 可以想象的是,在每项任务上多花一两分钟时间,她仍然可以赶在比尔前完成任务。但如果她松懈的时间等于6分钟,她就会和比尔同时完成任务。

上面描述的整个项目的关键路径可以通过以下方式进行跟踪:

  • 确定哪些任务是同时发生的。
  • 注意哪项任务花费的时间较长。
  • 规划穿过这些任务的关键路径。
  • 计算整个关键路径的总长度。

按以上关键路径法,整个项目的持续时间是100分钟。目前为止,这个项目听起来很简单,对吧?

那么,让我们将所学的知识付诸实践吧:对于此项目或任何其他类型的项目,请检查关键路径任务的最早开始时间。 然后确定非关键路径任务的最早开始时间。图19的第2列显示了比尔和艾丽卡各自的任务以及合并任务的最早开始时间。

CPM

第3列显示任务2、3和5的延迟开始时间,前两个任务由艾丽卡处理,后一个任务由比尔处理。

如第4列所示,任务2、3和5的总空闲时间(即各种任务在不延迟项目完成的情况下可以延迟的累计时间总和) 分别为6分钟、6分钟和2分钟。

在计算可接受的最晚开始时间时,从右向左进行计算。关注关键路径,如果整个项目需要100分钟,那么最后一个任务(开车去郊游) 的最晚开始时间是第60分钟。 这是由项目的总时间100分钟减去40分钟的驾车时间得出的。

同样,“装车“ 和 “加油“ 任务也需要分别在第40分钟和第48分钟开始。驾车从第60分钟开始,需要在加油站停车12分钟。 因此,60-12=48。也可以用类似的方式计算出其他值。

非关键路径可接受的最晚开始时间的计算也是从右向左进行,类似于上文所述的计算方式。 浮动时间的计算方式是可能的最晚开始时间减去确定的最早开始时间。即第3列的值减去第2列的值,得出第4列的值,即浮动时间。

当两个项目团队成员同时进行各自项目时,则会出现浮动时间。当两个团队成员同时开展一个项目活动时,则没有浮动时间,共同的活动处于关键路径上。

如果事情有变呢

如果比尔在30分钟内完成了任务1 “制作饮料“,而艾丽卡也按计划完成了自己的任务,那么在整个项目关键路径上最多可以减少6分钟。 如果艾丽卡在指定的最早时间开始努力工作,并按原计划在第24分钟完成任务,她也许可以帮助比尔完成一些子任务,从而成功完成任务1。 她的帮助可能会节省几分钟的项目总时间。

相反的情况也可能发生。在试图帮助比尔时,艾丽卡可能会把东西洒出来,把配料搞错,或者造成其他的时间延误。 如果是这样,你可以在关键路径的确定时间上加上几分钟,相当于她造成的延迟时间。

由于任务持续时间仅仅只是估算时间,很少有任务可以完全按照计划进行,所以整个项目的时间可能与比尔和艾丽卡最初估算的时间相差很大。 他们可以在任务5、8和9上节省一两分钟时间;与此同时,在这个晴朗的周六早上,交通堵塞可能会将40分钟的车程变成50分钟。

节省下来的时间往往少于丢失的时间。在许多项目中,有些任务总是会妨碍项目经理的进度,并且需要比计划多耗费20%到50%的时间。 项目经理可以找其他人协商,并同时进行自上而下和自下而上的规划,也许可以避免出现如此大的偏差,但也不是都能避免。

我感到一种渴望,对速度的渴望

在关键路径上,添加更多资源可以缩短整个时间框架。如果一个朋友帮助比尔和艾丽卡把车装好,那么就可以省下一分钟的时间。 这样节省时间的效果并不明显,但是考虑一下一个人帮另一个人搬家所产生的巨大影响。 增加的第二名工人可节省大量时间,特别是在搬运一个人无法轻松处理的笨重物品时,效果更明显。

有时,我们会为特定任务分配额外资源,我们称之为 “赶工“;虽然这个名词有些奇怪,但它有益于推动项目的进展。 “应急时间“ 是指在资源(如项目经理所需的所有设备和资金)没有限制的情况下,完成任务的最短时间。

在《项目管理》一书中,据作者梅雷迪思(Meredith)和曼特尔(Mantel)估计,现实中的项目,只有不到10%的活动能真正称为关键活动。 然而,在CPM的例子中,关键活动通常多于非关键活动!

大多数任务都有几个与之关联的子任务。因此,我们的CPM网络对项目的描述只是一种粗略的概览。进一步检查任务1,假设涉及的子任务之一是 “加糖“。 比尔把饮料搅匀后,加了一汤匙糖,然后喝了一口。甜度够吗?他的主观回答将是 “够了“ 或 “不够“。

如果他得出 “不够“ 的结论,那么他就有了一个新的任务:添加更多的糖。他重新尝了一口饮料,并最终得出结论:甜度够了。 只有到那个时候,他才会开始打包饮料。该活动可以用图20中的流程图来描述。

CPM

如果将在这个 “制作饮料“ 流程图中创建的简单循环合并到图18所示的整个CPM图表中,我们需要增加额外的方框,添加更多的线条, 并从任务1 “制作饮料“ 的方框中引出更多的箭头,从而使整个图表变得更加复杂。

同样,其他任务可以包括相关的子任务(关于“是”与“否”的问题,并重复循环,直到满足条件为止 )。 重复循环会产生更多的延迟,增加CPM分析的复杂度。

建立网络

图18中CPM网络的图表对任务和子任务展开描述,这种描述被称为 “网络图“ 或 “配置“,或者简称为 “网络“。可用的项目软件工具在这方面能提供很大的帮助。

在为简单的项目手动构建网络并同时增强对关键路径图的理解时,你需要反复多次绘制网络,直到你认为自己把所有事情都安排到位了。 然后,你需要征求项目成员对该网络图的意见,让他们对此进行大胆假设,并确保你没有忽略对项目至关重要的任何任务或子任务。

虚任务或虚活动是指CPM网络上表明两个不同类型的智能平行任务之间的关联或关系。 经验丰富的CPM网络绘制者有时会添加一个虚活动来表示两个事件之间的关系,即使实际上并不需要执行任何任务。 项目管理软件能为你提供许多其他类型的图表,有些图表的使用非常便捷。

箭头指向的活动

双代号CPM网络图是描述CPM网络的一种实用类型,如图21所示。

CPM

请注意,这里的关键路径线是连续的,从任务1开始,一直到任务9,而非关键活动代表了关键路径的偏离。 任务由带箭头的线条表示(因此,它们被称为 “箭头指向的活动”) 。任务开始或结束的事件用带圆圈的数字表示。

任务4 “收集毯子” 指向事件6,然后事件6通过一个虚任务(如前所述)与事件5相连,在图中描述为一个带有虚线的箭头指向事件5。 这两种CPM网络图表中的任何一种都能满足项目要求,可根据个人喜好选择。

当变化显而易见,或估算的项目工期需要更改时,手动更新CPM网络可能是一个非常痛苦的过程。 不过,对于软件来说,更新是即时的,就像使用电子表格软件更新现金流分析一样: 你可以即刻更新一些数字、presto查询数据(presto change- o)、月度现金总额甚至年终的现金总额,以显示最新的信息。 借助CPM网络,当你向系统中引入新数据时,屏幕上会立即出现一个新的关键路径配置。

提示

摘自 《小型项目管理:给初级项目经理的完整指南》