改进关键链技术的信息工程监理进度控制研究
2021-08-27郑志远刘宏志李海生
郑志远,刘宏志,李海生
(北京工商大学 计算机学院,北京 100048)
0 引 言
随着当今社会中不同领域对于信息系统功能多样性需求的不断增加,信息系统的开发受到了人为因素和社会因素的影响,这导致了项目进度的拖延,延长了项目的交付时间。因此在信息系统监理中对于项目进度控制的准确性以及高效性有了更为严格的要求。在信息工程监理[1-3]中,有“四控三管一协调”这八个方面来对信息系统的开发[4]进行管理,其中进度控制[5]是尤为重要的一项。同时关键链技术在建筑工期控制等方面应用较多,而在信息工程监理中却很少有尝试,因此,将关键链技术运用在信息工程监理中是一个可深入研究的方向。
1997年,Goldratt博士提出了关键链(critical chain method,CCM)[6]这一方法,使得工程进度的管理及控制走向了一个新的高度。它的核心思想是利用设置的一个缓冲区以平衡各类不确定的影响因素对于完工时间的影响。一般对于缓冲区设置的方法有两种:剪切/粘贴法和根方差法[7]。剪切粘贴法的原理是用50%的安全时间作为缓冲的大小,但此做法过于单一,在信息系统的开发当中有许多不同属性的工序,而把这些不同属性的工序的安全时间做统一处理没有体现工序与工序之间的差异,因此这样的做法是很不合理的。
根方差法的原理是利用安全时间的50%作为标准差,并以链路标准差的两倍来设置缓冲区,但此方法侧重于中心极限的思想,将各个工序单独分开来计算时间,与实际的项目进展不符。因此许多学者在此方法上进行了改进。
国外学者Iranmaneshetal H[8]在综合考虑了资源约束、工序风险以及工序在项目网络之中的位置,改进了缓冲区大小的计算公式,由此提高了项目进度的精确程度;李建中等[9]利用模糊综合评价法对各种影响因素实行了贴近实际的量化计算,效果显著,且主观性较强;因此以上方法对于信息工程监理中的进度控制具有一定价值。
国内研究者马萍等人[10]引入关键链思想,根据项目自身特点从不确定性出发,建立层次分析法与熵权法主客观组合赋权模型,并结合灰色关联分析法改进缓冲区的计算方法,加强了项目进度控制的力度;孙嫣然[11]结合信息系统项目特点,以关键链进度管理理论为支撑,研究适合于信息系统项目的进度管理模型,并以此能够对相实践起到指导作用。结合具体实例,对所建模型进行实证分析并应用蒙特卡洛方法对进度管理过程进行量化验证。以上研究对于信息工程监理的进度控制研究具有很高的参考价值。
该文将基于改进的关键链算法引入到信息工程监理的进度控制中,利用三角模糊数来量化工期的不确定性,并估算出安全时间;根据信息工程监理的特点,引入安全时间评价系数来进一步地对安全时间进行调整以使得信息工程项目可以按时保质保量的完工。分析各种不确定的影响因素并进行量化,使得不确定的影响因素尽可能贴合实际的影响,使得预估工期与实际工期更加接近。
1 理论背景
1.1 关键链法基本原理
关键链法的核心思想是从关键路径算法中衍生的,该方法是利用综合分析资源的约束程度和各个工序之间的关联后,将不同工序的安全时间算出,并设置缓冲区以达到项目可以按时完成的目的。这种方法相比于传统的管理方法,提高了对项目进度的控制力度。
在关键链中,通常把缓冲区分为以下三种:
(1)资源缓冲RB,它一般被放在相连的两个任务之间,目的是预防所需资源不足的情况发生。
(2)汇入缓冲FB,此缓冲区是为了防止两个相连的任务之间因为其他任务的插入而延期的缓冲区。
(3)项目缓冲PB,是对项目的按时完成的一个限制,一般设置在关键链末端。
在对缓冲区量化时,传统的关键链法是直接把安全时间的50%作为缓冲区的量,但这忽略了工序与工序之间的关联以及差异,计算出来的时间与实际时间相差较多。因此,为了使偏差缩小,就要对安全时间的算法进行改进。
1.2 安全时间算法改进
该文根据工期预测的不确定性这个特性,结合三角模糊数[12]来确定三种预计的工期完工时间。工序i的活动工期ti,对应的三角模糊数(ai,bi,ci)分别表示工序i最理想工期、最可能工期、最悲观工期。
三角模糊数的隶属函数μ(ti)表示为:
(1)
其函数图像如图1所示。
图1 三角模糊数函数
因为各个工序之间存在联系和差异,因此一致性指数(AI)[13]的性质很适合衡量两个模糊事件(两个工序)的关联性。该文利用AI来计算各个工序的预估时间,其公式为:
(2)
一致指数的含义是指模糊事件(A)有多少比例会影响模糊事件(B),也表示事件(A)相对于事件(B)的重要性程度。一般情况下AI<1,当事件(A)对于事件(B)最重要且唯一时,AI(A,B)=1,但一致指数并不具备对称性,即当AI(A,B)=1时,并不能得出AI(B,A)=1。在信息工程监理中不同工序之间的联系是不同的,因此出现因为工序A进度的延期,导致与之联系最为紧密的工序B也延期的现象屡见不鲜。因此通过利用一致性指数AI来对工期进行计算,可以减少因为工序之间相互关联而产生的误差。其具体计算公式如下:
(3)
经变换后得出:
(4)
1.3 安全时间评价系数
同时,该文根据信息工程监理[14]的特点设置了安全时间评价系数ω,用来从监理师的角度对所预估的安全时间做出调整,以此加强对项目进度的更精确的控制。其公式为:
(5)
式中,k为参与安全时间评价的人数,nk为第k人对安全时间评价的分数,若安全时间完全符合现有要求,则nk=1;若监理师认为此安全时间可以适当缩短,则ω<1,但若ω≤0.7,则可能需要建议开发方重新计算安全时间或者与开发方协商。反之,若监理师认为此工序比较复杂且有多因素影响,则可适当增加安全时间ω>1,但若ω>1.5,则需要与开发方进行协商以对此工序的安全时间做出合理的预估。因为安全时间评价系数会受到评价分数极值的影响(权重大),因此建议在计算安全时间将分数的最大值以及最小值去掉,再计算安全时间评价系数。文中为减小误差,采用真度95%与真度50%的模糊工期的差值作为工序安全时间,计算公式如下:
σ=(tiω)0.95-(tiω)0.5
(6)
2 缓冲区设置
2.1 关键路径
在完成各个任务工时预估以及商榷、敲定各项工序前后之间的关系之后,我们需要利用正推法和逆推法来计算每个任务四个重要时间参数:任务最早开工时间ES、任务最早完工时间EF、任务最晚开工时间LS、任务最晚完工时间LF,进而计算得出各条路径的浮动时间TF,完成了这些计算,我们只需寻找时间变动为零的路径即为关键路径。
2.2 量化处理
关键链法的创新之处在于设置缓冲来平衡工期与不确定因素的矛盾,以提高项目的完工率与稳定性。该文主要从以下4个不确定因素进行量化[15]:
(1)路径复杂度:工期的前置工序越多,不确定性程度就越大,应设置大的缓冲区避免工期延误。
设N1=路径复杂度,有:
(7)
其中,n表示工序在最长路径中的位置;R表示通过工序最长路径的工序数。
(2)任务困难程度:在一个项目中,某个任务的困难程度越高,那么它的完工率可能越低,相反越简单的任务,那么它的完工率有可能就会越高。设N2=任务难度系数,由项目组以及监理师评估得出。评分标准如表1所示。
表1 任务难度评价标准
(3)风险预估系数:以三点估计法的最理想时间X、最可能时间Y以及最悲观工期Z来确定风险系数的大小,若Y越接近X,则此任务按时完工的几率高;相反,则任务按时完工的几率偏低。
设N3=风险预估系数,有:
(8)
(4)资源满足度:在信息系统开发时,资源的分配会影响到不同模块开发的进度、质量等方面,因此预估任务的资源是否足够达到目标是很有必要的。设N4=资源满足度,采用百分比来计算。若资源完全满足任务需求,则资源满足度为100%;若资源满足度低于50%,则需给当前任务增加额外时间或者提供更多的资源以保证任务的顺利进行,此项由开发团队以及监理师共同商议决定。
2.3 影响因素权重的计算
确定影响因素的权重,采用如下方法:
层次分析法:首先采用1~9标度法[16]将影响因素两两比较构造判断矩阵P,计算特征向量αi以及特征值λmax,之后计算一致性检验指标CI,其中:
(9)
其中,n为影响因素个数(矩阵行列数)。
2.4 缓冲区计算
缓冲区大小的设置[17]是关键链的核心所在,它在对不确定因素的有效对冲方面发挥着重要作用,且根方差法比较符合时间累加的统计规律。该文在经典方法根方差法的基础上,通过引入影响因子[18]βi来改进根方差法。影响因子βi表示为:
βi=(N1iα1+N2iα2+N3iα3+N4iα4)
(10)
其中,i为第i个任务,α1为N1影响因素的权重,以此类推。
改进后的缓冲区计算公式为:
(11)
3 实例分析
3.1 项目背景
某公司原有的销售系统因为优化不足的问题,打算委托X公司开发出一套新的销售系统,并希望能在一年至两年内实现新平台平稳过渡。
任务工期由X公司项目经理和监理师结合研讨情况和项目最晚可以投入使用的时间共同预估得出,各工序前后逻辑关系由项目团队分析得出,具体如表2所示。
表2 项目基本信息
3.2 预估工期计算及关键路径
根据表2中每项任务估算的三项时间,利用式(4)计算各个工序的预估工期Ti。之后,根据上文中所提及的正推法和逆推法得出重要的时间参数,选择浮动时间为0的路径为关键路径。此外还需进行安全评价系数的计算,具体如表3所示。
表3 关键路径计算
由表3可以直观地看出关键路径为:A→B→C→D→F→I→J→L→M→N→O
得出关键路径之后,在两个非关键路径后插入两个汇入缓冲:FB1、FB2。以及在关键链末端插入项目缓冲:PB。插入缓冲后的网络计划如图2所示。
图2 插入缓冲后的网络计划
3.3 缓冲区的计算
首先根据2.2节中各个影响因素的计算方法进行数据的量化处理,之后采用1~9标度法将量化后的影响因素两两比较构造判断矩阵P:
通过计算矩阵P得出特征值λmax=4.06,此时αi=(0.316,0.215,0.254,0.215)。
根据式(9)CI=0.020;通过查表RI=0.90,此时一致性比例CR=0.022 2,CR<0.1满足一致性检验。之后根据表2、表3中的数据计算关键数据,计算后的关键数据如表4所示。
表4 关键数据
根据表4计算项目缓冲PB和汇入缓冲FB。
FB1=1.7 d
FB2=2.3 d
PB=3.0 d
3.4 仿真分析
为了验证改进的关键链法的有效性,运用Oracle Crystal Ball[19]进行蒙特卡洛模拟。蒙特卡洛是一个在离散系统中进行模拟仿真[20]中有着较好效果的模拟方法,它的核心思想是建立与所要模拟的系统性能相似的概率模型,之后并进行随机实验,这样就可以模拟系统中出现的各种影响因素。要确保实验误差相对较小,因此选定的实验次数要多,文中的实验次数取5 000。
模拟结果如图3和图4所示。
图3 95%保证率改进关键链法项目工期频数分布图
图4 95%保证率关键链法项目工期频数分布图
通过对比观察可知,采用改进关键链法,确定性为100%时只需要179.0天,而直接采用关键链法确定性为100%时则需要184.3天,同时两者在相同的保证率情况下,改进关键链法的完工时间少于直接关键链法的天数,证明改进关键链法的效果较好。
4 结束语
在当今信息工程监理领域中,大部分的进度控制方法忽略或者简化了影响因素的处理以及资源的协调性,使预期的计划很难顺利进行。而关键链正是综合考虑了资源约束和工序的逻辑关系,通过分析和计算得出可以平衡影响的缓冲区来使项目能够顺利进行。文中根据信息工程监理中出现的各种影响和问题,对关键链法中缓冲区的算法进行了改进。同时针对信息工程监理的特点,提出了安全时间评价系数,从监理师的角度对项目的计划进度进行评价及优化,从而加强对项目进度的控制。最后通过仿真实验的分析结果表明,该改进方法在完工率较高的同时,可有效地控制项目的进度。这为信息工程监理提供了一种有效的进度控制方法。