3 软件项目缓冲区的设置
为了保护关键链上的工作而不影响到整个项目的计划进度,关键链技术要求为关键链设置项目缓冲区;同时为了防止非关键链上的工作影响到关键链上工作的进度,在非关键链与关键链的汇合处设置输入缓冲。Goldratt是以链上所有工作预测工作时间时节省下来的安全时间的50%作为缓冲区的大小。本文考虑以各项工作的风险量之和作为缓冲区的大小。
采用文献中提出的技术风险分析方法为每项工作进行风险分析。在本文中,只关注时间进度风险暂时不考虑风险费用,因此风险量=风险概率×风险时间。
项目缓冲区的大小等于关键链上所有工作的时间进度风险量之和:
4 基于关键链的风险管理
缓冲区的设置是为了应对项目过程中可能出现的不确定因素,进行风险的监控和管理。Goldratt对于缓冲区的管理是采用“三色”管理办法,将缓冲区三等分,每个部分分别以绿、黄、红三色表示。在项目进行过程中,检查缓冲区的占用情况。对缓冲区的占用处于绿色区时,认为情况良好;处于黄色区时,一般不采取特别的措施,而是进一步观察并制定风险计划;若缓冲区已被占用到红色区,说明项目已经存在相当严重的进度风险,必须采取相应的补救措施。
基于关键链技术的软件项目风险管理通过对缓冲区的监控进行。关键链技术消除了每项工作的开始日期、完成日期,取而代之的是每条链的起止时间。但是我们是以每项工作的进度风险量之和设置缓冲区的大小,因此要避免各项工作的实际工作时间超出(估计时+风险时间)。我们为缓冲区设置了安全底线,缓冲区的安全底线反映的是项目过程中各时刻缓冲区大小的最小值。在项目进行过程中,定时观测缓冲区的大小,若缓冲区处于安全底线以上,我们认为工作情况正常,低于安全底线,则有必要采取风险措施。
由表1,得到图4的项目缓冲区划分。如图中所示,若项目过程中观察到缓冲区处于安全底线以上的区域,则工作执行情况良好;若处于安全底线以下的区域,则有必要根据风险计划,采取相应的风险措施。
5 结语
本文讨论了基于关键链的软件项目进度风险管理方法。关键链技术不仅考虑了工作间的紧前关系约束,还考虑了工作间的人力资源冲突。以理想工作条件下各个工作的执行时间建立工作节点网络图,考虑人力资源的冲突,确定关键链。在对各个工作进行风险分析的基础上,配置项目缓冲区和输入缓冲区,以消除不确定性,保证整个项目的按时完工。项目过程中,通过对缓冲区的监控和管理,实现对软件项目进度风险的管理。
但是,基于关键链的进度风险管理方法还存在一些问题。譬如,资源冲突时关键链的一般确定方法;存在多个资源约束时关键链的确定方法;基于缓冲区的进度风险的管理和监控等,这些都还有待作进一步研究。