关键链技术在信息系统开发项目进度管理中的应用

2019-07-15 01:52孙嫣然
现代计算机 2019年16期
关键词:缓冲区工期关键

孙嫣然

(上海海事大学经济管理学院,上海 201306)

0 引言

随着企业现代化管理水平要求的不断提升,各类信息化技术逐渐覆盖到企业管理的各个层面,尤其是管理信息系统的应用更是日益广泛,而与此同时信息系统工程的开发规模日趋庞大,研发难度日益复杂。关键链进度管理理论的核心是指出制约项目工期的是关键链而并非关键路径,具体在应用过程中通过设定项目缓冲、汇入缓冲和资源缓冲来降低项目中不确定因素对进度执行计划的影响,确保了在确定环境下编制的进度计划能够在实际生产环境下具有一定的弹性。本文以此展开,主要研究内容即从理论模型、实例分析和量化验证三个方面出发,深入探讨适用于信息系统项目的进度管理方法,并使该方法模型具有良好的理论指导和实践指导意义。

1 进度管理研究现状

1.1 关键链进度管理研究现状

在关键链进度管理理论提出之后,引起了国内外学者的广泛关注和研究。国外学者Wei CC(2002)[1]将经典的项目进度管理理论方法与约束理论结合,对资源受限情况下项目任务调度提出了管理和实施思路。学者Hoel(1999)[2]提出了一种项目缓冲区和汇入缓冲区的大小新设定算法。国内学者唐建波(2004)[3]在详细阐述关键链进度管理技术基础上,提出一种启发式算法用以解决多资源约束条件下的进度编排问题。马国丰(2007)[4]从定量分析角度出发,对关键链进度计划问题建立基于遗传算法的数学模型,通过该模型有效实现了满意程度下项目任务排序,并为关键路径演变成关键链提供了定量支撑。褚春超(2008)[5]提出了关键链项目管理中缓冲区设定新方法,该方法综合考虑了项目资源紧张度、网络结构图复杂度和管理者风险偏好等因素的影响,使关键链上工序汇入缓冲和项目缓冲大小设定适当。刘士新(2006)[6]针对RCPSP问题建立了多目标优化调度模型,设计了基于关键链的项目调度算法,保证了项目计划在非确定环境下的稳定执行。

1.2 信息系统项目进度管理研究现状

近年来由于企事业单位在信息系统方面的应用不断拓展,针对信息系统开发项目的进度管理研究同样成为学术界重点关注的一个问题。张雪娇(2011)[7]构建了基于关键链技术和敏捷迭代方法的软件项目进度管理模型,其主要特点是在敏捷迭代框架内,采用基于启发式算法的抢夺式排程方法完成开发项目中的任务调度,以保证项目能够顺利交付。程睿(2011)[8]提出了多项目环境下关键链进度管理模型,核心是利用二级模糊综合评价法来确定项目的优先级,从而建立了信息系统开发项目的优先级评价体系。吴文鸣(2011)[9]从软件协同开发视角出发提出了一种综合考虑协同工作带来的不确定性影响的缓冲区计算方法,并针对该方法在设置汇入缓冲区时存在的问题,提出了解决方案。

2 基于关键链技术的信息系统项目进度管理模型

2.1 模型假设

在构建具体的进度管理模型之前,本文作如下前提与假设:

(1)进度计划中任务有且仅有四种状态:等待调度、挂起、执行和完成。

(2)进度计划中各个任务的工时、所需资源均为预测和估算值。

(3)进度计划中各个任务均无前期准备时间。

(4)进度计划中所有资源可重复循环使用。

(5)两个任务间在同一时刻至多存在一种资源冲突。

(6)项目内任何一种资源数量至少必须满足某个单一任务的需求量。

(7)每个交付任务都已达到计划要求的质量标准且无质量问题。

2.2 模型构造

本文结合约束理论和PERT三点时间估计法,采用优化的间接估计法来完成工期估算,核心是去除过多安全时间,以50%的完成概率来估计每个任务工期。根据PERT理论,对每项任务预先估算出最乐观时间To、最可能时间Tm和最悲观时间Tp。这三个时间服从三角分布,概率密度函数和累计分布函数分别如式(1)和式(2)。

其中a为下限即最乐观时间,c为众数即最可能时间,b为上限即最悲观时间。

根据CPM关键路径法的介绍,在完成任务工时估算并确定各项工序前后逻辑约束的基础上,我们利用正推法和逆推法来确定各个任务四个重要时间参数:最早开始时间ESi、最早结束时间EFi、最晚开始时间LSi、最晚完成时间LFi,进而计算得出各条路径的浮动时间TFi,选择浮动时间为0的路径即为关键路径。

以关键路径为基础,对有资源冲突的工序优化采用最多策略的是资源有限网络计划的启发式方法。考虑到信息系统项目在推进过程中主要约束来源与各类开发人员,因此在利用平行启发式算法进行任务排序过程中,选用“最大资源需要量(MaxR)”优先准则。

缓冲区大小的设定是关键链结束的核心所在,它在对不确定因素的有效对冲方面发挥着重要作用。本文在两种经典方法Goldratt的剪切/粘贴法和根方差法的基础上,通过引入影响因子Δμi来改进根方差法,具体计算时影响因子αi根据当前任务的复杂度和资源约束情况而变动。改进后的缓冲区计算公式如下:

其中任务复杂度用下式来表示:

资源紧张程度如下式:

缓冲区的管理是关键链技术中最后一项关键任务。具体即在进行进度监控时,依据两个参考指标来判断是否采取相关措施来保证项目进度,即项目缓冲区消耗率和关键链路任务完成率。

3 实证分析

3.1 模型应用

Y公司原有一套基于C/S结构的销售管理信息系统,对各项数据的收集、分析、共享等仍然靠手工操作。相关各类单据没有统一的标准格式,整理花费时间量大,效率底下。因此Y公司决定在升级原有系统的基础上,重新规划设计一套新的销售管理平台,并在一年内实现新老平台平稳过渡。

实施过程中,该系统开发项目所涉及的具体工作任务工期由项目经理和Y公司信息科技部相关负责人结合调研情况和项目最晚上线时间共同估算得出,各工序前后逻辑关系由项目团队分析得出,具体表1所示:

表1 初始任务工期表

在完成每个任务的三个估算时间后,令任务工时累计分布函数F(x)=0.5,求出50%完工概率下的任务工期xi作为期望工期Te,即:

我们首先利用正推法从第一项任务开始,依次计算出每个任务的最早开始时间ES和最晚结束时间EF,之后逆序从最后一项任务开始,采用逆推法计算出每个工作任务的最晚开始时间LS和最晚结束时间LF,根据LF和EF的差值就可以计算出任务浮动时间TF。具体如表2。

我们可以直观得出:

关键路径为 A→B→C→D→F→I→J→L→M→N→O;

项目总工期为8+17+9+20+19+24+37+18+14+8+4=178(D),约为 26 周。

首先计算各任务的安全时间Δti(95%完工概率工期与50%完工概率工期差值),其次计算各任务的复杂度αi和资源紧张度βi并得出影响因子Δμi最后根据计算结果在关键链后设置项目缓存PB,在两个非关键链之后分别设定汇入缓冲FB1和FB2。添加完项目缓冲和汇入缓冲后,依然需要重新计算项目各任务的时间参数。设定项目缓冲和汇入缓冲后的项目排程如下,关键链更新为 A→B→C→D→F→I→FB1Lag→J→L→M→N→O。

表2 任务工期表

图1 项目排程图

3.2 蒙特卡洛仿真分析

蒙特卡洛仿真是通过随机数值模拟的方法,以大量随机事件出现的频率估计其概率,或者以抽样的数字特征估算随机变量的数字特征,并将其作为问题的解。我们可以在计算机上使用R语言编程完成整个仿真建模、计算统计以及数据可视化过程。具体的模拟仿真步骤如下:

(1)确定随机变量的概率分布类型

此处随机变量即为项目中的各个工序,概率分布类型为三角分布。

(2)产生已知分布的随机序列

根据三角分布的累计分布函数,我们可以推导出任务的工期计算公式:

由此,Ri即为我们需要生成的随机数序列,具体是利用R语言runi(f)函数产生(0,1)区间上的均匀分布随机数作为完工概率,进而生成每个任务工期的随机序列。

(3)工期求和

将第二步随机产生的各个任务工期分别累计求和,即为随机生成的关键链总工期、非关键链总工期。

(4)确定总工期的概率分布模型

利用R语言,重复循环n次第二步和第三步操作,产生大量的试验随机变量,即足够多的关键链和非关键链总工期随机序列,依据强大数定律,循环次数越多则试验数据越接近实际值(频率趋近于概率)。

根据如上所述的仿真建模思路,设定n=10000,即重复试验10000次,分别生成关键链总工期和非关键链总工期各10000组试验数据。我们可以发现项目总工期的概率分布是呈正态分布形状,因此根据正态分布的数字特征可求出位置参数μ和标准差σ,其中即为总工期的均值。针对关键链,工期均值E为175.44,标准差δ为5.06,根据正态分布累计分布函数,我们可以调用R语言中qnorm(p,mean=175.44,sd=5.06)函数,依次求出95%~100%完工概率下的总工期长度,进而对三种缓冲区大小设定方法进行效果判别。

针对本文所描述的Y公司销售管理系统,采用经典的剪切粘贴法和优化的根方差法来设定缓冲区大小,可以得到较好的利用率。相比较剪切粘贴法,本文提出的优化根方差法可使项目进度控制时拥有较为平稳的缓冲区利用率,在不同完工概率情况下均可以保证项目能够按期交付,整体上应用该模型能够较好地解决时间和风险的矛盾。

表3 缓冲区大小利用率

4 结语

基于关键链技术的项目进度管理方法,在充分考虑项目资源约束的条件下,通过构建缓冲区,压缩安全时间有效解决了项目工期过长、资源冲突等问题,给项目团队带来了明显经济效益和社会效益。关键链进度管理理论自提出到现在,一直受到了国内外项目管理领域的广泛关注,但是由于其提出时间较晚,在实际工程项目中的应用偏少,很多具体运用方法、实施方案都存在需要不断完善的地方。而本文主要以信息系统项目为切入点,就如何将关键链进度管理技术有效应用到信息系统的开发项目中,提出了自己的管理思路和管理模型。

猜你喜欢
缓冲区工期关键
硝酸甘油,用对是关键
高考考好是关键
律师解疑
缓冲区溢出漏洞攻击及其对策探析
软件项目管理中工期问题研究 
浅谈缩短核电站安全壳打压试验时间的可行性
初涉缓冲区
蒋百里:“关键是中国人自己要努力”
本期导读
Linux系统下缓冲区溢出漏洞攻击的防范