作为项目进度延期的重要原因之一,返工一直以来都是项目管理中的难点。尽管关键链项目管理方法为应对项目进度风险提供了有力的工具,但它假设活动的持续时间是互相独立的,在返工情境下并不适用。此外,活动因潜在返工而拥有的特征也未在进度管理中被利用。因此,本文试图提出一个返工情境下的缓冲管理框架,以填补这块空白。具体来说,本文引入设计结构矩阵来描述活动之间的依赖关系,以更精确地确定缓冲大小;此外,本文利用活动因返工而拥有的敏感性指标对缓冲进行分配,以将管理者有限的注意力集中在最关键的活动上。最终,模拟结果表明,本文提出的缓冲管理框架可以提供更可靠的项目工期估计并获得更高的项目按时完工率。 As a major cause of the prolonged project process, rework has long been a challenge in project management. Although critical chain project management provides a powerful tool for dealing with schedule risks, it assumes activities’ durations are independent of each other, which is inappropriate in rework situations. Besides, activities’ features that arising from potential rework are not utilized in schedule management. Hence, this paper tries to propose a buffer management framework in rework scenarios to fill the gap. Specifically, a design structure matrix is introduced to depict activities’ dependencies, thus the buffer size can be determined more precisely. Meanwhile, a sensitivity indicator related to rework is applied to allocate buffer, thus managers’ attention can be focused on the most critical activities. Finally, the simulation result demonstrates that the proposed framework in this paper can provide a more reliable estimate of the project duration and obtain a higher on-time completion rate.
作为项目进度延期的重要原因之一,返工一直以来都是项目管理中的难点。尽管关键链项目管理方法为应对项目进度风险提供了有力的工具,但它假设活动的持续时间是互相独立的,在返工情境下并不适用。此外,活动因潜在返工而拥有的特征也未在进度管理中被利用。因此,本文试图提出一个返工情境下的缓冲管理框架,以填补这块空白。具体来说,本文引入设计结构矩阵来描述活动之间的依赖关系,以更精确地确定缓冲大小;此外,本文利用活动因返工而拥有的敏感性指标对缓冲进行分配,以将管理者有限的注意力集中在最关键的活动上。最终,模拟结果表明,本文提出的缓冲管理框架可以提供更可靠的项目工期估计并获得更高的项目按时完工率。
返工,关键链项目管理,设计结构矩阵
Jing Xu*, Guofeng Ma
School of Economics and Management, Tongji University, Shanghai
Received: Jan. 15th, 2024; accepted: Mar. 20th, 2024; published: Mar. 28th, 2024
As a major cause of the prolonged project process, rework has long been a challenge in project management. Although critical chain project management provides a powerful tool for dealing with schedule risks, it assumes activities’ durations are independent of each other, which is inappropriate in rework situations. Besides, activities’ features that arising from potential rework are not utilized in schedule management. Hence, this paper tries to propose a buffer management framework in rework scenarios to fill the gap. Specifically, a design structure matrix is introduced to depict activities’ dependencies, thus the buffer size can be determined more precisely. Meanwhile, a sensitivity indicator related to rework is applied to allocate buffer, thus managers’ attention can be focused on the most critical activities. Finally, the simulation result demonstrates that the proposed framework in this paper can provide a more reliable estimate of the project duration and obtain a higher on-time completion rate.
Keywords:Rework, Critical Chain Project Management, Design Structure Matrix
Copyright © 2024 by author(s) and beplay安卓登录
This work is licensed under the Creative Commons Attribution International License (CC BY 4.0).
http://creativecommons.org/licenses/by/4.0/
进度作为项目管理“铁三角”目标之一,一直以来都是项目管理者关注的重点。随着经济的发展,越来越多超大型的复杂项目逐渐出现,返工也变得越来越常见,造成了项目工期的延长。因此,可以说,在新时代,进度管理仍是项目管理者眼中的一大难题,而返工作为项目进度延期的关键原因之一,也受到了越来越多的关注。
自甘特图提出以来,项目进度管理工具已经发展了好几代,目前,诸如计划评审技术等的网络计划技术仍是实际应用中的主流。然而,这些传统技术无法有效管理返工。关键链项目管理(Critical Chain Project Management, CCPM)是一种相对较新的工具,主张将各活动的安全时间提取出来统一管理,形成缓冲对抗项目执行过程中的不确定性 [
总体而言,目前为止,还没有一个成熟的、能够很好管理项目返工的进度工具。因此,研究一种新的、能够有效管理返工风险的进度管理工具是非常有必要的。
在CCPM中,缓冲是从活动中提取的安全时间的总和,它可以吸收不确定性,确保项目的按时完成。缓冲管理是CCPM的本质 [
由Goldratt提出的剪切粘贴法(Cut and Paste Method, C&PM)是最经典的缓冲设置方法 [
与缓冲设置相比,在缓冲监控上的研究相对较为缺少 [
图1. 缓冲监控方法
图2. DSM中的信息流和活动逻辑关系
DSM非对角线上的单元中的标记可以表示从该单元对应的列元素到该单元对应的行元素之间的信息流(图2),因此,其在表示具有多重信息依赖的复杂系统时非常有用 [
许多研究表明,CCPM和DSM可以与其他技术结合。例如,CCPM与风险管理技术 [
肖宇 [
综上,本文在注意到上述局限性后,尝试提出一个既能根据返工情况合理设置缓冲大小,又能依据活动返工特征精细监控缓冲消耗的缓冲管理框架,从而为返工情形下的项目进度管理提供工具。
本文涉及的符号及其含义见表1。
符号 | 含义 | 符号 | 含义 |
---|---|---|---|
n | 活动数量 | i, j, k | 活动代号/活动执行顺序 |
D S M ( i , j ) | 衡量活动j至活动i之间是否存在信息流的0~1变量 | ||
R T i 1 | 活动i的一阶返工时间 | R T i 2 | 活动i的二阶返工时间 |
R T i 3 | 活动i的重叠返工时间 | R T i | 活动i的总返工时间 |
R P ( i , j ) a | 由从活动j至活动i的信息引起的活动i返工的概率 | R I ( i , j ) a | 由从活动j至活动i的信息引起的活动i返工的程度(必须要返工的工作量百分比) |
I C i a | 活动i的进步曲线 | ||
D i | 活动i的工期 | s i | 活动i的开始时间 |
O ( i , j ) | 活动i与活动j重叠的百分比 | S T i | 活动i应设置的安全时间 |
PB | 项目缓冲 | CC | 关键链上的活动集合 |
P B R | 吸收返工造成的不确定性的项目缓冲 | P B E | 吸收其余不确定性的项目缓冲 P B E = P B − P B R |
P E C i | 活动i的潜在影响关键度 | P B i | 分配给活动i的项目缓冲 |
B C i y | P B i 对应的黄色阈值 | B C i r | P B i 对应的红色阈值 |
B C y | P B R 对应的黄色阈值 | B C r | P B R 对应的红色阈值 |
P C i | 活动i完成的比例 | a , b y , b r | 相对缓冲监控阈值涉及参数 |
表1. 符号及含义
注: R P ( i , j ) 、 R I ( i , j ) 、 O ( i , j ) 均为DSM的特定表现形式;a来自Browning和Eppinger [
如上所述,DSM上三角中的标记表示的活动之间的逆向信息流是造成返工的重要原因。然而,通过重排活动顺序,可以改变甚至简化这些信息流,从而降低项目返工风险。也即,重排DSM的行列元素,使上三角中的标记数量尽可能小,或尽可能贴近对角线,可以降低活动返工风险。
DSM元素的排序是一个NP-Hard问题,多用启发式算法解决。因此,本节采用遗传算法,以降低返工风险为目标,以迭代次数为停止准则,优化项目活动顺序。具体而言,遗传算法算子组合参考Meier等人的建议 [
max { 455 − 0.3 × ∑ i = 1 n ∑ j = i + 1 n D S M ( i , j ) − 0.7 × ∑ i = 1 n ∑ j = i + 1 n D S M ( i , j ) × ( j − i ) } (1)
其中, ∑ i = 1 n ∑ j = i + 1 n D S M ( i , j ) 为DSM上三角中的标记数量, ∑ i = 1 n ∑ j = i + 1 n D S M ( i , j ) × ( j − i ) 为DSM上三角中的标记离对角线的距离,455为任意指定上界,以使目标函数值始终为正。
优化活动顺序以降低项目返工风险后,即可根据活动返工信息计算项目应设置的缓冲大小。
返工类型的划分上,与前人类似,本节考虑一阶返工、二阶返工和重叠返工等三种类型 [
如图3(a)所示,一阶返工描述了由于活动之间存在反馈信息,下游活动j在完成任务之后传递给上游活动i的信息可能与活动i最开始假设的信息不一致,因此活动i需要返工。在这种情况下,活动i的一阶返工时间计算公式如下:
R T i 1 = ∑ j = i + 1 n R P ( i , j ) × R I ( i , j ) × I C i × D i (2)
图3. 一阶返工与二阶返工
二阶返工描述了活动j由于其下游活动k的反馈信息而需要返工,在其完成一阶返工后,由于重新执行任务而更新的信息会再次反馈(图3(b))或传递(图3(c))至活动i,造成活动i的返工。在这种情况下,活动i的二阶返工时间计算公式如下:
R T i 2 = ∑ j = 1 k − 1 ∑ k = i + 1 n R P ( j , k ) × R P ( i , j ) × R I ( i , j ) × I C i × D i (3)
需要注意的是,活动k应同时为活动i和活动j的下游活动,即 k > i 且 k > j ,否则活动i和j不会因其执行信息而返工。
图4. 重叠返工
重叠是指本应按顺序执行的活动开始并行执行。一定程度的重叠可以缩短项目工期 [
O ( i , j ) = min { s j + D j − s i , D i } D i (4)
R T i 3 = R P ( i , j ) × R I ( i , j ) × I C i × O ( i , j ) × D i (5)
最终,活动i的总返工时间如公式(6)所示。项目的缓冲大小可通过改进RSEM方法得到,如公式(7)所示。需要说明的是,公式(7)为项目缓冲的计算公式,接驳缓冲的计算与之类似,只需将涉及活动改为非关键链活动。为了表述的方便,本文以下部分将只描述项目缓冲。
R T i = R T i 1 + R T i 2 + R T i 3 (6)
P B = ∑ i ∈ C C ( S T i + R T i ) 2 (7)
缓冲监控可分为缓冲分配、缓冲消耗监控和赶工措施的计划与实施三个部分 [
首先,考虑返工出现的不确定性,分离出一部分缓冲吸收该部分。为此,在项目中插入一个虚拟活动,并根据项目预计返工时长占总时长的比例为其分配缓冲,如公式(8)所示。一旦活动发生返工, P B R 即开始消耗。另外,进一步分配 P B R 是不建议的,因为返工的发生是不确定的,将缓冲分配给可能不存在的活动是一种浪费。
P B R = P B × ∑ i R T i ∑ i D i + ∑ i R T i (8)
除返工缓冲外,其余缓冲则依据各活动的特征指标进行分配。具体来说,由于本文考虑返工风险,因此剩余缓冲将根据各活动潜在返工对项目进度的影响程度进行分配。为此,引入潜在影响关键度(Potential Effect Criticality, PEC)指标表示各活动的返工特征 [
P E C i = ∑ j = 1 n R P ( i , j ) × R I ( i , j ) × I C j × D j + ∑ k = 1 n R P ( k , i ) × R I ( k , i ) × I C i × D i (9)
P B i = P B E × P E C i ∑ j P E C j = ( P B − P B R ) × P E C i ∑ j P E C j (10)
缓冲消耗监控的关键是监控阈值的确定。由于相对缓冲监控方法至今仍是从业者使用的主流方法,本节选择其作为 P B i 的监控阈值,如公式(11)~(12)所示。然而,由于返工的不确定性,其开始时间难以预测,甚至返工存在与否也不得而知。因此,无法估计项目整体返工的完成比例,也即,相对缓冲监控方法不适用。因此, P B R 的监控阈值选用静态缓冲监控方法,如公式(13)~(14)所示。
B C i y = a ⋅ P C i + b y (11)
B C i r = a ⋅ P C i + b r (12)
B C y = 0.33 (13)
B C r = 0.67 (14)
设置完监控阈值后,即可在执行过程中追踪各缓冲的消耗率,并根据其与监控阈值的相对关系决定是否实施赶工措施。赶工措施的选择上,快速跟踪、活动崩溃、变异性降低等都是常见的做法 [
本文提出的返工情境下的缓冲管理框架总结如下:
Step 1:基于遗传算法优化活动顺序,如3.1节;
Step 2:利用分支定界法确定项目关键链 [
Step 3:利用DSM建模活动之间的依赖关系,计算活动的预期返工时间,如公式(2)~(6)。基于活动的返工情况,确定应设置的缓冲大小,如公式(7);
Step 4:根据项目的预期返工时间和活动的PEC分配缓冲区,如公式(8)~(10)。为各缓冲区设置监控阈值,如公式(11)~(14);
Step 5:执行项目;
Step 6:在各监控点处识别项目实际进度与计划进度的偏差,确定缓冲消耗率。如果缓冲消耗率小于黄色阈值,转Step 7;如果缓冲消耗率大于黄色阈值但小于红色阈值,转Step 8;否则转Step 9;
Step 7:无需赶工,转Step 10;
Step 8:计划赶工措施,转Step 10;
Step 9:立即采取赶工措施,转Step 10;
Step 10:检查项目进度,如果项目完成,则缓冲管理流程结束;否则转Step 5。
本节进行了仿真研究,以验证所提框架的有效性。算例来源于商业地产项目的可行性研究阶段 [
l 活动至多返工一次;
l 活动的完成比例与其执行时间成正比;
l 上游活动因返工而延误时,与其重叠的下游活动会推迟开始,推迟的时间等于上游活动的返工时间 [
算例项目包括19个活动和170条信息流。数据是通过与项目团队成员的访谈收集的,并根据Eppinger等人 [
ID | 活动名称 | IC | 活动工期(天)a | 工期变异系数 |
---|---|---|---|---|
A | Perform prelim. mkt analysis | 0.5 | 8 | 0.8 |
B | Evaluate marketability options | 0.6 | 8 | 0.8 |
C | Engage feasibility consultants | 0.3 | 4 | 1.2 |
D | Evaluate planning & zoning process | 0.5 | 13 | 0.4 |
E | Perform massing study | 0.6 | 24 | 0.4 |
F | Develop conceptual design | 0.8 | 35 | 0.4 |
G | Identify external stakeholders | 0.4 | 8 | 0.8 |
H | Identify permits & approvals | 0.7 | 13 | 0.4 |
I | Complete Phase 1 ESA | 0.3 | 13 | 0.4 |
J | Evaluate consultants & contractors | 0.6 | 13 | 0.4 |
K | Obtain rough construction costs | 0.5 | 8 | 0.8 |
L | Determine highest & best use | 0.5 | 5 | 0.8 |
M | Identify debt options | 0.4 | 4 | 1.2 |
N | Identify equity options | 0.5 | 4 | 1.2 |
O | Update financial underwriting | 0.5 | 2 | 1.2 |
P | Reevaluate organization strategy | 0.6 | 3 | 1.2 |
Q | Estimate schedule | 0.6 | 4 | 0.8 |
R | Gain control of site and/or client | 0.6 | 4 | 1.2 |
S | Review and approve | 0.7 | 4 | 0.8 |
表2. 算例活动基本信息
注:a不考虑返工风险和工期不确定性,50%完工概率的活动估计工期 。
图5. RP矩阵及RI矩阵
首先,应用遗传算法优化活动顺序。本节指定锦标赛选择算子的规模为4,获胜概率为1;基于位置的交叉算子的交叉概率为1;移位变异算子的变异概率为0.01;初始种群数为50;迭代次数为150。优化后,活动顺序转变为[C, D, H, I, G, A, E, B, F, J, O, L, P, K, Q, N, M, R, S],对应的目标函数收敛曲线如图6所示。
图6. 遗传算法目标函数收敛曲线
其次,基于优化后的活动顺序、活动之间的信息流和活动工期,利用分支定界法确定项目关键链为[C, D, H, E, B, F, J, O, L, P, K, Q, N, M, R, S]。为简化模拟,以下研究将只关注关键链活动,其重叠情况由作者随机生成,如图7所示。
然后,计算各活动的预计返工时间,分别为[0.24, 6.51, 8.74, 9.52, 0.51, 16.44, 6.05, 0.89, 2.29, 1.91, 1.08, 0.74, 0.87, 0, 0.04, 0.34]。从而,算例项目应设置的项目缓冲大小为45天。
接着,对设置的缓冲区进行分配并指定监控阈值。具体而言,考虑项目的预计返工时间, P B R 确定为15天,监控阈值分别为0.33和0.67;各活动的PEC计算为[2.4, 6.7, 19.0, 30.6, 7.1, 30.8, 15.3, 7.8, 10.7, 10.1, 14.5, 11.7, 2.8, 3.3, 9.6, 1.7],因此,各活动分配到的 P B i 为[0.5, 1, 3, 5, 1, 5, 2.5, 1.5, 1.5, 1.5, 2.5, 2, 0.5, 0.5, 1.5, 0.5]。 P B i 的监控阈值如公式(11)~(12),其中, a = 0.6 , b y = 0.15 , b r = 0.3 。
最后,蒙特卡洛模拟项目实施过程,每0.5天监控项目实际进度与计划的偏差,确定缓冲消耗率,以决定是否采取赶工措施。赶工措施指定为活动崩溃技术,赶工后,活动持续时间的减少量可通过将原本预计用时与一个比例相乘得到,根据Vanhoucke的建议,本文将其确定为30% [
图7. O矩阵
为避免随机性造成的误差,对项目实施过程进行了1000次模拟。每次模拟结束后,通过以下指标评估项目绩效:首先,项目在计划期限内完成的可能性应尽可能高。因此,考虑了实际项目工期和按时完工率两个指标。然后,项目采取赶工措施的次数应尽可能少。因此,考虑了活动赶工率(赶工活动数/活动总数)这个指标,以衡量项目过程的稳健性。
首先,不使用任何缓冲监控方法,项目工期的频率和累积百分率如图8所示。本文方法计算的项目工期为113 + 45天,可以保证83%的按时完工率;不考虑返工风险的C&PM计算的项目工期为113 + 44天,按时完工率为82.2%;不考虑返工风险的RSEM计算的项目工期为113 + 24天,按时完工率为56.9%。因此,当项目面临返工风险时,本文方法计算的缓冲大小能提供更令人满意的按时完工率。此外,虽然C&PM得出的缓冲大小与本文方法相差无几,但正如2.1节所述,其比RSEM更大的缓冲是由“较高的活动数量”导致的,而非考虑活动之间依赖关系导致的返工风险。因此,其在本算例中的较好表现不可持续。而本文方法考虑了返工的深层逻辑,更为合理,得出的缓冲大小更合适。
图8. 缓冲设置方法比较
然后,在45天缓冲大小的基础上,应用本文缓冲监控方法、静态缓冲监控方法和相对缓冲监控方法,得出项目绩效指标见表3。未对比动态缓冲监控方法,因为它已被证明在项目后期有更高的延迟概率 [
实际项目工期(天) | 按时完工率(%) | 活动赶工率(%) | |
---|---|---|---|
静态缓冲监控 | 125 | 94.6 | 25/34 |
相对缓冲监控 | 126 | 95.6 | 19/27 |
本文方法 | 117 | 96.7 | 17/30 |
表3. 缓冲监控方法比较
综上,本文提出的缓冲管理框架可以获得更合理的计划工期和更优越的绩效指标,显示了本文方法的先进性。
考虑到现代项目返工频发及返工管理工具的缺乏,本文提出了一个返工情境下的缓冲管理框架,试图填补这个空白。首先,提出了利用遗传算法优化活动顺序的想法,以减少项目返工风险;然后,讨论了活动返工的三种基本类型,并提出了各类返工的时间计算公式,从而修正现有缓冲设置方法;接着,充分考虑各活动由于返工而拥有的特征,对缓冲进行了分配和监控阈值设置,从而精细化监控项目实施过程;最后,在一个实际案例上应用了本文提出的缓冲管理框架,结果显示了本文方法的有效性。
本文方法能为返工情境下的项目进度管理提供工具。考虑到现代项目对于“柔性”的需求,进一步的研究可以考虑在现有缓冲管理框架中融入自适应思想,以应对越来越高的环境不确定性。
国家自然科学基金(72171177)。
徐 晶,马国丰. 考虑返工的项目进度缓冲管理框架研究Research on Buffer Management Framework for Project Schedule Control in Rework Scenarios[J]. 管理科学与工程, 2024, 13(02): 428-441. https://doi.org/10.12677/mse.2024.132045
https://doi.org/10.1061/(ASCE)CO.1943-7862.0001324
https://doi.org/10.1177/875697280303400404
https://doi.org/10.1016/S0272-6963(01)00054-7
https://doi.org/10.1016/j.ejor.2004.04.002
https://doi.org/10.1016/j.ejor.2004.10.019
https://doi.org/10.1287/mnsc.42.10.1395
https://doi.org/10.1061/(ASCE)CO.1943-7862.0000209
https://doi.org/10.1016/j.ejor.2015.08.066
https://doi.org/10.1080/01605682.2017.1415641
https://doi.org/10.1080/00207543.2014.948972
https://doi.org/10.1109/TEM.1981.6448589
https://doi.org/10.7551/mitpress/8896.001.0001
https://doi.org/10.1109/TEM.2015.2491283
https://doi.org/10.1287/mnsc.43.8.1104
https://doi.org/10.1109/TEM.2002.806709
https://doi.org/10.1109/TEM.2005.850722
https://doi.org/10.1016/j.autcon.2005.07.010
https://doi.org/10.1109/TEM.2009.2033144
https://doi.org/10.1016/S0263-7863(00)00054-5
https://doi.org/10.1016/j.ejor.2017.03.034
https://doi.org/10.1016/S0926-5805(98)00059-4
https://doi.org/10.1016/j.ejor.2006.12.022
https://doi.org/10.1007/BF01588087
https://doi.org/10.1016/j.ejor.2015.07.009
https://doi.org/10.1115/1.2717224
https://doi.org/10.1080/00207543.2015.1043157
https://doi.org/10.3390/su11205710
https://doi.org/10.1061/(ASCE)CO.1943-7862.0000786
https://doi.org/10.1016/j.ejor.2019.03.020
https://doi.org/10.1016/j.omega.2010.09.006
https://doi.org/10.1016/j.jclepro.2020.123852
https://doi.org/10.1287/mnsc.38.12.1803
https://doi.org/10.1155/2019/1595628
https://doi.org/10.1155/2021/8878308
https://doi.org/10.3139/9783446437937.005
https://doi.org/10.1016/j.omega.2009.10.001