目进行工作分解,估计理想工作条件下各工作的执行时间以及人力资源分配,建立工作节点网络图(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 结语
本文讨论了基于关键链的软件项目风险管理方法。以理想工作条件下各个工作的执行时间建立工作节点网络图,考虑人力资源的冲突,确定关键链。在对各个工作进行风险分析的基础上,配置项目缓冲区和输入缓冲区,以消除不确定性,保证整个项目的按时完工。项目过程中,通过对缓冲区的监控和管理,实现对软件项目的风险管理。