关于实施关键链管理的几点实用性建议by AMT王玉荣第一部分:关键链的概念概述关键链(Critical Chain)的由Eli Goldratt博士提出的一种基于约束理论(Theory of Constraints)的项目管理方法。
自提出以来,这种方法已成功地指导了多个具体项目取得成功。
本文介绍了关键链排产和管理的方法以及在具体实践中得出的几点实用性建议。
项目经理(可能也包括其它的所有人)都经常这样的情况:项目脱期、超出预算以及成效不佳等等。
为简明起见,本文将把一些重要概念以赛车作一类比。
赛车的比喻设想一下,你刚刚谋得了一个为赛车公司工作的机会,现在你已经是一名职业赛车手,而且你的第一场赛车即将开始。
你有一组训练有素的工程师作为后盾,他们可以协助你判明适合你的是哪一种车,而且这部车要做哪些准备才能使你快速地通过比赛终点线。
你的这部车的确是十分漂亮:强有力的引擎、曲线型的车身、精确到位的设计──简直无可挑剔。
你已经研究了行车路线,有信心在三个小时以内行完300公里的全程,媒体也为这一消息而兴奋不已。
比赛这天的早晨,就要到出发的时间了。
阳光很好,赛车迷们在看台上欢呼着,车手们各就各位了。
只听得发令枪一响,一辆辆赛车如离弦的箭一般疾驰而出,人群顿时沸腾起来。
你已经冲出了起点线,驶过了那些欢呼的赛车迷,忽然,你第一次意识到一个问题:路面太糟了。
视线内的那些坑坑洼洼就象一阵阵惊涛骇浪向你袭来,你的车子在一个个浪尖上剧烈的颠簸。
你不禁暗吸了一口凉气。
当然不仅仅你是这样,因为你看到其它行进中的赛车也在剧烈地颤抖。
车手们每隔几分钟就不得不停下来上紧螺丝或者替换零件,渐渐地你还注意到有些车已经惨不忍睹地歇在了路旁,其中不乏几部原本非常昂贵的赛车。
有时,一些车手停下来从这些车上取下还可以用的零件,装在自己的车上。
这时,你也得停车了,要把松脱的传动器紧一下。
你正忙着的时候,忽然有人从身后开车上来,跳下车门就开始从你的油箱里往自己的车里灌油,嘴上还说着,“听着,我的油不够了。
你到下一站加油吧,我已经来不及了。
”你刚要和他们争辩,他们灌了你的油,开上车就一溜烟得没影了。
当你开着那部曾经令你引以为豪的赛车,蹒跚地通过终点线的时候,已经是暮色时分了。
无论你还是你的赛车都裹了厚厚的一层泥。
看上去,你的样子着实不敢恭维。
那部赛车也好不到哪里去,大部分车身都已不在原位,引擎发出钻头一般的声音,简直令你脑袋都要炸开,一阵阵头痛向你袭来。
车迷们早已没了踪影,而且,很难说你的这份工作能否保得住。
但无论如何,你还算是幸运的:毕竟是通过了终点线,听上去就是一个奇迹。
这一天,真是糟透了。
不久以后,你开始反思这一切。
你是一个聪明人,意识到当初不安装减振器也许是一个错误,但话又说回来,减振器自身的重量也不容忽视呀。
你的工程师曾建议,车子的每一处都装上套管,防止零件乱作一团。
但是当时你没让他们这么做,你说那样会增加车重,让你快不起来。
经过反思,你列了一张下次有待改进之处以及相应原因的表格:∙所有的零件都在震动;下一次,要多多安装套管和减振器。
∙找到更有经验的工程师,在汽车部件损坏时能够更快地进行修复。
∙与其它赛车共用资源,以降低费用。
∙安装计算机系统,追踪那些缺损的部件并定购新件。
∙对路面的坑洼段进行统计分析。
∙雇用一部铺路机,对行车线路中最崎岖的路段进行铺整。
∙争取更多的预算。
赛车与项目经理如果你还没有感受到问题的实质的话,下文将进行详细的类比。
你就是项目经理,赛车是项目计划,无论你还是项目成员都置身于这个计划之中。
汽油和技术后盾是你的资源。
路面的坑洼是你执行项目计划的过程中碰到的种种不确定性,这些坑洼所造成的震动就是项目的实际实施效果与原先规划之间的差距与偏离。
至于弃于路旁的那些废车呢,当然就是那些半途而废的项目了。
别忘了赛车迷,他们就是你的客户。
在赛车中出现的种种场景都可以在实际的项目实施中找到。
路面崎岖,其它项目会窃取你的资源,项目不了了之,作为项目经理的你头痛不已。
在某些情况下,甚至会更糟:∙在整个赛程中,线路一直变来变去。
∙我们自己的组员窃取了自己资源。
∙我们当中的很多组员并不在乎这场比赛是赢是输。
∙只要失去了冠军,哪怕是得了第二名,我们也连一份奖品也拿不到。
为了改变这一切,项目经理们也在反思,他们列出的改进之处与赛车手是如此的相似:∙给项目的每个阶段都留有余地,因为每个阶段都可能遭遇不确定性。
或许,项目组中的各个成员也是这样来处处留余地的。
∙常常修改计划。
对一个几年完成的项目来说,我们常见到,计划常常是每周都在修改。
∙与其它项目共享资源。
听上去也许不错,但不久就会发现,项目之间经常就资源的问题发生争执,结果每个项目的实施周期都被拖长了。
∙进行统计分析,来告诉我们那些其实早已知道的信息:我们遇到了大麻烦。
∙采取重要举措,以规避处处的风险。
∙花费增加。
这种改进真的奏效吗?就我们的所见,是否个个项目都能够按时地在预算内完成,其成果同时又达到我们的期望呢?据Standish Group(专门进行项目和项目产出研究的公司)的研究,超过30%的IT项目都半途而废,在最终完成的项目当中,又有73%是脱期、超出预算或者成果大打折扣的。
平均来说,成本的耗用是原先计划的189%,而项目完成周期的长度是计划的222%。
看来,我们的项目计划并没有取得满意的结果,我们的管理手段往往落得个溃不成军。
对于充当赛车手、工程师以及赛车迷的人来说,他们怎么能愿意接收这一切呢?赢得比赛也许你已经有了解决方案:你需要安装减振器,但又不能处处都装上,否则车重将大大增加,使得车速变慢而且花费太多;你已经知道,每个部件在崎岖的路面上都会震动,你必须保护那些关键部件,使他们免受这种不确定性之害。
图1给出了一个简单的项目排程。
图1一个简单的项目计划图中的方框表示项目中的各个任务。
如果两个任务在水平方向上直接相连,或者有箭头相连,则表示后项任务的开始依赖于前项任务的完成。
例如,在第二个2:CS开始之前,5:HW与3:HW都必须完成。
方框中的数字代表完成该任务需要几周的时间;字母代表需要的资源。
现有的资源包括:一个程序员(Prog),一个硬件技术员(HW),一个客户服务代表(CS)以及一个工程师(Eng)。
由于这些人力资源可能在其它项目中也有工作,因此他们完成各自任务的时间有着很大的不确定性。
为解决这一问题,一个办法是在每处都加上“减振器”,如图2。
图中的粗线标出了关键路径(完成时间最长的一条路径)。
图2增加了安全时间的项目计划现在我们要问,这样的排程是否更合理了呢?答案是否定的,因为:对于硬件技术员仍然处于争用的状态,3:CS一定要在5:HW完成之后才能开始,所以,关键路径上的时间(3+5+8+3=19周)并不能成为整个项目完成所需的真正时间。
步骤1:解决资源的争用不难想到,首先我们要解决资源争用的问题。
本例中,见图3。
应注意到以下几点:图3解决了资源争用的计划图中没有追加如图2中的安全时间(Safety time),方框中的时间是平均意义上的完工所需时间,“减振器”将在后文插入。
∙有些任务(如4:Prog)是到最晚开始时间(Late Starts)才开始,而不是在最早开始时间(Eealy Starts)。
这是因为,我们只有插入“减振器”时,才会把任务开始时间提前,而现在我们还没有确定“减振器”在哪里插入。
∙我们没有特别强调某一种“资源平衡”的算法。
实际上,尽管我们可以通过某一种算法得出一个“最优”的排程方案,但我们以后遭遇的不确定性仍将使得这种“最优”大打折扣。
图中的排程目前是完工期最短的,但务必注意,仅仅在不存在任何不确定性的情况下才会这样。
步骤2:识别关键链接下来,为了合理利用“减振器”,我们必须识别出一组任务的集合,这组任务决定了整个项目的周期,我们把这组任务叫做“关键链”(Critical Chain)。
图4关键链本例中,可以比较容易地识别出粗线框的任务2:CS,3:Eng,5:HW,3:HW以及2:CS决定了整个项目的周期。
之所以这样说,是因为这些任务中的任何一个的延迟,都会造成整个项目的延迟。
步骤3和4:生成缓冲器,并插入适当位置对于项目经理来说,最担心的就是防止脱期。
为了避免这种情况,我们需要在紧挨着客户的地方插入一个“减振器”,如图5。
图5项目缓冲器我们称这个“减振器”为“项目缓冲器”(Project Buffer),这段备用时间可以在项目进行中用掉,其长短依统计得出的波动时间的长短而定。
这样,客户端就得到了切实的保护,应注意到,这种保护是指向客户的,而不是指向某个任务的。
哪怕你还没有生成关键链的排程,这种思想也是非常有用的,简言之就是:风险前移、空闲后移(move risk earlier and slack later)。
通过“项目缓冲器”,客户得到了一定的保护,但仍要考虑项目的其它部分。
既然“关键链”中的任务决定了整个项目的周期,何不对他们也有所保护呢?具体这样来做:在每一处非“关键链”上的任务与“关键链”上的任务相连接的地方,插入“减振器”,我们称之为“喂料缓冲器”。
现在,我们得到了一个切实可行的计划,既保证了较短的周期,又考虑了如何避免波动的干扰。
那么,在具体实施当中,是否会遇到困难呢?下文我们将讨论这一问题。
第二部分:实施从表面上看,实施关键链管理不需要激进的举措,特别在有高层管理者支持的情况下。
它在逻辑上说得通,并着眼于缩短项目时间和减少花费,那么困难在哪里呢?经验表明,实施供应链管理的最大障碍不在于技术,而来自于人。
个人的惰性会表现为不愿改进一贯的做法,尽管事实证明了一贯的做法存在着问题。
至于组织的惰性,则可以表现为刚性的组织程序、政策、考核方法以及组织文化。
实施关键链管理,首先要对整个项目建立有效的控制,即建立起“项目网络”(Project Network)。
所谓项目网络,是一组任务、资源与关联的集合,用以表述为了完成项目要求应该完成哪些工作以及如何完成。
本文中的图示可以看作是简单的“项目网络”。
在建立项目网络的过程中,应注意:∙建议从项目结束点开始建立“项目网络”,充分考虑“关联”的必要性,即保证:“如果后项任务要完成,必须先完成前项任务。
”∙确保“项目网络”中的限制条件是真实可靠的。
例如,是“必须开始”,而不是“某某愿意开始”。
∙在同一个时间段给一个人只安排一项工作,否则往往会造成几项工作都脱期。
∙在制定计划时,不要过度关注于细节。
如果某项决策对整个项目的影响不是很大,则不要在上面耗费太多的精力,在决策如何把资源分配给任务的情况下更是如此。
如果你说“这项工作需要0.2个赵,0.05个钱和0.9个孙”,那么多半你的安排是事倍功半。
优先级的安排什么是计划?从负责资源分配的管理者的角度来看,指的往往是这样两张表:一是任务表,在这些管理者看来,这些任务将造成资源的耗用。