張俊光,萬 丹
(北京科技大學經濟管理學院,北京 100083)
1997年,Goldratt將約束理論(Theory of Constrains, TOC)應用到項目管理領域,提出了關鍵鏈項目管理方法(Critical Chain Project Management, CCPM),這是一種考慮項目資源約束和決策者行為特性的項目管理方法[1]。它強調用全局思維,對項目所需的各種資源進行系統的安排,能夠有效縮短項目工期,提高項目績效。在關鍵鏈項目管理過程中,首先要進行關鍵鏈的識別,關鍵鏈是同時考慮邏輯約束和資源約束下決定項目工期的一系列活動[2],這些活動組成了項目網絡中最長的一條鏈路。為了保護項目的關鍵鏈,使得項目能夠按照計劃完成,Goldratt[1]提出了緩沖的概念,通過將各活動的安全時間抽取出來集中于鏈路尾部形成緩沖,可以有效避免項目成員的學生綜合癥和帕金森定律,以及多任務、資源受限和工作間的依賴關系等因素的影響而造成的安全時間浪費。在項目中插入對應的緩沖區并對其進行管理能夠吸收項目執行過程中的各種不確定性,同時還可以在保證項目完工概率的前提下縮短項目工期,實現項目整體的風險共擔。緩沖反映了項目的不確定性程度,合理的緩沖管理可以有效地控制項目的整體進度。
關鍵鏈項目的緩沖管理包括緩沖大小的確定和項目執行過程中的緩沖監控等方面,系統、準確地根據所確定的緩沖進行監控,是提高項目按時完工率,縮短項目工期和減少項目成本的基礎。本文分析了現有緩沖監控方法的特點和不足,研究了在項目執行過程中如何結合項目風險暴露情況和動態變化的特點來對緩沖進行監控的問題,通過緩沖監控量的滾動式分配以及對兩個監控基準點位置的動態調整來實現對緩沖消耗的實時監控,使項目管理者的監控行為與項目實際執行情況相符, 降低發出錯誤預警信息的概率。
緩沖監控是指在項目執行過程中,在緩沖分配的基礎上,通過分析緩沖的消耗情況,來判斷項目延遲的可能性,從而做出是否趕工的決策,以保證項目按時完工[3],它是項目緩沖管理的一個重要組成部分。目前對緩沖管理的研究主要還是集中在緩沖大小的確定方面[4-9],然而緩沖確定之后如何對緩沖進行有效的監控對提高項目完工概率和減少不必要的項目成本同樣有著重要的意義。在對項目緩沖進行監控的過程中,當緩沖消耗過多時,需要進一步分析其產生的原因及對總工期的影響程度,從而做出是否采取趕工等管理行動的決策。這一過程不斷地循環,直至項目完成。現有的緩沖監控方法中具有代表性的主要有Goldratt[1]提出的靜態三分方法、Leach[10]提出的相對緩沖監控方法和別黎提出的動態緩沖監控方法。
Goldratt[1]提出的緩沖監控方法將緩沖平均分成了三個部分,如圖1所示。累計緩沖消耗在綠、黃、紅色區域分別表示無需采取行動、計劃采取行動和及時采取措施。這種靜態三分法雖然簡單,但是忽略了鏈路完工比例與緩沖消耗量之間的聯系,容易發出錯誤的預警信息,增加因監控不當而產生的成本,并不適用于項目的實際情況。Leach[10]針對該方法的不足,提出了相對緩沖監控法,如圖2所示,它考慮了鏈路完工比例與緩沖消耗之間的聯系,將緩沖監控點進行了相對的設置,隨著鏈路的完成,監控基準點由低到高線性增加。這一設置考慮了隨著項目進展,整體不確定性降低這一特點,減少了發出錯誤預警信息的情況,可以避免過早的采取不必要的控制行動,但是Leach[10]并沒有給出具體監控點的設置標準,現有的相對緩沖監控方法中,具體監控數值都是根據項目開發人員的經驗估計得到的。靜態三分法和相對監控法都是在項目計劃階段預先設定好緩沖監控點,并沒有結合項目執行的動態環境進行調整,因此都屬于靜態的緩沖監控方法。

圖1 靜態三分方法

圖2 相對監控方法
別黎和崔南方[11]考慮了項目執行的動態環境,提出了一種關鍵鏈動態緩沖監控方法,通過不斷將剩余緩沖量進行三等分的方式來動態調整兩個觸發點的位置,從而監控項目實際進度與計劃進度之間的差異,如圖3所示。該方法克服了靜態監控方法的缺點,給出了監控點的設置標準和動態調整原則,可以更好地反映項目執行信息,實現了對緩沖的動態監控,但是這種方法沒有考慮項目內部活動不確定性的區別,且對于項目開始部分的緩沖監控點設置過高,動態調整監控點后,容易導致項目后期各活動的緩沖監控量偏小,從而產生錯誤的預警信號。此外,該方法中對鏈路剩余部分所需緩沖的計算是根據項目實際完工部分所消耗的緩沖進行簡單類推而得到的結果,沒有考慮項目不確定性的動態變化。

圖3 動態監控方法
以上方法都屬于自上而下的緩沖監控方法,是基于項目的層面對緩沖的消耗情況進行監控,忽略了活動層面的信息,對于活動層面各活動的緩沖消耗情況一視同仁,忽略了項目內部結構的特點,因此,Kuo等[12]和Bevilacqua等[13]提出在具體的監控過程中,依據項目計劃階段確定緩沖大小,對緩沖量進行合理的分配并進行監控,這種方法雖然一定程度上考慮了項目的內部結構特點,但是沒有根據緩沖的實際消耗情況將分配的緩沖監控量提取出來,忽略了各活動之間的聯系,本質上仍屬于靜態緩沖監控方法。別黎和崔南方[14-16]基于活動敏感信息對動態緩沖監控方法進行了一定的改進,這一方法考慮了活動信息對緩沖的影響,但是沒有充分考慮到活動之間的聯系。楊雙[17]考慮了相鄰活動之間的聯系,提出了將緩沖剩余量動態滾動給下一活動的監控方法。這一方法將活動緩沖剩余量提取了出來,避免了緩沖量的浪費,但是這種滾動方法只是在相鄰活動間進行緩沖量的滾動,忽略了其它未完成活動的信息,且可能由于相鄰活動間差異程度過大而產生錯誤預警。此外,蔡晨和萬偉[18]提出通過利用工序彈性系數來確定緩沖大小并進行監控,并指出了緩沖監控對項目控制的重要性。張俊光、沈佳佳等[19]提出了一種基于工作量對項目緩沖進行監控的方法,確定了緩沖監控模型,提高了軟件項目緩沖監控的效率。Zhang Junguang等[20]提出了一種工作量緩沖監控方法。Vanhoucke[21]指出在項目監控中對風險進行考慮有利于對項目的控制。在生產系統的緩沖監控方面,Yuan等[22]提出了一種通用緩沖庫存管理程序,根據相應產品的需求或供應情況來動態調整緩沖大小,并根據不同的庫存管理策略來采取對應措施。Wu等[23]將這一緩沖庫存應用到了供應鏈的管理中,并結合供應鏈的特點進一步細化了庫存補貨策略。Simatupang等[24]通過對緩沖進行調整解決了供應鏈協作中的潛在問題,建立了供應鏈協作中的補貨策略和分銷商之間的協作績效指標,提高了供應鏈的盈利能力。與生產制造和供應鏈分銷的環境不同,項目是完成某一獨特產品而做的一次性工作,關鍵鏈項目的緩沖管理是在考慮資源約束和邏輯關系約束的基礎上進行時間意義上的緩沖管理,而不是對具體的實物庫存來管理[25]。因此,對庫存的動態緩沖管理方法并不適用于項目環境。
綜上所述,目前對于關鍵鏈項目緩沖監控方法的研究還相對較少,現有的緩沖監控方法大多采用的是Goldratt[1]的靜態監控思想,根據計劃階段設定的監控基準對緩沖消耗量進行監控,沒有充分考慮到項目的實際執行過程中不確定性的變化情況和動態環境,容易導致產生錯誤預警,現有的動態緩沖監控方法雖然考慮了項目的實際執行情況,相對于靜態監控法能夠更好對項目整體進度績效進行監控,但是沒有充分考慮項目各活動之間的不確定性的區別,對于項目的內部結構以及活動之間的聯系考慮不夠充分,緩沖監控量的設置沒有考慮到項目整體風險的動態變動。基于此,本文提出了一種實時滾動監控方法,根據活動的風險暴露度對緩沖總量進行分配,在項目的動態推進和執行的過程中依次將各監控時點的緩沖監控剩余量按照活動風險權重因子進行實時滾動和再分配,該方法考慮了項目實際執行過程中緩沖消耗量的動態變化和項目各活動之間不確定性的區別,克服了現有緩沖監控方法的不足,設置了更為合理的緩沖監控基準點,使得監控行為更加符合項目的實際執行情況,降低了錯誤預警信息發出的概率,從而可以更好的控制項目的進度。
緩沖監控貫穿項目的始終,但并不是每時每刻都在進行,因此在項目的執行過程中需要選擇合適的監控時點對緩沖的消耗情況進行分析,根據緩沖的消耗程度決定是否采取相應的控制措施。監控時點的選擇應當考慮項目的內部結構,確定好緩沖監控點之后再分配緩沖監控量。本文基于活動對緩沖進行監控,根據活動風險暴露度將緩沖分配到各工序之后,再根據項目在實際執行過程中所消耗的緩沖量,將剩余緩沖量按照活動風險權重因子依次滾動分配給未完成項目部分的所有活動,同時對下一監控時點緩沖消耗的監控基準點進行實時調整與設置。由于已完成工序的不確定性已消除,在剩余緩沖再分配時不需要考慮其對總工期不確定性的影響,因而此時的活動風險權重因子也隨著項目整體風險水平的降低而動態變化。這種通過“剩余緩沖量共擔”來實時調整各監控時點緩沖監控量和監控基準點的滾動監控方法既考慮了項目內部各活動對于項目總體不同程度的影響,又體現了關鍵鏈項目管理過程中的風險共擔思想。


活動1的緩沖監控量:
(1)
活動2的緩沖監控量為:
(2)
活動3的緩沖監控量為:
(3)
以此類推,可得活動n的緩沖監控量為:
(4)
在監控的過程中,將各監控時點的緩沖剩余量按照上述方法實時滾動分配給待完成的各活動,如圖4所示。本文實時滾動分配緩沖的監控方式考慮到了工序差異化程度對于項目緩沖的影響,可以有效避免工序間差異化程度太大而導致的錯誤預警,每個活動的緩沖監控量都是依據自身的風險情況分配得到,隨著活動的依次進行,緩沖分配量也在進行動態的滾動和調整。這種方法可以充分利用各活動剩余的緩沖監控量,有效避免了緩沖量的浪費以及工序間差異化程度太大而導致的錯誤預警,能更加有效的反應項目的實際進展情況。

圖4 緩沖監控量動態調整示意圖


圖5 實時設置緩沖監控基準點
采用實時滾動緩沖量進行監控的方法如圖6所示,具體的步驟如下:
步驟1:在項目執行之前確定該項目網絡的關鍵鏈以及緩沖總量的大小
步驟2:根據風險驅動因素計算各個活動的緩沖分配基數,得到活動的風險權重因子
步驟3:基于風險權重因子對緩沖進行分配,得到各活動的緩沖監控量
步驟4:對項目進行跟蹤,在監控點i(i=1)處進行監控
步驟5:檢查緩沖消耗所在區域
1若緩沖消耗位于基準點1以下,則不需要采取行動
2若緩沖消耗位于基準點1和2之間,則要加強監控,制定計劃應對可能出現的問題
3若緩沖消耗位于基準點2 以上,則應查看項目是否完成,若已完成,則無需采取行動,若未完成,則應及時采取措施,防止項目延期
步驟6:抽取監控點處的緩沖剩余量
步驟7:動態調整因項目不確定性減少而發生改變的活動風險權重因子
步驟8:基于風險權重因子對緩沖剩余量進行實時滾動分配
步驟9:分配好緩沖量之后,動態調整下一監控時點的監控基準點
步驟10:對下一監控時點的緩沖消耗量進行監控,重復步驟5至9,直至項目完成。

圖6 實時滾動監控步驟
已知某項目的基本活動信息如表1所示,考慮到項目活動工期的偏態分布特性,設項目各活動工期服從右偏分布中的對數正態分布[4],因此項目的標準差和平均值是相互獨立的。當X=exp (Y)時,表明工期X服從對數正態分布,Y為正態隨機變量。Y的平均值為μ,標準差為σ(σ的取值越大,說明活動對應的不確定性水平越高),則X的平均值為:
μx=exp(μ+σ2/2)
則標準差為:
σx=exp(2μ+σ2)(exp(σ2)-1)=
(μx)2(exp(σ2)-1)
為了使得X的平均值等于活動的持續時間di,令
di=exp(μ+σ2/2)
因此對于Y,有
μ=In(di)-σ2/2
誤差值為:
vari=(di2)×(exp(σ2)-1)

表1 活動基本信息表
由此可以得到服從正態分布的隨機變量Y以及其對應的標準差σ和平均值μ[4]。對于每組μ和σ2,利用MATLAB中的對數正態分布隨機矩陣函數X=lognrnd(mu,sigma),產生項目模擬中的隨機工期。同時考慮項目的資源約束和邏輯關系的約束,可得到如圖7所示的關鍵鏈網絡,由圖可知該項目的關鍵活動為A、B、C、E、F、H和J,為了吸收不確定因素對項目工期的影響,關鍵鏈活動確定之后應在關鍵鏈尾部以及非關鍵鏈匯入的位置插入相應的緩沖,得到最終的項目網絡,如圖7所示。

圖7 關鍵鏈網絡圖
為了驗證本文所提方法的有效性,本文運用蒙特卡洛技術對項目的執行進行1000次模擬。本實驗采用序列運算理論中的隨機模擬方法來計算項目各活動在執行過程中相應的不確定性概率,工序的標準差由RAND函數隨機產生一個大于0的數,且最大值等于最小持續時間與期望持續時間的差值,標準差產生的隨機函數為:=Rand()*(期望持續時間-最小持續時間),每個工序產生四組不同大小的標準差,以90%的真實度要求評估工序的標準差大小,受限資源的供應總量設定為固定常數值,以活動持續時間作為單元模塊,活動一旦開始執行,則不可被其他工序中斷,必須持續到該活動結束才能開始執行下一工序,采用梯形模糊數對各活動風險的不確定性事件進行描述,然后根據本文提出的方法計算確定項目在不同模擬階段的風險暴露度和活動之間的不確定性差異,從而得到項目不確定性的隨機仿真概率模型。在模擬緩沖監控的過程中,靜態三分方法的監控基準點設為緩沖總量的33%和66%,且基準點在項目執行過程中保持不變;相對監控方法初始監控基準點設為15%和30%,然后線性增加至75%和90%;動態監控方法初始監控基準點設為33%和66%,隨著項目的動態執行對基準點進行調整;本文監控方法下初始監控基準點的設置是基于活動風險暴露度分配得到的緩沖監控量進行設置,隨著項目的執行實時滾動緩沖量,動態調整緩沖監控基準點,通過監控基準點進行綠黃紅區域的劃分。在監控時點處對緩沖的實際消耗情況進行監控時,若緩沖消耗量位于綠色區域,則說明項目運行良好,無需采取行動,若緩沖消耗量位于黃色區域,則項目經理需要加強監控,制定必要的應對措施,若緩沖消耗量達到了紅色區域,則需要采取趕工措施或者是變更計劃,不同監控方法下的統計結果如表2、表3和圖8所示。

表2 不同監控方法下落在各個區域內的頻數統計情況

表3 不同監控方法的平均成本及工期對比
由上述統計結果可得到以下結論:
1)隨著項目關鍵鏈活動的完成,各監控方法下落在綠色區域的頻數不斷減少,黃色和紅色區域的頻數不斷增加,說明隨著項目的執行,項目不確定因素的出現正不斷地消耗著緩沖。靜態三分法在項目執行前期基本都沒有落在紅色區域,而后期落在紅色的頻數不斷增加,且明顯大于其余三種監控方法,說明該方法沒有考慮到項目的實際執行,以致項目問題不斷積累,加大了項目延期的風險,產生的實際成本也更大。

圖8 不同監控方法的實際工期和成本對比
2)相對緩沖監控方法考慮到了緩沖消耗與關鍵鏈完工比例之間的關系,因此落在紅色區域的數量少于靜態三分法,但由于該方法對于監控基準點的設置過于主觀,沒有考慮項目的動態執行環境,因此在項目執行過程中發出錯誤預警的可能性相對較大,故產生的實際成本也較大。而動態緩沖監控法考慮了項目的動態執行環境,因此實際工期和成本都小于靜態三分法和相對緩沖監控法,但由于該方法后期對監控量的設置不夠合理,可能導致項目后期采取不必要的行動以及相應的成本。
3)本文采用的是實時滾動緩沖的監控方法,該方法下落在紅色區域的數量少于前三種方法,緩沖消耗出現在黃色區域的頻數不斷增加,說明隨著項目的執行過程中不確定因素的出現,緩沖消耗也在增加,但總體還是在可控制的范圍內,且項目產生的實際成本和工期都小于前三種監控方法,說明該方法減少了錯誤預警產生的額外費用以及額外時間,能對項目進行更加有效的監控,保證項目順利完工。
本文考慮到項目在動態執行環境中的變化以及各活動之間的聯系,提出在項目初始時期根據活動的風險暴露情況對緩沖消耗進行監控,并在項目執行過程中的各監控時點對緩沖量進行實時滾動,再根據滾動后得到的緩沖大小動態設置緩沖的監控基準點,從而對緩沖進行實時滾動監控。最后,通過蒙特卡洛模擬實驗將實時滾動監控方法與現有緩沖監控方法進行了對比,從項目采取措施的具體情況、工期、成本以及項目延期的概率等方面對不同方法的監控效果進行了分析和比較,驗證了本文方法的有效性。
本文的局限性在于只根據緩沖監控的結果,采取應對措施,并重新分配緩沖、設置新的監控基準點,而沒有分析項目的工期偏差僅僅是一種偶然現象,還是偏差趨勢可以延續等,例如現在項目延誤了30天,但經過預測后續階段項目將提前30天,則項目依然可以不采取糾正措施。因此,下一步將在現有研究的基礎上,研究后續的進度預測,將監控和預測相結合,以制定項目的綜合糾正措施。
參考文獻:
[1] Goldratt E M. Critical chain: A business novel[M]. Great Barrington, MA: North River Press, 1997.
[2] Newblod R C. Project management in the fast lane-applying the theory of constraints [M]. Boca Raton: The S t. Lucie Press, 1998.
[3] Trietsch D. The effect of systemic errors on optimal project buffers [J].International Journal of Project Management, 2005, 23(4):267-274.
[4] Tukel O I, Rom W O, Eksioglu S D. An investigation of buffer sizing techniques in critical chain scheduling [J]. European Journal of Operational Research, 2006, 172(2): 401-416.
[5] Zhang Junguang, Song Xiwei, Díaz E. Project buffer sizing of a critical chain based on comprehensive resource tightness [J]. European Journal of Operational Research, 2016, 248(1):174-182.
[6] Zhang Junguang, Song Xiwei, Diaz E. Buffer sizing of critical chain based on attribute optimization [J]. Concurrent Engineering, 2014, 22(3):253-264.
[7] Herroelen W S, Leus R. On the merits and pitfalls of critical chain scheduling [J]. Journal of Operations Management, 2001, 19(5): 559-577.
[8] 萬偉, 蔡晨, 王長峰. 在單資源約束項目中的關鍵鏈管理[J]. 中國管理科學, 2003, 11(2): 70-75.
[9] 褚春超. 緩沖估計與關鍵鏈項目管理[J]. 計算機集成制造系統, 2008, 14(5): 1029-1035.
[10] Leach L P. Critical chain project management[M]. Massachusetts: Artech House, 2014.
[11] 別黎, 崔南方. 關鍵鏈動態緩沖監控方法研究[J]. 中國管理科學, 2010, 18(6): 97-103.
[12] Kuo T C, Chang S H, Huang S N. Due-date performance improvement using TOC’s aggregated time buffer method at a wafer fabrication factory [J]. Expert Systems with Applications, 2009, 36(2): 1783-1792.
[13] Bevilacqua M, Ciarapica F E, Giacchetta G. Critical chain and risk analysis applied to high-risk industry maintenance: A case study [J]. International Journal of Project Management, 2009, 27(4): 419-432.
[14] 別黎, 崔南方, 田文迪,等. 基于活動敏感性的動態緩沖監控方法研究[J]. 中國管理科學, 2014, 22(10):113-121.
[15] 別黎. 關鍵鏈項目管理中緩沖估計與監控方法研究[D].武漢:華中科技大學,2012.
[16] Hu Xuejun, Cui Nanfang, Demeulemeester E, et al. Incorporation of activity sensitivity measures into buffer management to manage project schedule risk[J]. European Journal of Operational Research, 2016, 249(2): 717-727.
[17] 楊雙. 基于緩沖的軟件項目進度監控方法研究[D].北京:北京科技大學,2013.
[18] 蔡晨, 萬偉. 基于PERT /CPM 的關鍵鏈管理[ J] . 中國管理科學, 2003, 11( 6 ) : 35- 39.
[19] 張俊光, 沈佳佳, 楊雙. 基于緩沖的軟件項目工作量估算模型研究[J]. 管理工程學報, 2015, 29(04): 171-177.
[20] Zhang Junguang, Shi Ruixia, Diaz E. Dynamic monitoring and control of software project effort based on an effort buffer[J]. Journal of the Operational Research Society, 2015, 66(9): 1555-1565.
[21] Vanhoucke M. On the dynamic use of project performance and schedule risk information during project tracking[J]. Omega, 2011, 39(4): 416-426.
[22] Yuan K J, Chang S H, Li R K. Enhancement of theory of constraints replenishment using a novel generic buffer management procedure[J]. International journal of production research, 2003, 41(4): 725-740.
[23] Wu H H, Chen C P, Tsai C H, et al. A study of an enhanced simulation model for TOC supply chain replenishment system under capacity constraint[J]. Expert Systems with Applications, 2010, 37(9): 6435-6440.
[24] Simatupang T M, Wright A C, Sridharan R. Applying the theory of constraints to supply chain collaboration[J]. Supply chain Management: an international journal, 2004, 9(1): 57-70.
[25] Watson K J, Blackstone J H, Gardiner S C. The evolution of a management philosophy: The theory of constraints[J]. Journal of operations Management, 2007, 25(2): 387-402.