关键链项目管理的规划与执行两大部分的成果,可由『建构关键链网络图』与『接力赛跑的执行方式』这两大项,来评鉴关键链应用的成效。而这两大项又可收敛到一个决策原则,即是当在建构网络及执行任务过程中,如有争议发生时,必须下秉持『以终为始( Beginning with the end in mind )』的目标下,采取能达成风险最小化与价值最大化的双赢方案。以下为 TOC 关键链资深专家 F ran cis S. Patrick ,对这两部分之经验分享与提点。感谢他多年不断透过网页,分享许多难得之理论结合实务的论述。
有效用的项目管理能将不确定事件处理的 有条不紊,确保实践项目的价值。因而在项目生命周期中,管理项目的焦点该是风险管理的程序( the process of risk management )。而规格、时程、经费之规划及执行能否有效搭配风险管理,会影响项目的成效和项目价值的展现。关键链项目管理超越传统关键要径方法的显著之处,就在于掌控项目之不确定性与风险上,具有特殊的聚焦力和应变力。
在形成关键链计划表( critical chain schedule )的初始阶段,核心工作是确认项目所涉及之不确定性与风险( uncertainty and risk )。除了通常处理任务依赖性( task dependency )的作法之外,资源依赖性( resource dependency )和路径间及项目间的互相影响会造成的变动,都需事先有所规划,并在执行时以缓冲管理( buffer management )来反映整体项目之实际进度,提高预见程度,使能对不利情势有足够之对应处理时间。
关键链项目管理不仅是关键链计划表和缓冲管理,基于限制理论( Theory of Constraints )的中心哲理,必然是一套全盘的项目管理方式,从开始的内容界定、时程规划、资源的作业模式及各种相互影响的作用等,皆得多面向的考虑与估计。
依赖性网络( Dependency networks )
在关键链环境中,规划工作的主要范畴是一套称为网络(图)建构的程序( the process of network building ),是种多次调整逐次修改的设计工作,以确保处理到所有的关键依赖性。如同其它有效的项目规划程序,如史蒂芬 柯维 博士所说『以终为始( Begin with the end in mind )』,从最终的目标开始思想,以此为整体项目的基调。设计过程将最终目的放在脑海里,以此为发挥整体项目价值的指南针。仔细地考虑到底什么是某项目的本质,什么执行某项目能实现的真正价值。藉由建构网络图的过程厘清项目中,任务与资源的必然依赖关系,及执行上必要的同步机制,建立清晰的接口衔接与可能的替代作法等,以能如实达到该项目的目标并得到期待的价值。总之,透过如此深度之分析与建构过程,项目团队清处理解项目之目标,并认同其价值,确认项目最终的验收项目,及确保项目成功的执行准则等。确定每位项目参与者都充分了解项目的全貌,并协力成功地完成项目。
一旦全貌与目的清楚了,网络建构的重点则转到任务依赖性的议题。定义清楚的验收项目作为高层次的 WBS ( work breakdown structure ,工作分解结构 ) ,但不继续展开 WBS 上某 WBS 的个别等级支线( hierarchical b ran ches ),而是建立相关的依赖性能。从最后目的到项目开头,确认出主要的依赖关系,接着定义出最少资源功能的需求。往往强调『最少资源功能』有助于指出任务工作所需的资源考虑及可能的依赖性,像是 揭露 关于聘用专家或短期工或学徒等议题。一旦资源需求之确认工作完成后,假如所需资源在项目执行阶段还无法获得的话,那么接着的网络建构就得由这类资源的专家代表来检视任务结构,找出进一步的依赖性,及澄清预期之任务执行的结果。
网络建构与风险确认( Network Building and Risk identification )
在关键链环境之网络建构上,强调清晰的任务输入讯息有其必要性,以能落实任务的成果。而在输入讯息之要求的讨论,大都直接与执行任务的能力是否能成功完成工作的风险相关。『倒推式网络建构( backward building of the network )』保障在定义输入讯息之前,预期之产出结果会被充分理解。事实上焦点是在风险,而专注于依赖性,因为往往未能发觉计划与时程表上的依赖关系,是造成风险的严重根源。重复提出反复思考『为了达到某个标的,需要先具备什么呢?』,接着『还需要具备其它什么吗?』的问题,来引起对可能出错之事的深入考虑,确立在落实任务标的之潜在风险,及因应的必要解决方案。
如此反复的过程(任务之输入讯息与输出结果的初始确立,透过资源确认和网络检视,进而反复检讨与估计所需之执行时间),提供一连串的『安全网( safety nets )』,提高抓出更多未发觉的依赖关系和风险。
风险回避或缓和( Risk avoidance or Mitigation )
有效的项目规划程序还包含必要的传递操作( handoffs ),传递是从一个任务将工作传给另一个工作,是任务链的连结之处,如将输入事物交给某任务,如将某任务执行结果输出,即是交给下一个其它的任务。在一条具有依赖性质的网络上,从头到尾的全部的传递作业,也是达成项目目标前必须克服的障碍,需要尽可能降低会造成连结点无法符合期待进行递交的风险。对此之规划考虑含,必要输入事物的完整性,是否能回避被确认之风险,或在项目网络中增加额外任务以缓和风险。
在网络建构上,强调输入事物的确认工作,而非任务的流动线或某 WBS 的独立路径,则有助于回避未发觉之具依赖性的风险。在被要求的结果确定后,再提出全部的必要输入事物,比试图猜想接下来的需要是什么简单多了,尤其当后续的工作位于 WBS 的另一个路径上。
常见到项目计划中,有某必要之输入事物已存在的假设,还是得不断注意所有假设已存在的输入事物,是否真能使该网络在未来执行中回避与缓和风险,而事实不被这些假设掩埋。
网络建构的最后步骤是任务时段与循环范围的估计工作( the ran ge estimates of task durations and iterations )。关键链时程计划表对于时段与循环使用一种两点式的估计( a 2-point estimate )。避免使用矛盾的『准确估计( accurate estimate )』方式,关键链的作法是接受及务实地考虑项目的变化( variation )与不确定性 (uncertainty) 。由于具有专长的资源参与,知道如有莫非定律( Murphy Law )的事出现时,什么情况可能会发生,及执行任务得靠运气时,可能会发生什么情况等重要评估。常见于特殊任务的时间估计,与无法一开始就确定之任务所需重复工作的次数(循环)等情境。
支撑 CCPM 之项目规划,网络建构含两部分:
- 由资源代表检讨任务架构,并指出未发觉的依赖关系;
- 估计任务的循环与时段范围,指出相关变化性能以利于计划时间,也可发觉额外的依赖关系。
首先检讨任务时间的安全估计( safe estimate ),以两点式来看,一个时间点是具有高度信心,愿意视为承诺的估计时间。第二个时间点是『积极可行( aggressive but achievable )』的估计,即是反映接近『最佳事态』的情况,或是说在项目进行中可能造成问题的任务,却有良好表现、没造成问题的情况。

两点估计与风险评估 / 回避 / 缓和
在关键链的时段与循环估计含有时程与成本风险评估。于网络建构过程中,先确认基本的依赖关系,而个别任务及任务群组相连系的不确定性与潜在变化,是下个影响项目承诺的风险。即使是网络上已确认、已缓和或藉由额外任务回避的风险,还是可能发生技术或表现上的风险。
此外为了作为将依赖性网络转成关键链计划表的基础,该两点估计程序是一套良好方式,能进一步了解并处理风险。首先是承诺程度的估计( commitment-level estimate ),应该反映出与项目受质疑的部分有关之内在任务或循环的风险。估计值较大或较小,不同之处直接与任务的必要安全评估有关。相较于积极可行估计之必要的安全总数,提出与该任务相关的风险程度。需要该安全的理由能提供机会,去找出额外的输入事物及任务,以能合理的降低所需的估计数字,或有助于能如期完成。
项目时程计划
关键链方式的一些有利效果来自于,将内容范筹和时间管理连结到风险管理,主要的连结在于时程缓冲及缓冲管理程序的开发与应用。项目时程表利用两点估计程序,将依赖性网络转成可靠的项目承诺。可靠性首先来自能保障的可行性,藉由在决定项目之关键链时,清楚地包含资源依赖关系,及传递依赖关系的作用。
接着,在规划过程中产生的估计时间,将安全时间聚集并投入于最能好好保护项目承诺及价值之处。时程表本身(任务与资源组成的网络用于确定关键链)使用两个估计中较少的一个。对于关键链任务而言,『安全』预估与『积极可行』预估的差别,能发展出关键链时程的主要机能,即是缓冲( buffers )。一个项目缓冲( project buffers )用于保护最后项目交期,免于受到某些关键链上任务表现变化的影响。汇流缓冲( feeding buffers )用于隔离汇入路径对关键链直接影响,主要在协助与维持关键链的进度。
建立整个项目时程估计,项目前置时间( project lead-time )包含缓冲时间,为该项目提供清晰可见的潜在时程上的风险信息。在非关键链的环境,意外情况常是隐藏在管理上的保留讯息,或在内部及外部环境中。一般作法隐藏这些组件的实际作用与牵连,而缓冲的开放与明白沟通的作法(对于项目控管也很重要),能够清楚地评估什么可能是『最好的情况』,或是如在各别考虑的相互作用下,对整个项目表现可能造成什么结果。
一个项目的最终风险是无法如期实践承诺的价值。如果项目前置时间无法符合项目业务上的时效需求的话,关键链时程表提供两个主要缩短时间之处:关键链及专案缓冲。再探讨关键活动的假设,评估是否加入额外的行动或活动能减少变化和项目缓冲的大小,或者是否任务传递作业能重新安排,以能有更多平行进行的活动,因而缩短关键链的长度。到了某个程度,达到修正行动的限制,反映出一个含被接受的风险的项目前置时间与承诺的执行时程。
在十分重视项目缓冲及防护关键链的易变性能之下,汇流缓冲也很重要,用于防护常见于每个项目中的普遍的风险源头,就是平行活动( parallel activities )一起对项目目标造成的问题。例如,整合风险( integration risk ),平行路径整合成一的风险,如果一组在平行路径上的活动,每个都相当有把握,有 85% 的完成可能性,如有四个这样的路径整合时,既使任务准时开工,可能最后如期的可能性剩下 52% ,跟丢铜板的机率差不多。这是造成传统关键要径经常改变的主要地方。
于传统关键要径的项目排程工作,常见使 用 蒙地卡罗模拟法来评估风险特质,提供整合工作对如期达到项目目标的或然率。关键链排程则将整合工作的风险明白纳入汇流缓冲,以处理汇入路径的变化性(而非依靠随意的 宽松或游动时间 [slack or float] )。蒙地卡罗模拟法建议保持承诺的机率,有缓冲的关键链排程则有避免整合风险的设计,以保持高承诺成率。
资源行为模式
非关键链基础的项目经常依靠任务内含的安全时间与任务期限(里程碑时程表 [milestone schedules] ),来安排与控制项目的进度。这样作法的风险是,普遍资源呈现之行为模式是能力最小化,以争取时程表上的时间。所谓帕金森定律( Parkinson's Law )是『拉长工作以填满被允许的时间( Work expands to fill the time allowed )』,就是这种行为的反映结果。由于最终适当的行为模式,会决定项目表现结果,关键链方法的基本目的在于提供政策与程序来支持渴望的行为模式。
一种接力赛跑,不是火车时刻表
大多数管理项目的作法是仔细观看行事历,比较今日与某些基准时间表。典型的时间表包含一连串连续任务的开始与结束日期,前个任务的结束日期与下个任务的开始日期一样。像火车时刻表,假如一个任务在结束日期抵达或提前,这部分的项目被视为『按时刻表进行( on track )』。如果前个任务提前完成,下个任务的资源可能尚不可得,无法接下工作。即使在资然可得的情形,一般很少或不会急于让下个任务开工,因为超前( ahead of schedule ),这时资源一般在开始日期前会去忙其它工作。
这样作法的问题是,火车必须在指定的时间抵达与离开。而项目的价值常与绝对的速度绑在一起,从开始到结束,整个项目越早完成,项目利益能越快产生。用另一种更合适的比喻来引导项目是接力赛跑( a relay race ),其中鼓励资源尽快开始传来的工作,全力投入并保持一定表现水平直到完成,尽快完成尽快交给下个任务。
令火车时刻表的行为模式恶化的环境,当估计的时间被视为是资源承诺的时间,因而每个任务都含有大量的安全保护时间来防卫承诺。假如一个项目被视为按表进行,可能的情形是其中任务有充足的安全时间来完成工作,所以没有紧急的感觉,结果资源习惯上也做些其它任务或处理其它事情,拉长实际执行该任务的时间,在接力赛跑行为模式则能提早交给下个任务。
里程碑时程表,就像是火车时刻表顶多是种自我夸大的说词,至少在于预期的速度上是如此。许多时候由于莫非定律的作用,可能还需要更长的时间,本可提早完成却成为延迟完成。
关键链时程表,资源行为与风险缓和
关键链时程表从两方面来处理流失安全保护时间的问题,第一是取消任务的期限,仅有的时间是关键链时程表的所有路径上第一个任务的启动日期,与交出项目结果的结束日期,是受到项目缓冲保护的日期。任务的开始日期直接与前个任务连结,透过项目之缓冲控制与管理来进行沟通。
第二是将任务所含的安全时间移到缓冲,藉此消除需要安全时间却无法有效保护的矛盾。基本的假设是不管时程表怎样呈现,任务就是使用工作所需的时间,指示资源不分心、全力投入手边的任务,直到完成交出。如此任务至少不受外界因素影响而延迟。
更重要的是管理层必须支持这样的能力,避免不必要的注意力分散因素或优先级冲突的情形。只要资源按接力赛跑的模式有效能有效率的操作,某些任务会比预期时程慢一些,有些会快一些,重要之处是项目能得到提早完成的好处。这样的作法,将与交期行为有关的风险,交由渗透与补充缓冲的机制取代之。 |