畅享博客 > 李先锋的博客 > [原创]基于TOC的关键链项目管理方法述评
2009-3-23 22:34:35

[原创]基于TOC的关键链项目管理方法述评

 基于TOC的关键链项目管理方法述评

  
关键链项目管理(Critical Chain Project Management,CCPM)方法是约束理论(Theory of Constraints,TOC)在项目管理中的应用,关键链项目管理方法自提出以来,就引起了广泛的反响,被认为是项目管理领域自发明关键路线法(CPM)和计划评审技术(PERT)以来最重要的进展之一。关键链方法在实际应用中已取得了巨大成功,许多国际知名公司纷纷采用关键链方法提高项目管理绩效。
基于关键链的项目管理方法特别适合于高度不确定的环境,如全新的软件开发项目。它大量采用了一些反常识的做法,如工时估计的方法、绩效考评的方法、对传统关键路径的改造等,解决了传统项目管理中的诸多管理问题,如学生症候群,帕金森定律等。能够极大地压缩项目周期和项目费用,达到了传统项目管理所不能够达到的高度。
首先对基于关键链的项目管理方法做一介绍。
 
1 关键链项目管理方法介绍
 
1.1         约束理论

  约束理论是由高德拉特(Goldratt)博士在最优化生产技术(OPT)基础上发展起来的。约束理论的核心思想可以归纳为两点:(1)所有系统都存在约束。如果一个系统不存在约束,就可以无限提高有效产出,而这显然是不实际的。因此,任何妨碍系统进一步提升有效产出的因素,就构成了一个约束;(2)约束的存在表明系统存在改进的机会。约束妨碍了系统的有效产出,但同时也指出了系统最需要改进的地方——约束。一个形象的类比就是“木桶效应”,一只木桶的容量取决于最短的那块木板,而不是最长的木板。因此,对约束因素的改进,才是最有效的改进系统有效产出的方法。
  其他的管理理念都会提到改进,但都是基于全面系统的改进;与其他管理理念不同,约束理论对企业的改进是聚焦的改进——只改进约束,是聚焦在约束上的改进,而不是同时改进全部。在这样的理念基础上,为了有效提升系统的效率,约束理论提出了著名的聚焦五步法:(1)找出系统中的约束因素;(2)挖掘约束因素的潜力;(3)使系统中所有其他工作服从于第二步的决策;(4)给约束因素松绑;(5)若该约束已经转化为非约束性因素,则回到第一步。这五个步骤构成一个不间断的循环,帮助系统实现持续改进,这与PDCA的原理是高度一致的。

1.2 
关键链项目管理方法

  约束理论在项目管理,尤其是项目进度管理上的应用,导致了关键链项目管理方法的产生。高德拉特定义关键链是既考虑工作间的依赖关系又考虑资源间依赖关系的最长的工作序列。如果将一个项目看作一个系统,那么依据约束理论,系统必然存在约束,对关键链的分析进而项目管理的改进也遵循聚焦五步法。
(1)找出系统中的约束因素
从CPM和PERT开始,项目中的关键路线就被看作项目管理的基础。但是,关键路线法仅分析紧前关系,并不考虑项目实际能调动的资源是有限的,因此关键路线法被广泛批评的一点就是其进度通常不具有可行性,而是需要进行后续调整。与关键路线不同,关键链不仅考虑项目中各任务的紧前关系,也充分考虑项目中现实存在的资源约束。如图1所示,在关键路线法中,任务A、D、E、F组成了项目的关键路线,但如果考虑资源限制,假设任务C和任务E需要同一种资源,例如需要同一台设备进行加工,而该设备一次只能执行一项作业,那么事实上任务C和任务E是不能同时进行的。因此,在考虑资源约束的情况下,项目的关键任务为A、D、E、C、F,这五个任务就构成了项目的关键链。可见,是关键链而不是关键路线,决定了项目在给定的紧前关系和资源条件下完成项目所需的最短时间。





(2)挖掘约束因素的潜力
如果将关键链看作项目的“约束”因素,那么应用约束理论的第二步就是要考虑如何来挖掘该约束因素的潜力,即如何缩短关键链所需的时间,因为关键链所需的时间正是完成项目所需的时间。在关键路线法中,为了保证任务能够有较高的概率在计划时间内完成,同时也由于项目组成员普遍存在的风险规避心理,一般的计划时间都大于完成任务所需的平均时间,也可以看作是在任务所需的平均时间上增加了一块“安全时间”(Safety Time,ST)。这样的处理方式具有两方面的效果,正面效果是提高了管理不确定因素的能力,负面效果则是延长了完成项目所需的时间。关键链方法采取了另一种方式,用任务所需的平均时间作为最终的计划时间,但考虑到任务内在的不确定性,在关键链的末端附加整块的安全时间,也就是项目的缓冲时间(Project Buffer,PB)。可以认为关键链方法是重新配置了关键路线法中分散存在的安全时间,但这样的重新配置能够缩短项目所需的时间,因为根据概率理论,在整合安全时间后,在相同概率下,只需要较少的时间就可以完成所有任务。图2直观地说明了关键链方法在这方面的优越性。



(3)使系统中所有其他工作服从于第二步的决策  
在完成关键链的进度安排后,还需要保证所有关键链上的任务(关键任务)不受其他非关键任务的影响,以保证项目能够按计划及时完成。在现实的项目实践中,虽然采用了增加安全时间的方法,但仍然有大量的项目未能按期完成。造成项目延期的原因很多。首先,紧前任务的延迟会导致后续任务的延迟。第二,当存在多个紧前任务时,延迟最久的任务起了决定性作用,导致项目的延迟,而提前完成的任务并不能使后续任务提前开始。第三,由于任务时间包含了安全时间,导致项目组成员在心理上觉得还有充裕的时间,结果使得任务启动过晚,同时调查还发现,项目成员总是倾向于完全消耗掉任务分配到的时间。其中第三个原因也是关键链方法采用平均时间的理由,以期推动项目组成员能够全力以赴地开展工作。而前两个原因则使关键链方法引入了非关键链缓冲时间(Feeding Buffer,FB)这一概念。

  如图3所示,任务C、D、E组成了项目的关键链,而任务A、B为非关键任务。由于任务B是任务E的紧前任务,为了防止任务A和B可能发生的延迟导致任务E不能按时开始,因此需要在任务B之后安排一定的缓冲时间,或者说让任务A和B有一定的提前量。这样,就可以有效地防止非关键任务对关键链产生负面影响。与项目的缓冲时间类似,非关键链缓冲时间整合与压缩了所有非关键链任务的安全时间。
 

 
非关键链缓冲时间能够保护项目按计划进行,不受任务的不确定因素影响,同时还可以作为一种预警机制。如果紧前任务因为不确定因素而没有在计划时间内完成,那么其后续任务就无法按计划时间启动,其结果就是缓冲时间被占用。缓冲时间被占用得越多,就说明越有可能延误后续的关键任务。因此,当占用比例到达一定程度,比如三分之一或三分之二,就需要发出一个警告信号来提醒项目经理对延迟的任务加以关注,并考虑是否采取措施防止任务进一步延期。

  非关键链缓冲时间可以保护关键链任务不受非关键链任务的影响,但还需要考虑资源约束对关键链的影响,尤其是同一资源在不同任务间切换常常需要一定的准备时间。因此,关键链方法引入了资源缓冲(Resource Buffer)的概念,以防止关键链任务因资源没有及时到位而发生延误。与缓冲时间不同,资源缓冲本质上是一种警示信号,用来提醒项目经理或者部门经理保证资源及时到位。关键链方法要求在关键任务所需的资源被紧前的非关键任务占用时,应当提前一定时间在项目进度计划上标识资源缓冲,以便及时提醒项目经理协调资源,防止因资源不能及时到位而延误关键任务。如下图所示。
 
(4)给约束因素松绑
就项目而言,一般都是一次性的活动,有预计的完工日期要求。按照上述聚焦法设计的关键链管理方法和传统项目管理方法相比,总能更有效的完成项目。但如果由于某些原因导致项目发生变更,如完工日期要求提前,则需要安排更多的资源在关键链上,给约束因素松绑。
 
(5)若该约束已经转化为非约束性因素,则回到第一步
   一般情况下,如果项目发生较大的变更,导致关键链发生变化,则需要重新回头在分析关键链。
 
2 关键链对传统项目管理方法的革新
  
2.1 传统的工期估计
传统的工期估计的方法为:如果有以往项目,预估时间会根据以往项目的最长历时来估算;2)涉及到管理层时,每层都会加上各自的安全时间;3)预料到高层会削减整体完工时间,个人还会预先加大安全时间以自保。为什么会有如上的估计方法?是因为实践中存在两个无法解决的非技术问题——人的问题
1)学生症候群
对于绝大多数的学生来说,老师布置的作业,往往会拖到要交的最后一刻才会匆匆忙忙去完成,这种现象称之为学生症候群。项目中的绝大多数人员也存在同样的问题,总是等到自己的任务需要提交的一刻,才会抓紧去完成。这样导致工期估计中的安全时间一点也起到安全的效果。项目的绝大多数任务都是准时或者延期完成,不会提前完成。
2)帕金森现象
即使少量的项目人员会提前完成项目的某项任务,基于现在的局部最优的评价体系,他也不会主动报告这样的实情,而是至多报告准时完成,这就是帕金森现象。它是指工作会自动地膨胀占满所有可用的时间。如果安排给一个任务的时间有富余,人们就会放慢节奏消耗掉所有富余时间。这样即使项目的某项任务提前完成,人们也不会去汇报。为什么了,因为传统的工期估计背后采用的是基于局部最优的考核方式。
 
2.2 传统项目的绩效考核方式
传统项目的绩效考核方式是存在问题的,其根源在于局部最优的评价方法。它考虑每个任务需要准时完成,其基本假设为:要准时完成项目计划,必须要求项目内每一作业任务都在其时限内准时完成。其假设可能在理论上没有问题,但现行的评价体系却没有办法保证这一假设在绝大多数情况下都成立,从而导致在实践上不可行。一般情况下,依据当前的评估方法,提前完工并不会带来奖赏,反而会带来惩罚。因为提前完工等于告诉老板可以削减预估时间,起码其他同类小组的同僚会非常反感。
总之,传统方法中,安全时间包含在任务工期内,所有安全时间的损耗,到底是因为意外造成的,还是拖拉消磨掉的,不容易被项目经理注意到,因为任务没有延期,可以暗箱操作;而项目延期,他也会找出理由掩盖对安全时间的损耗。所以当学生症候群和帕金森现象存在时,项目任务的最终结果是绝不会提前,只会延期。
 
2.3 关键链的工期估计
高德拉特认为在PERT中的工期估计中包含了大部分的安全时间,而安全时间并不能保证项目的按时完成。因此他将工作50%可能完成的时间作为工期的估计,并以此建立项目网络图。然后根据工序间的资源制约关系,修改网络图,确定关键链。然后通过为关键链和非关键链分别设置项目缓冲(Project Buffer)和接驳缓冲(Feeding Buffer),来消除项目中不确定因素对项目执行计划的影响,保证整个项目按时完成。项目缓冲设置在关键链的末尾,以关键链上所有工作比PERT中少估计的工期和的50%为缓冲区的大小。接驳缓冲设置在非关键链与关键链的汇合处,以非关键链上的所有工作节省工期之和的50%为缓冲区的大小。项目缓冲是为了保证项目在计划内完成。接驳缓冲是为了保护关键链上的工作计划不会因为非关键链上工作的延迟而受到影响。
根据上述的关键方法,是可以缩短工期估计的。但这一点并不能让项目的完工时间得到保证。关键链真正起作用的是其采用了一套全新的绩效考核体系,这种考核体系是基于整个项目的,站在全局角度的绩效考核方式。
 
2.4 关键链的绩效考评方式
首先,对于学生症候群现象,关键链管理的要求是,项目任务要么不开时,一开始就竭力去完成。由于在关键链进度计划中,任务工期不包括安全时间,只有50%的可能按期完成,并没有富余时间,所以在项目人员的心里,不存在等一等再做的任何借口。当然,关键链方法允许一定程度的延期,允许任务使用项目缓冲时间,但是项目缓冲的用途是应付各种意外情况,而不能任意使用项目缓冲时间。这意味着,当一个任务没有按期完成,它的负责人不一定会受到指责或者得到不好的评价,但他还是需要向项目经理解释清楚有哪些意外的情况导致任务延期。这样如果没有确实发生导致延期的意外情况,想使用项目缓冲有一定难度。这样就有力的遏制了学生症候群现象。
其次,对于帕金森现象,关键链也能给予很好的控制。因为如果分配给一个任务的时间不够用,或者刚刚够用,那么就不会有帕金森定律。另外作为关键链,它本身也是一个进度计划。而所有进度计划都是一种控制的基准,项目进行的时候,项目经理都会设法保证项目进展和计划一致,如果出现偏差,就可能会采取措施纠正。关键链进度计划也一样,任何任务没有按照计划的时间完成,都可能被注意到,都可能引发项目经理采取措施追赶进度,比如要求加班,增加人员和设备等等。
第三,如果关键链上的任务延期,损耗掉部分项目缓冲,也不一定要马上采取加班等措施追赶进度,因为既然安排了项目缓冲时间,就应该允许使用它,否则就没必要加入项目缓冲;而且追赶进度的措施通常都会引起工作上的混乱,效率也会大幅降低,所以关键链方法能够容忍一定程度的缓冲损耗,不一定在关键链任务延期的时候都采取措施。但关键链方法也不是对项目缓冲的使用放任不管,而是使用一种叫缓冲管理的技术,周期性观察项目缓冲的损耗情况,评估整个项目延期风险,如果缓冲损耗过大,项目经理就会采取追赶进度的措施。
缓冲管理技术的策略是,监视项目缓冲的消耗和关键链任务完成的情况,然后为项目缓从分配红黄绿三种颜色,红色代表缓冲损耗很严重,剩余工作量还很多,剩余缓冲不足以保护项目按期完成,必须立即采取行动追赶进度;绿色表示剩余缓冲还很充足,进展良好,不需要采取措施;黄色介于二者之间,缓冲有一定程度损耗,需要密切关注,寻找原因,并做好追赶进度的准备。
尽管缓冲消耗比较少的时候,关键链方法不会采取激烈的措施,但如果每个人都消磨掉项目缓冲中属于自己任务的安全时间,那么项目缓冲的状态必定进入红色或者黄色区域,促使管理层采取激烈的措施追赶进度,比如加班、增加工作压力等等,而且这些措施会很及时,不会等到项目临近结束的时候才会使用,在项目早期,只要缓冲被消耗过度,也会立即采用。这样,如果有人尝试拖拉消磨项目缓冲,他将发现管理层会迅速反应,压力反而更大,得不偿失。
第四,高德拉特博士还提出一种全局激励方法。当项目结束后,如果项目缓冲没有全部耗尽,可以用节省的成本给予项目奖励,缓冲时间剩余越多,节省成本越多,项目组得到的奖励就越多,这样能够进一步降低项目组故意损耗项目缓冲的可能,是一种基于整体项目最优的激励方式。
总的来说,关键链大量采用了一些反常识的做法:1)不将单个任务的完成时间的预估当成业绩效考核的指标,因为当一个任务没有开始的时候,没有人真正知道自己需要多少时间,而是要求项目任务要么不开始,开始就必须全力以赴。而且允许有延迟。这是一个有趣的现象,传统的项目不允许有延迟,但项目大部分延迟;关键链允许有延迟,但基本上很少有延迟。2)每个子任务的缓冲时间必须最小化,这样有利于打击学生症候群和帕金森定律。 3)管理高层必须将每个项目的交期看成最神圣的承诺。而用缓冲区进行项目的进度管理,能够有效的聚焦在项目管理的关键问题上,保证项目按期完成。
 
2.5 关键链对约束资源的管理
关键链一方面对于约束资源设置资源缓冲,另外一方面采用资源预约的方式来进行有效管理。即提前通知资源应该什么时候投入到什么项目任务中,并告之提前做好准备。并且采取一定的时间间隔进行通知。这样,当时间真正来到时,资源就可以准时投入的项目任务中了。即使项目资源突然变更,也能提前知道,从而快速做出反应。
 
3         关键链的适用环境
一般来说,关键链非常适合于高度不确定的环境。对于确定的环境,如项目做过多次,对每一步的工期估计都能非常的准确,就没有必要用关键链的方法了。
 
4 关键链技术的主要优点:
1)既考虑了工序间的时间关系约束,还考虑了工序间的资源冲突;
2)标识了资源约束和资源瓶颈,有利于项目过程中的资源配置,降低因资源冲突而引起的进度风险;
3)缓冲区的设置,为保证项目按时完成提供了有效的管理途径。
 
关键链的进一步研究方向
 
5.1 工期时间估计
尽管关键链方法在理论与实践上都取得了巨大成功,但仍然有待进一步研究。对关键链方法的批评主要集中在其过于简单化的时间估算方法上。首先,高德拉特主张以项目成员所提供的估算时间的一半作为任务的平均时间,该做法过于偏激和简化。在多数工程项目中,这样“切一半”的方法是不可行的,很可能直接导致项目质量出现问题。其次,高德拉特建议以关键链或非关键链时间长度的一半作为其缓冲时间的长度,无疑这样的估算方法也过于简化,在很多实际项目中会导致缓冲时间过长,从而产生不必要的资源浪费或丧失商机。因此,一些研究者提出了其他方法来改进缓冲时间的估算。例如,朗讯公司假设任务时间的最乐观估计和最悲观估计之差为任务所需时间的变动量,然后采用所有关键链上任务的变动量的平方和的平方根作为所需的缓冲时间。
 
5.2 缓冲时间管理
  关键链方法另一有待改进之处在于对缓冲时间的管理。虽然缓冲时间有助于控制项目的不确定性,但也增加了项目进度管理的复杂性。首先,非关键链的总时差可能不足以容纳所需的缓冲时间,这时问题就出现了。如果保持非关键链上的任务进度不变,那么后续的关键任务很可能因为缓冲时间被完全占用而不得不延期,这样就违背了设置缓冲时间的意义。或者考虑提前开始非关键链任务,但这样又非常可能和其他任务发生资源冲突,甚至可能会发现原先的关键链已经不是项目中最长的任务路线了。
 
6 小结
总体来说,基于关键链的项目管理方法是对传统项目管理方法的重大革新,它采用了大量的反常识的一些做法,如去除安全时间;允许延期;全新的基于缓冲区的项目进度管理方式;去除局部最优的绩效评估方式,转而采用全局最优的评估方式等等。达到了传统项目管理方式所不能达到的高度。值得在项目管理实践中,特别是高度不确定的项目环境中去推行。当然,每一种理论都在不断的发展完善中,对关键链项目管理技术的应用,也需要创造性的加以灵活应用,如对项目工期的时间估计方法,缓冲时间的设定等等。
 
 
参考文献:
1 高德拉特博士TOC总体解决方案  (可百度搜索到)
2 关键链方法能够真正解决帕金森定律带来的问题吗 (可百度搜索到)
3 关键链项目管理方法综述(可百度搜索到)
4 基于关键链的软件项目进度风险管理(可百度搜索到)
5高德拉特.关键链(Critical Chain).电子工业出版社
6 电子科技大学.MBA论文.GMP验证关键链项目管理

 


推荐到鲜果: 查阅更多相关主题的帖子: 关键链 TOC
分享&收藏

评论

沙发……好东西

发布者 ttiger
2009-6-11 23:31:13


您正在以 匿名用户 的身份发表评论  快速登录
(不得超过 50 个汉字)
       看不清,换一个
提示消息
(输入完内容可以直接按Ctrl+Enter提交)