基于关键链的项目风险管理.doc
基于关键链的项目风险管理 摘 要:关键链项目管理方法是约束理论在项目管理上的应用 ,是近年来项目管理领域的重要创新。与传统的项目管理方法相比 ,该方法强调在制定项目计划时考虑现实存在的资源约束 ,在项目执行过程中的动态管理 ,以及整个项目管理流程的持续改进。文中讨论基于关键链的软件项目管理方法。基于软件过程工作分解结构 ,预测各项工作在理想工作条件下的工期 ,考虑人力资源的约束与冲突 ,建立项目的关键链。通过对各项工作的风险分析 ,为关键链、非关键链分别设置项目缓冲、输入缓冲 ,通过对缓冲区的监控来进行风险的控制和管理。 关键词:项目管理 ;风险管理 ;关键链 基于关键链的项目管理不仅仅是关键链的进度安排及缓冲管理 ,还为进度安排及控制提供了有效的风险管理方式 ,也对项目管理起始环节的范围管理和计划管理、有效的资源配置行为以及减少项目间的相互影响等方面的风险管理发挥作用。 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 系统测试人员。工作节点网络图见图 1。其中工作时间 a 是考虑到不确定因素的非理想工作条件下的工作执行时间。图中粗线标识的路线是时间关键路径。 由于考虑到人力资源约束 ,从图 1 中可以看出 ,工作 3 和工作 4 资源冲突 ,工作 2、 5 和工作 6 也存在资源冲突 ,我们将它们之间的并行执行关系转化为串行执行 ,如图 1 中虚线所示。同时重新按理想工作条件估计每项工作的执行时间 ,从而得到图 2。图 2 中的工作时间是理想工作时间 ,粗线标识的是考虑了人力资源约束之后的项目关键链。 3 基于关键 链的风险管理 为了保护关键链上的工作而不影响到整个项目的计划进度 ,关键链技术要求为关键链设置项目缓冲区 ;同时为了防止非关键链上的工作影响到关键链上工作的进度 ,在非关键链与关键链的汇合处设置输入缓冲。那些不是基于关键链的项目往往依赖于任务和任务终止日期 (里程碑进程表 )所内含的安全性来控制项目进程。而这种方式的风险在于 ,将使项目遭受共同资源行为的影响 ,降低提前完成进度的能力。基于关键链的项目采用接力赛式的管理方法 ,它鼓励一旦获得所需要的资源就立即交接进入下一阶段的任务输入 ,一旦完成本阶段的任务就立即交接该阶 段的项目输出。团队成员开始及完成任务的方式是 ,尽快执行并将工作传递给下一个资源 ,尽其所能尽早传下去。基于关键链技术的软件项目风险管理是通过对缓冲区的监控进行的。在关键链管理方式下 ,任何任务都可以消耗项目缓冲或汇入缓冲。当一项任务实际耗时 超过估计时间时 ,它将占用相关缓冲。通过对缓冲区的监控 ,即缓冲区消耗的程度与关键链完成的程度进行比较 ,可以部分的判断出项目执行状态。因此 ,我们为缓冲区设置了安全底线 ,在项目进行过程中 ,定时观测缓冲区的大小 ,若缓冲区处于安全底线以上 ,认为工作情况正常 ,低于安全底线 ,则有必要采取 风险措施。 4 结语 本文讨论了基于关键链的软件项目风险管理方法。以理想工作条件下各个工作的执行时间建立工作节点网络图 ,考虑人力资源的冲突 ,确定关键链。在对各个工作进行风险分析的基础上 ,配置项目缓冲区和输入缓冲区 ,以消除不确定性 ,保证整个项目的按时完工。项目过程中 ,通过对缓冲区的监控和管理 ,实现对软件项目的风险管理。