关于实施关键链管理的几点实用性建议(by AMT 王玉荣)

  作者:王玉荣
2001/11/14 13:42:20
本文关键字: 理论探讨 TOC

关键链(Critical Chain)的由Eli Goldratt博士提出的一种基于约束理论的项目管理方法。自提出以来,这种方法已成功指导了多个具体项目取得成功。本文介绍了关键链排产和管理的方法及在具体实践中得出的几点实用性建议。

关于实施关键链管理的几点实用性建议

by AMT 王玉荣  

第一部分:关键链的概念

概述

关键链(Critical Chain)的由Eli Goldratt博士提出的一种基于约束理论(Theory of Constraints)的项目管理方法。自提出以来,这种方法已成功地指导了多个具体项目取得成功。本文介绍了关键链排产和管理的方法以及在具体实践中得出的几点实用性建议。

项目经理(可能也包括其它的所有人)都经常这样的情况:项目脱期、超出预算以及成效不佳等等。为简明起见,本文将把一些重要概念以赛车作一类比。

赛车的比喻

设想一下,你刚刚谋得了一个为赛车公司工作的机会,现在你已经是一名职业赛车手,而且你的第一场赛车即将开始。你有一组训练有素的工程师作为后盾,他们可以协助你判明适合你的是哪一种车,而且这部车要做哪些准备才能使你快速地通过比赛终点线。你的这部车的确是十分漂亮:强有力的引擎、曲线型的车身、精确到位的设计──简直无可挑剔。你已经研究了行车路线,有信心在三个小时以内行完300公里的全程,媒体也为这一消息而兴奋不已。

比赛这天的早晨,就要到出发的时间了。阳光很好,赛车迷们在看台上欢呼着,车手们各就各位了。只听得发令枪一响,一辆辆赛车如离弦的箭一般疾驰而出,人群顿时沸腾起来。你已经冲出了起点线,驶过了那些欢呼的赛车迷,忽然,你第一次意识到一个问题:路面太糟了。视线内的那些坑坑洼洼就象一阵阵惊涛骇浪向你袭来,你的车子在一个个浪尖上剧烈的颠簸。你不禁暗吸了一口凉气。

当然不仅仅你是这样,因为你看到其它行进中的赛车也在剧烈地颤抖。车手们每隔几分钟就不得不停下来上紧螺丝或者替换零件,渐渐地你还注意到有些车已经惨不忍睹地歇在了路旁,其中不乏几部原本非常昂贵的赛车。有时,一些车手停下来从这些车上取下还可以用的零件,装在自己的车上。这时,你也得停车了,要把松脱的传动器紧一下。

你正忙着的时候,忽然有人从身后开车上来,跳下车门就开始从你的油箱里往自己的车里灌油,嘴上还说着,“听着,我的油不够了。你到下一站加油吧,我已经来不及了。”你刚要和他们争辩,他们灌了你的油,开上车就一溜烟得没影了。

当你开着那部曾经令你引以为豪的赛车,蹒跚地通过终点线的时候,已经是暮色时分了。无论你还是你的赛车都裹了厚厚的一层泥。看上去,你的样子着实不敢恭维。那部赛车也好不到哪里去,大部分车身都已不在原位,引擎发出钻头一般的声音,简直令你脑袋都要炸开,一阵阵头痛向你袭来。车迷们早已没了踪影,而且,很难说你的这份工作能否保得住。但无论如何,你还算是幸运的:毕竟是通过了终点线,听上去就是一个奇迹。这一天,真是糟透了。

不久以后,你开始反思这一切。你是一个聪明人,意识到当初不安装减振器也许是一个错误,但话又说回来,减振器自身的重量也不容忽视呀。你的工程师曾建议,车子的每一处都装上套管,防止零件乱作一团。但是当时你没让他们这么做,你说那样会增加车重,让你快不起来。经过反思,你列了一张下次有待改进之处以及相应原因的表格:

  • 所有的零件都在震动;下一次,要多多安装套管和减振器。
  • 找到更有经验的工程师,在汽车部件损坏时能够更快地进行修复。
  • 与其它赛车共用资源,以降低费用。
  • 安装计算机系统,追踪那些缺损的部件并定购新件。
  • 对路面的坑洼段进行统计分析。
  • 雇用一部铺路机,对行车线路中最崎岖的路段进行铺整。
  • 争取更多的预算。

赛车与项目经理

如果你还没有感受到问题的实质的话,下文将进行详细的类比。你就是项目经理,赛车是项目计划,无论你还是项目成员都置身于这个计划之中。汽油和技术后盾是你的资源。路面的坑洼是你执行项目计划的过程中碰到的种种不确定性,这些坑洼所造成的震动就是项目的实际实施效果与原先规划之间的差距与偏离。至于弃于路旁的那些废车呢,当然就是那些半途而废的项目了。别忘了赛车迷,他们就是你的客户。

在赛车中出现的种种场景都可以在实际的项目实施中找到。路面崎岖,其它项目会窃取你的资源,项目不了了之,作为项目经理的你头痛不已。在某些情况下,甚至会更糟:

  • 在整个赛程中,线路一直变来变去。
  • 我们自己的组员窃取了自己资源。
  • 我们当中的很多组员并不在乎这场比赛是赢是输。
  • 只要失去了冠军,哪怕是得了第二名,我们也连一份奖品也拿不到。

为了改变这一切,项目经理们也在反思,他们列出的改进之处与赛车手是如此的相似:

  • 给项目的每个阶段都留有余地,因为每个阶段都可能遭遇不确定性。或许,项目组中的各个成员也是这样来处处留余地的。
  • 常常修改计划。对一个几年完成的项目来说,我们常见到,计划常常是每周都在修改。
  • 与其它项目共享资源。听上去也许不错,但不久就会发现,项目之间经常就资源的问题发生争执,结果每个项目的实施周期都被拖长了。
  • 进行统计分析,来告诉我们那些其实早已知道的信息:我们遇到了大麻烦。
  • 采取重要举措,以规避处处的风险。
  • 花费增加。

这种改进真的奏效吗?就我们的所见,是否个个项目都能够按时地在预算内完成,其成果同时又达到我们的期望呢?据Standish Group(专门进行项目和项目产出研究的公司)的研究,超过30%的IT项目都半途而废,在最终完成的项目当中,又有73%是脱期、超出预算或者成果大打折扣的。平均来说,成本的耗用是原先计划的189%,而项目完成周期的长度是计划的222%。

看来,我们的项目计划并没有取得满意的结果,我们的管理手段往往落得个溃不成军。对

于充当赛车手、工程师以及赛车迷的人来说,他们怎么能愿意接收这一切呢?

赢得比赛

也许你已经有了解决方案:你需要安装减振器,但又不能处处都装上,否则车重将大大增加,使得车速变慢而且花费太多;你已经知道,每个部件在崎岖的路面上都会震动,你必须保护那些关键部件,使他们免受这种不确定性之害。图1给出了一个简单的项目排程。

critical_chain_1.gif 
      
 (3839 bytes)

图1一个简单的项目计划

图中的方框表示项目中的各个任务。如果两个任务在水平方向上直接相连,或者有箭头相连,则表示后项任务的开始依赖于前项任务的完成。例如,在第二个2:CS开始之前,5:HW与3:HW都必须完成。方框中的数字代表完成该任务需要几周的时间;字母代表需要的资源。现有的资源包括:一个程序员(Prog),一个硬件技术员(HW),一个客户服务代表(CS)以及一个工程师(Eng)。

由于这些人力资源可能在其它项目中也有工作,因此他们完成各自任务的时间有着很大的不确定性。为解决这一问题,一个办法是在每处都加上“减振器”,如图2。图中的粗线标出了关键路径(完成时间最长的一条路径)。

critical_chain_2.gif 
      
 (1440 bytes)

图2增加了安全时间的项目计划

现在我们要问,这样的排程是否更合理了呢?答案是否定的,因为:对于硬件技术员仍然处于争用的状态,3:CS一定要在5:HW完成之后才能开始,所以,关键路径上的时间(3+5+8+3=19周)并不能成为整个项目完成所需的真正时间。

步骤1:解决资源的争用

不难想到,首先我们要解决资源争用的问题。本例中,见图3。应注意到以下几点:

critical_chain_3.gif 
      
 (4602 bytes)

图3解决了资源争用的计划

  • 图中没有追加如图2中的安全时间(Safety time),方框中的时间是平均意义上的完工所需时间,“减振器”将在后文插入。
  • 有些任务(如4:Prog)是到最晚开始时间(Late Starts)才开始,而不是在最早开始时间(Eealy Starts)。这是因为,我们只有插入“减振器”时,才会把任务开始时间提前,而现在我们还没有确定“减振器”在哪里插入。
  • 我们没有特别强调某一种“资源平衡”的算法。实际上,尽管我们可以通过某一种算法得出一个“最优”的排程方案,但我们以后遭遇的不确定性仍将使得这种“最优”大打折扣。

图中的排程目前是完工期最短的,但务必注意,仅仅在不存在任何不确定性的情况下才会这样。

步骤2:识别关键链

接下来,为了合理利用“减振器”,我们必须识别出一组任务的集合,这组任务决定了整个项目的周期,我们把这组任务叫做“关键链”(Critical Chain)。

 critical_chain_4.gif 
      
 (7935 bytes)

图4关键链

本例中,可以比较容易地识别出粗线框的任务2:CS,3:Eng,5:HW,3:HW以及2:CS决定了整个项目的周期。之所以这样说,是因为这些任务中的任何一个的延迟,都会造成整个项目的延迟。

步骤3和4:生成缓冲器,并插入适当位置

对于项目经理来说,最担心的就是防止脱期。为了避免这种情况,我们需要在紧挨着客户的地方插入一个“减振器”,如图5。

 critical_chain_5.gif 
      
 (5679 bytes)

图5项目缓冲器

我们称这个“减振器”为“项目缓冲器”(Project Buffer),这段备用时间可以在项目进行中用掉,其长短依统计得出的波动时间的长短而定。这样,客户端就得到了切实的保护,应注意到,这种保护是指向客户的,而不是指向某个任务的。哪怕你还没有生成关键链的排程,这种思想也是非常有用的,简言之就是:风险前移、空闲后移(move risk earlier and slack later)。

通过“项目缓冲器”,客户得到了一定的保护,但仍要考虑项目的其它部分。既然“关键链”中的任务决定了整个项目的周期,何不对他们也有所保护呢?具体这样来做:在每一处非“关键链”上的任务与“关键链”上的任务相连接的地方,插入“减振器”,我们称之为“喂料缓冲器”。

现在,我们得到了一个切实可行的计划,既保证了较短的周期,又考虑了如何避免波动的干扰。那么,在具体实施当中,是否会遇到困难呢?下文我们将讨论这一问题。

第二部分:实施

从表面上看,实施关键链管理不需要激进的举措,特别在有高层管理者支持的情况下。它在逻辑上说得通,并着眼于缩短项目时间和减少花费,那么困难在哪里呢?经验表明,实施供应链管理的最大障碍不在于技术,而来自于人。个人的惰性会表现为不愿改进一贯的做法,尽管事实证明了一贯的做法存在着问题。至于组织的惰性,则可以表现为刚性的组织程序、政策、考核方法以及组织文化。

实施关键链管理,首先要对整个项目建立有效的控制,即建立起“项目网络”(Project Network)。所谓项目网络,是一组任务、资源与关联的集合,用以表述为了完成项目要求应该完成哪些工作以及如何完成。本文中的图示可以看作是简单的“项目网络”。在建立项目网络的过程中,应注意:

  • 建议从项目结束点开始建立“项目网络”,充分考虑“关联”的必要性,即保证:“如果后项任务要完成,必须先完成前项任务。”
  • 确保“项目网络”中的限制条件是真实可靠的。例如,是“必须开始”,而不是“某某愿意开始”。
  • 在同一个时间段给一个人只安排一项工作,否则往往会造成几项工作都脱期。
  • 在制定计划时,不要过度关注于细节。如果某项决策对整个项目的影响不是很大,则不要在上面耗费太多的精力,在决策如何把资源分配给任务的情况下更是如此。如果你说“这项工作需要0.2个赵,0.05个钱和0.9个孙”,那么多半你的安排是事倍功半。

优先级的安排

什么是计划?从负责资源分配的管理者的角度来看,指的往往是这样两张表:一是任务表,在这些管理者看来,这些任务将造成资源的耗用。这张表可能这样表述:“为了完成XYZ项目的设计工作,从4月8日到12日我需要一个机械工程师。”这句话就包含了一个优先级的安排,在排程时要充分考虑。另一张表是实时的优先级安排,往往是来自项目经理或高层管理者。这种安排会如此表达:“马上做这个”或者“XYZ项目为什么没有丝毫进展?”第一张表的变化伴随项目计划变化,可能是一周变动一次;而第二张表,则可能每小时都在变化。

这些表给排程带来了困难,在有新项目上马或者取消某些项目时更是如此。当然,令方方面面都满意是不可能的,许多从事于多个项目的实施的组织或企业就经常陷于争执或混乱的境况中。

在关键链的方法中,由任务排程给出了优先级。排程并不给出每个任务到底花多少时间,因为在波动存在的情况下,我们不可能知道确实的数字。排程也不给出任务的精确开始时间,因为我们无法掌握其前项任务结束的精确时间。这里有一条规则:“当你有了工作,就尽快地把它完成。”在其它条件均相同的情况下,各任务的优先级依据排程中给出的开始时间而定。

在排程的过程中,应以负荷最重的资源(称为“瓶颈”或“鼓”)的能力为指导,我们不必解决所有项目中所有资源的争用问题,但对“瓶颈”的争用问题应格外重视。

除非发生了重大的变故,我们不期望经常重排计划,也就是说不期望优先级经常变化。但是,大大小小的波动是在所难免的,那么是不是只有排程和重排就够了呢?这就是我们要谈的下一个问题。

跟踪:缓冲器管理

只有排程是不够的,我们还需要建立起一套跟踪机制,以监控现实情况的影响。这就好比在你合理的安装了“减振器”之后,你又在每个“减振器”上安装了一个小的传感器,从而你可以监控哪一个部件处于损坏的边缘,然后你就可以在整部赛车分崩离析之前把问题解决掉。

我们这里的跟踪机制称为“缓冲器管理”。针对当前任务进行的状态,我们可以监控多少“缓冲器”已被使用,即减振能力已被耗用了多少。例如,对于图5的排程,4周过去以后,已经完成了4:Prog的任务,第一个2:CS也接近完成。在图6中我们用横杆表示已完成的工作。相对于目前的时刻,4:Prog已提前完成,然而2:CS才接近完成,因此3:Prog就落后了2周多。如果我们把整条关键链向前推进到当前时刻,则最后的2:CS会占去“项目缓冲器”中的两周时间,如“项目缓冲器”中的横杆所示。

 critical_chain_6.gif (9510 
      
 bytes)

图6缓冲器的状态

目前的关键链的延迟意味着,整个项目可能会有所延迟。幸好目前还没有发生整个项目的延迟,而且,我们可以很容易地看到,2:CS和紧接着的3:Eng是最需要加紧的任务。从而,缓冲器为项目经理提供了哪里是值得关注之处。

缓冲器的信息也可以帮助项目经理进行优先级的安排。例如,可否令2:Eng现在就开始,还是令工程师(Eng)等待三周工作的开始?因为三周的工作直接影响到“项目缓冲器”的耗用程度,所以这一三周的工作对于及时的完成整个项目就更为重要。即使2:Eng的工作已经开始了,我们也可以考虑令工程师在3:Eng可以开始的时候切换过来。当有多个项目同时进行时,以上这种信息就尤为重要。

结论

通过把项目计划与赛车相类比,我们明白了:我们以往的排程手段也许存在着很多问题。在排程过程中,有许多人为的、技术的、组织的障碍需要克服。通过关键链管理的方法,我们可以从建立项目网络、确定优先级以及跟踪项目进展等方面,来一一克服这些障碍 

责编:王玉荣
vsharing微信扫一扫实时了解行业动态
portalart微信扫一扫分享本文给好友

王玉荣谈流程

rss订阅
王玉荣女士,西安交通大学计算机学士,上海交通大学管理学硕士,后师从我国系统工程与管理工程领域权威专家、唯一的管理领域工程院院士汪应洛教授攻读博士学位。 获得由国际管理学会颁发的“2006年中国卓越管理专家”称号。 特长领域:管理系统设计与综合提升、流程管理、IT规划、大型项目管理、高级管理培训、约束理论研究
畅享
首页
返回
顶部
×
    信息化规划
    IT总包
    供应商选型
    IT监理
    开发维护外包
    评估维权
客服电话
400-698-9918