好的專案規劃是執行順暢的良好基礎,因此今天要來向大家介紹TOC的單一專案規劃方法─關鍵鏈排程法。
TOC關鍵鏈專案管理(Critical Chain Project Management, CCPM)在進行單一專案規劃時,有一個基本功必須先完成,那便是「完整的專案網路圖」。這裡指的完整,包括定義出合適的任務、為“所有”任務建立起前後關聯性、預估任務時間,以及為“所有”任務分派適當資源。如下圖:
看起來很合理,對吧?不過現實中大部分專案經理還是習慣以Gantt Chart做規劃,也就是任務之間並無前後關聯性或任務未指派資源;即便用的是專業的專案軟體,也不盡然將這些屬性設定完全。但這個完整的專案網路圖將是關鍵鏈排程的基礎,所以特別在這裡強調。
CCPM和一般專案規劃的邏輯有幾個不同的地方,包括任務的開工時機、任務的估算期程、以及最長路徑的決定。
據我所知,目前很多組織的管理習慣是認為「任務提早開始做,專案就能提早完工」,因此把計劃裡可以開工的任務一起啟動並分派給資源,雖然理論上要徑的任務優先次序會高於非要徑,但對於資源本身來說,手頭上同時拿到不一樣的工作,腦袋不免會針對個別任務的規格思考一番,在回報任務時也得都給點進度,再加上很多專案經理規劃完了以後並沒有優序管理的準則,容易在執行階段形成不良多工的狀況,造成任務優序混淆,以及任務間切換工作而延誤專案。在這樣的管理模式下,常造成很多任務同時開工而引起不必要的產能高峰,為了避免同樣的問題,CCPM是以Backward scheduling的方式安排專案網路圖,因此這個基礎網路圖應該這樣調整:
從最後面的H任務開始往前規劃,讓任務不間斷地接續著,以這樣的方式找到任務應該開始的必要時間。上圖我們可以看到原來的規劃面臨了資源衝突,若未在此時化解,執行階段將使藍色資源同時接到A和D任務,黃色資源將有一段時間同時負責J、B、G任務。之前和各位談過不良多工是造成任務及專案延誤的主因之一,因此一旦發現資源衝突,便要先做衝突的化解:
再來,便是調整任務的估算時間。為了讓大家了解一旦安全時間放在各別任務裡很容易引發的負面影響,我花了不少篇幅說明太多的安全時間會引發資源行為(學生症候狀、提早完工不報告),而資源行為又會反過來造成任務安全時間的浪費。因此,CCPM基礎專案網路圖裡的任務時間,必須以資源不受干擾而專注完成的基礎來估算。
在估算時間那篇文章裡已向大家說明過,由於大部分的人估任務期程會以90~95%的把握度來確保任務可以準時,所以CCPM將安全時間從任務裡取出後,會保留一半的任務時間。先別緊張,這樣做並不是要忽略現實,該給的安全時間還是會給,只不過為了讓安全時間發揮保護作用,放置的位置不同罷了。這部分晚點會加以說明。
定義好完整的專案網路圖之後,接下來就以TOC改善程序的聚焦步驟來進行排程。首先,先定義出系統的限制(Identify the system’s constraints)。
通常在單一專案網路圖的規劃過程中,造成專案週期無法進一步縮短的最長路徑,就是單一專案的限制。CCPM認為專案的最長路徑必須同時考量任務相依性以及資源相依性,也就是除了要把任務的前後順序考量進來,還必須考慮資源執行前置任務後是否立即做其他後續任務。尋找關鍵鏈時一樣是從最早的開工任務當起點:
D為最早的任務,所以以其做為起始點。由於藍色資源執行完D之後,立即接手做A任務,代表藍色資源執行D任務若有延遲,受到衝擊的除了後續的E任務外,需要藍色資源執行的A任務也會受到影響,因此在規劃時必須把資源衝擊納入考量。由於D和E任務之間尚有空檔,D-A的資源相依性較為立即,故把A納入關鍵鏈。決定後面的路徑時,藍色資源已經沒有負責其他緊接著的任務,所以只需要考慮任務相依性,關鍵鏈為D-A-B。接著,執行B任務的黃色資源做完後,需緊接著做G任務,考量到B-G的資源相依性,關鍵鏈為D-A-B-G。最後已沒有資源相依性,只需考慮任務相依性,此時我們已找出單一專案的限制─完整的關鍵鏈為D-A-B-G-H。
找出系統的限制後,接著就是要進行第二個聚焦步驟─決定充分利用限制(Decide How to Exploit the System’s Constraints)。
由於在單一專案裡,關鍵鏈已經是同時考量任務相依性和資源相依性最長的路徑,為了避免專案的不確定性因素造成關鍵鏈的進一步拉長,我們要把剛才取出來的安全時間放回專案中,用來保護關鍵鏈。
把從關鍵鏈任務D-A-B-G-H取出的安全時間整合起來,變成一個完整的保護時間並放在關鍵鏈的末端,CCPM稱之為專案緩衝(Project Buffer)。過去的管理方法以隱含安全時間的各別任務組成的最長路徑來押交期,一有任務延遲,交期的準時度就面臨危機。CCPM的規劃,是以緩衝來吸收關鍵鏈上的延遲,任務的變動不會直接衝擊到交期。
最後進行第三個聚焦步驟─依上述決定,讓非限制充分配合 (Subordinate Everything Else to the Above Decision)。
此時的非限制指的就是非關鍵鏈(Non-critical chain),或者稱為匯流鏈。從上圖可以看到非關鍵鏈總共有三條路徑─ C、E-F、以及I-J。把從非關鍵鏈路徑取出的安全時間,放回到非關鍵鏈匯入關鍵鏈的地方,成為匯流緩衝(Feeding Buffer, FB)。這樣的放置可以在非關鍵鏈發生延遲時,先以匯流緩衝吸收延遲的天數,避免直接影響關鍵鏈,形成對關鍵鏈的保護。
另外,執行專案時最常發生的問題還包括原先預定好的資源正在忙別的工作,無法接手準備要開工的任務,這個問題若發生在系統的限制─關鍵鏈上的任務,對專案的交期影響很大,因此CCPM在關鍵鏈任務即將開工前安排一個資源緩衝。這個緩衝並未增加任務的期程,而是一個溝通的工具,也就是在關鍵鏈任務即將開工的幾天前(如:2~3天)通知負責的資源要做好相關的準備,一旦關鍵鏈任務開工日到來,立即接手執行。
排程完成後,各位可以看到,CCPM的專案時程和一般的專案時程規劃出來的非關鍵路徑任務開工時間不大相同,也就是路徑A-B-C及路徑I-J並不是在專案啟動的第一時間開工。這樣的規劃方式有個容易被人誤會的名詞,CCPM稱為As late as possible(ALAP),這裡的ALAP必須是在不違背資源衝突並只早於刻意安排的匯流緩衝時間之下,所得到的任務必要開工時間。當然如果在您的組織裡當時只有這個專案,或是當時可以執行第一個任務的資源是確定閒置著的,那麼是可以在專案第一時間就分派任務給該資源。可惜,在多專案的環境中,通常資源都是在執行別的專案任務時接到一個還不需要急著完成的任務,造成不良多工。CCPM以這樣的規劃方式讓資源在執行階段儘可能專注於當下必要的任務,與As soon as possible將沒有前置任務的工作儘可能拉在專案啟動第一時間開工的方式,兩者背後的思維和作法天差地別。
另一個容易引起討論的議題,是Buffer加總起來的時間比原本取出的時間總合少了一半。傳統的專案規劃方法是將安全時間放在各別任務裡,此時別人的安全時間並無法分享給自己,以致於每個人都得估自己的安全時間,因此從整個專案的角度來看,整體估的安全時間量是超過真正需求的,只是過程中因為不良多工、學生症候狀…等因素而浪費掉了。過去訪談很多專案組織後證實,一個專案裡真正會遇到不確定因素的其實只是少數幾個關鍵任務,其他任務遭遇不確定性因素的機會其實不大。也因此,將安全時間彙整起來後只要保留一半當作buffer就足以應付整個專案的不確定性因素了。當然,這還是得依不同專案屬性來調整,通常大型專案隱藏的安全時間多,任務之間可以互相抵消的空間較大,至於規模太小的專案,抵消的可能性較小,所需要保留的安全時間也許需要多一點。不過今天只是介紹CCPM的排程原則,細節的調整則是組織在進行導入時才需要討論的議題。
今天以簡單的例子向各位說明CCPM在規劃階段如何透過安全時間的重置整合(緩衝)來保護專案的限制(關鍵鏈),和您所熟悉的專案規劃方法是否有很大的差異呢?
本站所有文章未經事先書面授權,請勿任意利用、引用、轉載。