時程風險分析:專案為何會延誤完工
專案之所以延誤,是因為用最可能工期排出的時程太樂觀:以營建專案來說,這些工期的完工時間是第 55 週,但 5,000 次模擬結果中只有 14.3% 能在那之前完工。平均完工時間為第 58.2 週,P80 完工時間為第 60.7 週,所以第 60 週的期限有 27.2% 的結果趕不上。
最可能完工週與平均完工週相差 3.23 週,原因有三:工期延後的幅度可能大於提早的幅度(2.50 週)、惡劣天氣風險(0.60 週),以及兩個平行工種交會處的匯合偏差(0.13 週)。
什麼是時程風險分析
時程風險分析替每項作業的工期設定範圍,不用單一數字,再加入可能拖延工作的風險事件,並用從這些範圍抽出的值把時程重算數千次,這就是蒙地卡羅模擬。結果是完工日期的分配,從中讀得出達成期限的機率,以及特定信心水準下的完工時間,例如 P80:80% 的模擬結果會在該日期前完工(見 P50、P80 與 P90)。
單點時程回答的是「每項作業都花最可能的時間,何時完工?」。時程風險分析回答「每個完工日期的可能性有多高?」,也說明為什麼前一個答案通常太早。
範例時程
營建專案範例在成本估算旁另有一張 Schedule 工作表。7 項作業以週為單位:設計、許可申請、基礎與結構依序進行,接著 MEP(機械、電氣與給排水)與裝修平行施作,最後是試運轉。完工週(距開工的週數)由一條公式算出:=C2+C3+C4+C5+MAX(C6,C7)+C8+B10。
MAX(C6,C7) 會等兩個平行工種中耗時較長的一個。B10 是天氣延誤,=Estimate!D14*2:成本估算風險登記冊裡的惡劣天氣風險若發生(機率 30%),就延誤 2 週,否則不延誤。模擬時,每項工期都用從最小、最可能到最大的三點 PERT 分配:
| 作業 | 最小 | 最可能 | 最大 | 平均值 |
|---|---|---|---|---|
| 設計 | 6 | 8 | 12 | 8.33 |
| 許可申請 | 4 | 6 | 12 | 6.67 |
| 基礎 | 8 | 10 | 14 | 10.33 |
| 結構 | 14 | 16 | 22 | 16.67 |
| MEP(平行) | 10 | 12 | 16 | 12.33 |
| 裝修(平行) | 8 | 10 | 15 | 10.50 |
| 試運轉 | 2 | 3 | 5 | 3.17 |
最可能完工週與模擬完工週
每項工期都取最可能值、也沒有天氣延誤時,Excel 檔案算出的是第 55 週,也就是單點時程會承諾的日期。模擬則同時抽出全部 7 項工期和天氣風險,共抽 5,000 次:
| 最可能完工週(每項工期取最可能值,無天氣延誤) | 55 |
|---|---|
| 模擬完工週的平均值 | 58.2 |
| P50(一半的結果更早完工) | 58.2 |
| P80 | 60.7 |
| P90 | 62.1 |
| 在第 55 週之前完工的機率 | 14.3% |
| 第 60 週之後才完工的機率 | 27.2% |
平均完工時間為第 58.2 週,只有 14.3% 的結果能在第 55 週前完工。第 60 週的期限介於 P50(58.2)和 P80(60.7)之間:72.8% 的結果趕得上,27.2% 趕不上。這份時程裡沒有哪一項估算草率;樂觀是因為把最可能值加總起來,原因有三。
專案為何會延誤:三個原因
最可能完工週與平均完工週之間的 3.23 週,剛好分成三部分,每部分都由試驗實際量得。
| 最可能完工週 | 55.00 |
|---|---|
| + 偏態工期 | 2.50 |
| + 惡劣天氣 | 0.60 |
| + 匯合偏差 | 0.13 |
| = 模擬完工週的平均值 | 58.23 |
偏態工期:2.50 週。這裡每個範圍往上延伸的幅度都大於往下:作業拖延的幅度可能大於提早的幅度。PERT 工期的平均值是(最小 + 4 × 最可能 + 最大)/ 6,所以許可申請(最小 4 週至最大 12 週,最可能 6 週)平均要 6.67 週。沿最可能時程的路徑,把各作業的「平均值減最可能值」加總(除裝修以外的每項作業;裝修與較長的 MEP 平行進行),得到 2.50 週,占差距的 77.4%。占比最大的是許可申請與結構,各為 0.67 週,它們的範圍比最可能工期多往上延伸 6 週,往下只有 2 週。
惡劣天氣:0.60 週。這個風險事件在發生的 30% 試驗中增加 2 週,其餘試驗不增加,平均為 0.60 週。沒有哪次試驗剛好延誤 0.60 週:每次不是延誤 2 週,就是完全沒延誤。最可能時程沒把這項風險算進去,因為它較可能不發生;但有延誤的試驗中,有 40.9% 趕不上期限,沒有延誤的試驗則是 21.4%。
匯合偏差:0.13 週。平行路徑交會處,後續工作要等較晚完成的那一條。MEP 平均要 12.33 週,裝修平均 10.50 週,所以通常由 MEP 決定進度;但有 15.0% 的試驗是裝修耗時較長,發生時平均多出 0.85 週。這些試驗把 MAX(C6,C7) 的平均值,比 MEP 的平均值拉高 0.13 週(15.0% × 0.85)。兩項工期中較晚者的平均值,大於兩個平均值中較大的那一個,單一工期的時程看不出這個差異。
經典的 PERT 方法沿路徑把平均工期加總,得到第 57.5 週。這樣消除了偏態工期造成的樂觀,卻仍漏掉風險事件與匯合偏差,所以時程風險分析要模擬整份時程。
平行路徑愈接近,匯合偏差愈大
這裡匯合偏差是三個原因中最小的,因為 MEP 平均比裝修長 1.83 週,裝修很少超越它。讓裝修採用與 MEP 相同的範圍,用同樣的試驗再執行一次(其他輸入維持原本抽出的值):
| 原始設定 | 採用 MEP 的範圍 | |
|---|---|---|
| 最可能完工週 | 55 | 55 |
| 裝修耗時比 MEP 長 | 15.0% | 49.7% |
| 匯合偏差(週) | 0.13 | 0.63 |
| 平均完工週 | 58.2 | 58.7 |
| P80 完工週 | 60.7 | 61.2 |
| 第 60 週之後才完工的機率 | 27.2% | 32.8% |
最可能完工週不變:單點時程只看兩項最可能工期中較長的,仍是 MEP 的 12 週。但裝修現在約有一半的試驗耗時較長,匯合偏差升到 0.63 週,第 60 週之後才完工的機率從 27.2% 升到 32.8%。交會於同一點的路徑愈多、長度愈接近,匯合偏差愈大,所以有許多長度相近的平行路徑的時程,匯合偏差通常比這個範例更大。
訂出 P80 完工日
信心水準 80% 的完工日,就是模擬完工時間的 P80。時程緩衝(也稱時程應變)是最可能完工週與承諾日期之間的時間:
| 信心水準 | 完工週 | 第 55 週之後的緩衝 |
|---|---|---|
| P50 | 58.2 | 3.2 |
| P80 | 60.7 | 5.7 |
| P90 | 62.1 | 7.1 |
第 60 週的期限只有 72.8% 的信心水準,低於 P80。要以 P80 承諾,可以把日期改為第 60.7 週,或縮短主導完工週的作業,下一節會說明是哪些。要採用哪個信心水準是政策決定,和成本應變準備金一樣。
在 xellstorm 中,游標移到 S 曲線上,就讀得出任一週之前完工的機率;在機率欄位輸入週數,則看得到該週之後才完工的機率。
哪些因素決定完工日
變異貢獻度顯示完工週的分散程度由哪些輸入造成;xellstorm 依試驗的等級估算,數字與應用程式顯示的相同。
範圍最寬的兩項作業,許可申請與結構(最小到最大相差 8 週),各約占 23%。惡劣天氣是成本估算中的風險,占 10.2%。裝修只占 0.4%:只有 15.0% 的試驗由它決定完工週,其餘試驗中它的工期沒有影響。成本項目與其他風險事件不在完工週的公式裡,真實占比為零;估計值中它們合計不到 0.1%。龍捲風圖指南說明逐項變動的龍捲風圖如何誤讀這兩個平行工種。
限制:這是試算表時程,不是 CPM 網路
xellstorm 模擬的是 Excel 檔案本身的公式,時程邏輯就在公式裡:依序進行的作業用加總,路徑交會處用 MAX。背後沒有像要徑法(CPM)排程工具那樣的作業與邏輯關係網路:沒有關係類型或延隔時間,沒有行事曆,沒有資源撫平,也不會在每次試驗中算出要徑。公式寫了什麼,xellstorm 就模擬什麼;檔案裡沒有的,它補不上。
xellstorm 開啟 Excel 檔案(.xlsx 與 .xlsm),不讀取 Primavera P6 或 Microsoft Project 檔案。時程若維護在這些工具中,可以像本範例一樣,在 Excel 裡為主要路徑建模,或改用能讀取時程檔案的時程風險工具。試算表適合早期估算、只有少數平行路徑的摘要時程,以及與成本模型放在同一個檔案的時程;由數百項相互連結的作業組成的詳細網路,應交給排程工具。
親自試試
- 用 xellstorm 開啟模型。輸入、輸出和第 60 週的目標都已設好;不需安裝、不需註冊,Excel 檔案直接在瀏覽器計算。
- 執行後開啟完工週的結果。用相同的亂數種子與試驗次數,就會得到本頁的數字:平均值(下方是檔案裡的第 55 週)、第 60 週之後才完工的機率、P90,以及 P1 到 P99 的百分位數,包括 P80,也就是第 60.7 週。
- 在機率欄位選
<=,輸入 55,看看最可能完工週有多難達成。 - 在 Distributions 步驟,讓裝修採用 MEP 的範圍(10、12、16)後再執行一次:平均值與 P80 往後移,檔案裡的值仍停在第 55 週。
- 匯出 HTML 報告、PowerPoint 簡報或 Excel 結果檔;結果檔含每次試驗的輸入與輸出,可以數出裝修耗時比 MEP 長的次數。
常見問題
專案時程中的匯合偏差是什麼?
匯合偏差是時程中平行路徑交會處多出來的延誤:下一項作業要等最晚完成的那條路徑,而數項工期中最晚者的平均值,大於各平均值中最大的那一個。單一工期的時程看不出這一點。營建範例中,它使平均完工時間增加 0.13 週;兩個平行工種範圍相同時,增加 0.63 週。
P80 完工日是什麼?
P80 完工日是 80% 的模擬結果會在該日前完工的日期,所以專案有五分之一的機率較晚完工。它來自時程風險分析,不是時程本身:營建範例的最可能工期在第 55 週完工,P80 則是第 60.7 週。
為什麼不直接把平均工期加總?
沿要徑把平均工期加總,也就是經典的 PERT 方法,只修正了偏態工期,沒處理風險事件和匯合偏差。營建範例得到第 57.5 週,模擬平均值是第 58.2 週;差異來自天氣風險與匯合偏差。
xellstorm 能開啟 Primavera P6 或 Microsoft Project 的時程嗎?
不能。xellstorm 只開啟 Excel 檔案(.xlsx 與 .xlsm),不讀取 Primavera P6 或 Microsoft Project 檔案。它模擬的是寫成試算表公式的時程,例如依序用加總、路徑交會處用 MAX 的摘要時程,不是相互連結的作業網路。
作業工期應該設定相關性嗎?
同一個原因拉長多項作業時,例如生產力偏低、設計比原先規劃的更複雜,作業工期就該設定相關性。依序進行且相關的作業會一起超出,不會部分互相抵消,完工日期的範圍因此變寬。xellstorm 能依等級設定輸入的相關性;本範例為求簡單,讓它們保持獨立。
相關內容
- 專案成本與時程
營建專案需要多少應變準備金?
實作範例:營建估算中各項最可能成本,有 94.2% 的模擬結果會超出。用蒙地卡羅模擬估出營建成本應變準備金。 - 指南
P50、P80、P90 是什麼意思?預算該採用哪一個
P80 是 80% 的模擬結果都不會超過的成本。營建專案 6 個成本項目的 P80 加總為 2,843,但這些項目加總後的 P80 是 2,756(單位:千美元)。 - 指南
龍捲風圖與敏感度分析詳解
龍捲風圖一次只移動一個輸入,xellstorm 預設從 P10 到 P90。以一份營建估算來說,有一項風險就讓成本變動 150(單位:千美元)。
xellstorm 是在瀏覽器中執行的 Excel 模型蒙地卡羅模擬工具:免裝增益集,Excel 檔案也不會離開您的電腦。