1 关键链技术介绍
1997年,Goldratt出版了《关键链》一书,将约束集理论(Theory of Constraints, TOC)应用于项目管理领域,提出了项目管理的全新方法。Goldratt定义关键链是既考虑工作间的依赖关系又考虑资源间依赖关系的最长的工作序列。
关键链项目管理方法自提出以来,就引起了广泛的反响,被认为是项目管理领域自发明关键路线法(CPM)和计划评审技术(PERT)以来最重要的进展之一。关键链方法在实际应用中已取得了巨大成功,许多国际知名公司纷纷采用关键链方法提高项目管理绩效。例如,希捷科技公司减少一半的新产品开发时间;埃尔比特系统公司能够在两小时内完成全部40件高层管理团队的项目检查;洛德公司的IT团队从100%的项目延迟完成率,变成85%提早或准时完成;美国海军陆战队军舰补给站使用同样的资源,却可完成比原来多出3倍的工作量;宇航系统公司的部门减少 2~4个月的项目时间(节约20~40%),项目收入增加 3700万美元。
2 关键链的确定
不管项目进度如何完善或者在项目进度中各种资源如何很好地在任务执行中发挥作用,但是,如果与项目有关的各关键依赖因素没有被考虑在内,那么这些因素将会对项目的交付造成很大风险。采用关键链进行项目风险管理的第一步是被称为网络建设的过程,即项目的依赖网络的建设过程。这个过程通过一种多途径的方式,可以确保项目所依赖的所有关键因素都不会被遗漏。关键链环境下的依赖网络的建设重点在识别支持项目可交付成果所需的输入上,正如所有有效的项目管理计划过程一样,在项目开始时我们就已知道它的终点在哪里。这种逆向的网络建设方法能够确保在定义项目输入之前就已对项目输出有了良好的理解。任何依赖网络的建设过程都是关于对必要的传递工作的识别和纳入。而这些传递工作将任务链接在一起,形成了关键链。项目计划,即项目的依赖网络,就是将即将发生的项目传递工作的简单汇总,以便在实现项目目标的过程中克服障碍,并在这一过程中将潜在的负面影响减少到最低。这种对项目依赖因素的关注实际上就是对风险的关注,因为在项目计划和进度安排中,对某些依赖因素的忽略将成为未来项目实施中风险的重要来源。
网络建设的最后一步是开发对于任务工期和反复的范围评估。关键链法避免了追求精确评估这一矛盾的想法,而是将每个项目投入的变化和不确定都明确地接受并加以考虑。
针对软件项目的特点和进度风险管理的任务,我们在本文中考虑软件项目中人力资源的约束。在风险分析的基础上,设置项目缓冲区和输入缓冲区,以应对项目过程中的不确定性因素,控制进度风险,确保项目整体的按时完工。首先对项目进行工作分解,估计理想工作条件下各工作的执行时间以及人力资源分配,建立工作节点网络图(Active on Node,AON);然后考虑人力资源的约束,确定工作节点网络图中的关键链;接着采用风险量=风险概率风险时间这样的技术风险评估技术,对每项工作进行风险分析,在此基础上,为关键链配置项目缓冲,为非关键链配置输入缓冲;最后,在项目进行过程中,通过对缓冲区的监控,进行计划风险的管理。对项目进行工作分解之后,我们以工作在理想工作条件下的完成时间来估计该工作的执行时间。所谓理想工作条件是指既不考虑风险因素,也不考虑资源约束的理想状况。这样的理想工作条件实际是不存在的,就如同物理学研究中经常用到的理想气体一样。之所以采用理想工作条件下的完成时间(简称为理想工作时间),而不是Goldratt的50%完成的时间,是由于在50%的时间内肯定是不能完成工作的,太过紧张的计划时间会给工作执行人员造成不必要的压力,从而加大了项目的系统功能风险。而理想工作时间既不会因为有大量安全时间的存在而出现所谓学生综合症、帕金森症等工作积压现象,又因为其存在按时完成的可能性而对工作执行人员起到激励的作用。建立工作节点网络图。网络图中每个工作节点有一个三元组属性(a/b/c),其中a为理想工作条件下的工作执行时间估计,b是该项工作需要的资源,c是所需资源的数量。与CPM不同的是,关键链技术不是单纯以时间最长的路径为关键路径,而是在考虑了工作所需资源之后,根据资源约束,对网络图中工作的紧前关系进行必要的调整,然后再由工作时间,找出此时的关键路径,也就是关键链。我们以一个简单的软件开发项目为例来说明方法的应用。该项目开发所需要的人力资源有:R1系统设计人员,R2程序开发人员,R3数据库开发人员,R4系统测试人员。其中工作时间a是考虑到不确定因素的非理想工作条件下的工作执行时间。