很明顯,這是標題黨~剛從老羅那取的經就要用上~只是扯扯專案管理與時間管理!
扯這個話題的原因是,之前部門有一個關於「關鍵路徑」的分享,個人覺得「關鍵路徑」這玩樣用處不大!只能做個前期估算!這裡做個覆盤,確認一下是否確實是個雞肋~
這裡通過魔獸爭霸裡的人族來展開!
為什麼是魔獸爭霸呢?因為我好久不玩遊戲了,現在遊戲都是90後、00後的天下了,我這種80後的老人就不摻和了!魔獸爭霸是我在大學裡玩得最多的遊戲,也是80後很熟悉的一款遊戲了!至少能引起80後的共鳴!
那為什麼是人族呢?因為在魔獸爭霸裡的四個種族裡,人族有兩項其它種族都不具備的技能!第一、農民可以變民兵!第二、多個農民可以同時建造一個建築物。這更貼合我們的現實生活!
什麼是關鍵路徑
我們先來說說什麼是「關鍵路徑」!一堆無聊的概念,沒興趣的可直接忽略~
這是BusinessDictionary裡的一段解釋:
Longest sequence of activities in a project plan which must be completed on time for the project to complete on due date. An activity on the critical path cannot be started until its predecessor activity is complete; if it is delayed for a day, the entire project will be delayed for a day unless the activity following the delayed activity is completed a day earlier.
簡單翻譯一下:
對於一個需要在特定時間內完成的專案,針對這個專案所制定的計劃裡,耗時最長的那個「活動序列」就稱為是關鍵路徑。在關鍵路徑中的「活動」不能在它的前導「活動」結束前開始;如果一個活動延誤了一天,則整個專案將會延誤一天,除非後續的活動提前一天完成,來抵消這一天的延誤
一個專案可以有多個,並行的關鍵路徑。另一個總工期比關鍵路徑的總工期略少的一條並行路徑被稱為次關鍵路徑。
關鍵路線是一個動態系統,它會隨著專案的進展不斷更新,其採用單一時間估計法,其中時間被視為一定的或確定的。
在關鍵路徑中,一般有以下一些時間引數:
- 最早開始時間(Early Start):活動最早開始時間由所有前置活動中最後一個最早結束時間確定。
- 最早結束時間(Early Finish):活動的最早結束時間由活動的最早開始時間加上其工期確定。
- 最遲結束時間(Late Finish):一個活動在不耽誤整個專案的結束時間的情況下能夠最遲結束的時間。它等於所有緊後工作中最早的一個最遲開始時間。
- 最遲開始時間(Late Start):一個活動在不耽誤整個專案的結束時間的情況下能夠最遲開始的時間。它等於活動的最遲結束時間減去活動的工期。
- 總時差(Total Float) :指一項活動在不影響整體計劃工期的情況下最大的浮動時間。
- 自由時差(Free Float):指活動在不影響其緊後工作的最早開始時間的情況下可以浮動的時間。
其實舉個簡單的例子就可以解釋上面的概念了!
統籌方法
以前學過一篇叫統籌方法的文章,我印象非常深刻!因為我當時算錯了!!!
大概問題是這樣的:“燒水泡茶”有五道工序:
- 洗水壺
- 燒開水
- 洗茶壺
- 洗茶杯
- 拿茶葉
- 泡茶
洗水壺是燒開水的前提;燒開水、洗茶壺、洗茶杯,拿茶葉是泡茶的前提。
各道工序用時表: 洗水壺1分鐘,燒開水15分鐘,洗茶壺2分鐘,洗茶杯1鍾分,拿茶葉1分鐘, 泡茶1分鐘,如何以最快的速度燒水泡茶?
正常人都知道:
- 先洗水壺
- 燒開水
- 燒水過程中,洗刷茶具,拿茶葉
- 水燒開後沏茶
以這個流程來看,如果我們想中午12點開始燒水泡茶,那麼洗水壺的「最早開始時間」需要是12點,「最早結束時間」是12點1分;燒水的「最早開始時間」需要是12點1分,「最早結束時間」是12點16分!另一條線上,洗茶壺的「最早開始時間」是12點1分,「最早結束時間」是12點2分;洗茶杯的「最早開始時間」是12點2分,「最早結束時間」是12點3分;拿茶葉的「最早開始時間」是12點3分,「最早結束時間」是12點4分!而泡茶的「最早開始時間」是12點16分(必須要等水燒好),「最早結束時間」是12點17分;喝到茶的「最早開始時間」是12點17分!
再反過來推,如果要在12點17分能喝到茶!也就是說喝茶的「最晚開始時間」是12點17分!那麼泡茶的「最晚開始時間」是12點16分,「最晚結束時間」是12點17分;燒水「最晚開始時間」是12點1分,「最晚結束燒水」時間是12點16分;洗水壺的「最晚開始時間」需要是12點,「最晚結束時間」是12點1分;拿茶葉的「最晚開始時間」是12點15分,拿茶葉「最晚結束時間」是12點16分;洗茶杯的「最晚開始時間」是12點14分,洗茶杯「最晚結束時間」是12點15分;洗茶壺的「最晚開始時間」是12點13分,洗茶壺「最晚結束時間」是12點14分;
是不是看懵了?沒關係,下面還有更懵的!!!
可以看出,洗水壺、燒水和泡茶的「最早開始時間與最晚開始時間、最早結束時間與最晚結束時間是相同的」,也就是說洗水壺、燒水和泡茶是不能有偏差的!這條路徑確定了泡茶的最終所耗時間,這條路徑就是「關鍵路徑」!
而洗茶壺、洗茶杯,拿茶葉的「最早開始時間與最晚開始時間、最早結束時間與最晚結束時間是不同的」!這條路徑不決定最終的泡茶時間,所以是非關鍵路徑!其中的12分鐘的偏差就是「總時差」!而如果洗茶杯的最早開始時間變為12點5分,則洗茶壺的「自由誤差」就是3分鐘!
到這裡都沒什麼問題,問題在下面,我們再舉個複雜的例子!
人族「萬金油」
魔獸爭霸的人族裡有個著名的「萬金油」組合,大致組合如下:
- 大法
- 山丘之王
- 三個步兵
- 五個火槍
- 三個女巫
- 一個男巫
我們假設有5個農民,金錢和木材無限,如何能最快的訓練出萬金油陣型!
首先我們來看下限制條件:
- 初始有5個農民、一個農場和城鎮大廳。雖然金錢和木材無限,但是農民不能超過5個!
- 要出英雄需要造祭壇,祭壇建造時間為60秒,訓練英雄時間為55秒
- 在城鎮大廳升級到主城之前,不能出第二英雄「山丘之王」,城鎮大廳升級到主城需要140秒
- 要訓練步兵需要建造兵營,兵營建造時間為60秒,步兵訓練時間為20秒
- 要訓練火槍手,除了兵營還需要鐵匠鋪,建造鐵匠鋪需要70秒,訓練火槍手為26秒
- 要出女巫和男巫需要神祕聖地,而建造神祕聖地需要先升級到主城,神祕聖地需要70秒的建造時間,女巫需要30秒的訓練時間,男巫需要28秒的訓練時間
- 要造人,需要建造農場,一個農場可以支援訓練十個人口。其中英雄佔5個人口,士兵2個人口,火槍手3個人口,女巫2個人口,男巫2個人口,農民一個人口!所以總人口為:5 * 1 + 2 * 5 + 3 * 2 + 5 * 3 + 3 * 2 + 1 * 2 = 44人口,除去初始的那個農場,需要再建造4個農場。建造一個農場需要35秒
- 所有建造時間均為單個農民建造時間,n個農民建造時間為t/n
又看暈了?這次我很貼心的畫了一張圖:
- 實線表示先後順序
- 虛線為必要條件,表示所指向的目標需要執行時,除了要在實線初始端的目標之後執行外,還需要在虛線初始端的目標之後執行
如果做過專案管理,這個情況是不是很熟悉?其實就是五個人力,如何高效的完成專案?
統籌方法打造「萬金油」
上面的燒水泡茶是個很簡單的例子,一眼就能看出如何優化執行!這個例子你能一眼就看出最優執行方案嗎?我們來看看使用統籌方法來打造「萬金油」!
細化任務
不論有沒有做過專案經理,應該都知道,一個任務的時間越長,誤差就越大!回想一下你考四六級的時候,你提前一年準備,計劃三個月背單詞、三個月看選擇與閱讀、三個月看寫作,輕鬆搞定四六級。呸!別做夢了!最後可能單詞書都翻不到C,最熟悉的單詞就是abandon,別問我是怎麼知道的!
一般情況下一個任務應該控制在3天之內,最長不超過5天,這才能把控!對於上面的任務,我們來看,哪些步驟是可以拆的!
其實所有的建造過程都可以拆!前面說了,人族裡有個特殊技能,可以合作建造,時間是原來的1/n!其實就是變相的把任務拆了!目前我們的建造任務有:
- 造祭壇60s
- 造兵營60s
- 造鐵匠鋪70s
- 造神祕聖地70s
- 造農場35s
實際上可以拆成:
- 造祭壇 12s * 5
- 造兵營 12s * 5
- 造鐵匠鋪 14s * 5
- 造神祕聖地 14s * 5
- 造農場 7s * 5
找出最長路徑
現在所有的任務都拆到不能再拆了!從這些任務中找出耗時最長的任務!通過其前置任務和後置任務,構建出一條任務路徑!為什麼這裡不叫關鍵路徑呢?因為只是一個初步選擇,並不是特別準確!
很明顯,這裡最耗時的任務是升級主城,耗時140s!它沒有前置任務,有兩個後置任務:訓練山丘之王和造神祕聖地!訓練山丘之王55s,造神祕聖地70秒,好像造神祕聖地比訓練山丘之王耗時長。
但是,請注意,神祕聖地可不是70秒哦,是14s * 5 哦!而訓練山丘之王是實打實的55s!這裡該如何選擇呢?從上圖可以看出,訓練山丘之王之後就沒有後置任務了,而建造神祕聖地後,還有後置任務!所以我們先選擇神祕聖地作為後置任務,訓練山丘之王作為備選項!那麼現在的任務時間是140s + 70s = 210s!
神祕聖地的後置任務是訓練一個男巫+三個女巫!看起來也是隻能一個一個的建造!28s + (30s * 3) = 118s!但是,你可以多造幾個神祕聖地啊!比如造4個神祕聖地,那訓練男巫女巫的時間就變成了30s了!但是相對的,建造神祕聖地又多了,最長要消耗14s * 5 * 3 = 210s了,最短要消耗14s * 3 = 42s!怎麼選擇?
我們先不管這麼多,依然直接選擇最耗時且最明顯的任務,即一個一個的訓練男巫和女巫,耗時118s!目前總共耗時140s + 70s + 118s = 328s!目前這就是我們的「萬金油」任務的最長路徑,但這不是個聰明的路徑!
進行組合
我們已經有了一條最長路徑!我們將其它的任務,構成另一條或多條路徑,使得任務時間和最長路徑中的任務相接近,越接近說明人員使用越飽和,這樣才能使得每個人力得到充分的發揮!萬惡的資本主義啊!
為了方便說明,我們給五個農民分別標號A,B,C,D,E!
首先在升級主城的140s時間裡!由於時間跨度很大,我們的組合方式就很靈活!比如說我們可以讓A造祭壇60s,B和C造兵營30s,D造鐵匠鋪70s,E造兩個農場70s!30s後兵營完成,訓練兩個士兵和一個火槍手,20s * 2 + 26s * 2 = 92s!為什麼要這麼分配呢?因為火槍手要等鐵匠鋪,而造好兩個士兵後,正好鐵匠鋪完成!同時B和C再造一個兵營30s!完成後訓練三個火槍手,26s * 3 = 78s!B和C再造一個兵營30s!完成後訓練最後一個士兵20s!祭壇完成後,立即訓練大法師,同時A去造農場!D和E造完農場後,再一起造一個農場17.5s!
我們算一下,一共耗時多少秒!
- A:60s + 35s = 95s
- B:30s + 30s + 30s = 90s
- C:30s + 30s + 30s = 90s
- D:70s + 17.5s = 87.5s
- E:35s + 35s + 17.5s = 87.5s
- 大法師:55s
- 兵營1:30s + 20s * 2 + 26s * 2 = 122s
- 兵營2:60s + 26s * 3 = 138s
- 兵營3:90s + 20s = 110s
可以看出,農民的工作時間大約是90秒上下,分工還是比較平均的!士兵和火槍手在140s內全部訓練完成!一般專案也是這樣,前期把控較好,壓力也不是很大!到了後期衝刺階段,就開始忙了!
主城升級完成後,立即訓練山丘之王55s,同時五個農民一起去造神祕聖地14s!造完了就開始造第二個神祕聖地!同時訓練兩個女巫30s * 2 = 60s!造完第二個神祕聖地後,再造一個神祕聖地!同時第二個神祕聖地訓練一個女巫30s!第三個神祕聖地造完後,訓練男巫28s!至此「萬金油」組合完成!我們再看下時間!
- 此時五個農民耗時相同,都是14s * 3 = 42s
- 山丘之王:55s
- 神祕聖地1:14s + 30s * 2 = 74s
- 神祕聖地2:28s + 30s = 58s
- 神祕聖地3:42s + 28s = 70s
至此,整個任務的流程已經大致確定了!大致的甘特圖如下!
「萬金油」中的關鍵路徑
我們看下,這個任務的關鍵路徑是什麼!以及非關鍵活動所對應的最早開始時間、最早結束時間、最晚開始時間和最晚結束時間!
從上圖應該很明顯就能看出來,關鍵路徑是
- 升級主城140s
- 造神祕聖地14s
- 訓練女巫30s
- 訓練女巫30s
見下圖紅色部分
總共210s!與上面初步估算的最長時間328s相比,縮短了三分之一的時間,整整118s!從這裡可以看出,好的規劃是可以極大的縮短執行時間的,相對的也就是提高了效率!不只是對專案而言,對個人時間管理也是一樣的!
找出了關鍵路徑,我們來計算一下所有活動所對應的最早開始時間、最早結束時間、最晚開始時間和最晚結束時間!簡單起見,我直接在圖中標示出來:
- 左上角:最早開始時間
- 右上角:最早結束時間
- 左下角:最晚開始時間
- 右下角:最晚結束時間
如下圖所示(友情提示,請看原圖,否則可能會瞎~):
有幾點需要注意的:
- 神祕聖地是需要5個農民一起建造的,而建造神祕聖地是在關鍵路徑上的,所以建造神祕聖地之前的所有其它建造任務都需要完成。也就是說其它建造任務的最晚結束時間,不能晚於建造神祕聖地的最晚開始時間
- 有的建造是有先後順序的,因為農民(資源)是有限的,所以這兩個建造過程的相對時間是有限制的。比如對A來說,必須要先建造好祭壇才能去早農場!
- 淡綠色的標註即表示有先後限制
關鍵路徑的作用
扯了這麼多,關鍵路徑有什麼作用呢?在分享裡,說關注「關鍵路徑」可以有效的把控專案進度!
我比較贊同PMP教程裡對「關鍵路徑」作用的描述:「關鍵路徑」是評判一個專案的靈活程度的!即根據上面所說的「總時差」、「自由時差」,可以判斷非關鍵路徑的可調節度!通過此靈活度,來合理的調配,以期在限定時間裡完成專案!
兩者有什麼區別?看重點!!!「關鍵路徑」的作用是評判專案靈活度,限定時間裡完成專案是副產品!而不是通過「關鍵路徑」就能夠把控專案進度了!
先說為什麼單純的關注「關鍵路徑」不能把控專案進度:
首先,所有活動的時間都是「估算」的!前面說了,對一個任務來說,時間最好控制在3天左右,超過5天就很容易失控了!而對整個專案的估算少則個把月、多則按年計算,估算偏差如何保證?以上面的「萬金油」來說,你保證你微操夠快,執行跟得上你的計劃?你保證對手不來騷擾你,你不要抵抗一下?你保證你牛逼,農民都不會被幹死?光關注個「關鍵路徑」就能彌補了?!
其次,前面也說了,「關鍵路徑」是會變的,可能一個任務延期了,導致這條路徑變成了關鍵路徑,而原來的關鍵路徑變成了非關鍵路徑!照這麼看,你關注的路徑可能隨時會變。換句話說你還是要關注所有的路徑啊!
最後,「關鍵路徑」就是個悖論!我們做專案計劃的目的是什麼?是為了更好的利用資源,減少專案週期!既然要更好的利用資源,我們就需要榨乾資源的每一秒時間(萬惡的資本主義×2)!也就是說,要榨乾資源,就要保證所有的資源路徑都是所謂的「關鍵路徑」!以上面的例子來說,5個農民在210s內,不能有1s的休息時間!用「關鍵路徑」的概念來說就是不能有「自由時差」!如果沒有「自由時差」那說明這個專案裡的所有路徑都是關鍵路徑!對於資源利用來說,這才是最完美的!此時你就需要關注所有路徑了吧?好,既然所有的路徑都叫「關鍵路徑」,那幹嗎還叫「關鍵路徑」呢?就好比是,以前看到漂亮姑娘叫「美女」,現在見到個女的就叫「美女」,這個「美女」和「女士」還有什麼區別呢?都叫「路徑」好了,還省兩字!
再來說下我對「關鍵路徑」是評判一個專案的靈活程度這句話的觀點:
雖然企業的本質是賺錢,但是人是需要休息的,「會休息的人才會工作」嘛!
專案經理的職責就是保證資源能夠在專案中發揮充分的職能!個人時間管理也一樣,「合理的安排作息」應該都聽出老繭來了吧?
而「關鍵路徑」的作用就在這裡,通過初步估算的「關鍵路徑」,確定專案的大致週期!通過「自由誤差」來把控非關鍵路徑的進度,以及人員的調配、對突發情況的應對以及給予人員休息時間!同時,有了這個「自由誤差」,當「關鍵路徑」出現問題的時候,我們可以嘗試用非關鍵路徑上的資源來協助以彌補可能出現的延期!以期能在規定時間內完成任務!
「萬金油」裡,每個農民不都有幾十秒的休息時間嘛!有的休息時間長一點,有的休息時間短一點!萬一哪個農民被殘忍的殺害了,其它閒著的農民可以立即去替補啊,不至於太影響工期(萬惡的資本主義×3)!且休息完後,才有充足的精力投入到後面緊張的神祕聖地的建造當中去嘛(萬惡的資本主義×4)!
總結
雖然這是從一個關於專案管理的分享引發出的思考,不過其實對個人的時間管理也是一樣的。
重要事情作為「關鍵路徑任務」,非重要事情作為「非關鍵路徑任務」,任務細化最長不超過5天,最好3天之內,通過合理的分配,可以高效的完成制定的計劃!當然了,計劃做得再漂亮,重要的還是執行!