對當前參與的項目,為什么我們評估的工作量總是不太準確?
好的工作量評估,必須建立在對當前參與項目的實際情況有全面了解、有足夠清晰的看法的基礎之上。
一、怎樣的工作量評估結果算是準確的、好的評估結果?
好的工作量評估,必須建立在對當前參與項目的實際情況有全面了解、有足夠清晰的看法的基礎之上。評估的結果必須成為整個項目可控的基礎,可以給項目負責人(在我們公司通常是項目經理或者產品經理——偶們的產品經理們通常一定程度上兼職了一些項目經理的職責)制定合理的計劃提供可靠的依據。
參考一些統計數據來看,一個工作量評估良好的項目,某些單個的任務評估值難免會和最終執行結果產生偏差,但最終結果始終在評估范圍左右,并且隨著項目的進行,評估的范圍是可以越來越小的。項目的進程是可以預測并且整體可控的。如下圖:
圖1:評估結果良好的項目過程的數據比較圖
下圖是一個評估結果較差并且有低估傾向的項目工作量評估過程的參考數據統計,這個項目一直處于工作量被低估的狀態,并且評估的范圍太窄以致于實際進度始終沒有在評估的范圍內。
圖2:不好的工作量評估過程的數據比較圖
不準確的工作量評估,往往直接導致依據其制定的項目計劃失去實際意義,項目的實際進程總是偏離計劃的軌道,項目進程經常處于難以預測、不可控的狀態,這對項目管理者來說是非常糟糕的。
工作量評估的不準確而導致項目進度不可控,對于整個項目來說非常不利且不說,對于本人來說,你很可能成為眾矢之的,經常被合作伙伴們催進度,責怪不給力的感覺肯定非常不好吧?如果你正有“為什么我工作量評估總是不太準?”這樣的困擾,看看下面這些分析是不是會對你有所幫助。事實上我個人建議大家在工作量評估的時候,必須回避掉這些不合理的做法。
二、為什么我評估的工作量總是不太準確?
工作量評估不準確的罪魁禍首:低估
罪魁禍首居然是低估?不是高估么?
大多數人都這樣認為,如果你給一個開發者5天時間去做一件4天就能完成的工作,他必然會去尋找一些別的事情來把多出來的一天用掉;如果你給一個項目組6個月時間來完成4個月就能完成的項目,他們同樣會找到辦法來把多出來的2個月用掉;時間評估的多了,怎么樣都有辦法可以用掉(或者直白點:浪費掉)!老板們總是希望大家花越少的時間干越多的活,他們也深知大家的這點花花腸子,所以他們往往都希望通過擠壓評估的時間來避免這個現象。
當然還有一些人認為如果給了太多的時間,開發人員往往會把任務放到后面來開展(每個人都有一點小小的拖延癥),這樣他們到最后還是匆匆忙忙的完成甚至無法按時完成任務。這些擔憂都是正確的,而且也是客觀事實,但是在開發過程中,工作量高估的代價卻是線性的可控的,頂多就是浪費掉多估出來的那些時間。你可以回頭看下上面的兩張參考圖,高估的結果起碼實際進度會一直落在評估的范圍之內,是可以預測、可控的。
反倒是工作量低估的壞處更加厲害。低估的代價是非線性的不可控的。工作量評估不準造成計劃5%-10%的延遲還不算太大問題,但是大多數時候這樣偏低的評估造成的可能是100%以上的偏差,基本上基于這樣的評估結果來制定的計劃就是在“我猜,我猜,我猜猜猜!”,已經失去實際意義。
大家都知道完整的項目工作是環環相扣的,你所在的項目環節往往還有上下游的環節,你依賴上游的進度,你的下游依賴你的進度。你把三天的工作量評估成兩天,你的下游肯定是計劃兩天后就要介入的。結果你實際上必須得花三天才能完成!你下游的計劃,亂了吧?你下游的下游的計劃也跟著亂了吧?是不是差不多整個項目計劃都可能跟著一起亂了?一群人可能就要指責你了,為什么延期?。∑鋵嵅⒉皇悄銓嶋H工作不給力,只是因為你低估了工作量。
由于低估帶來的計劃延期等問題在管理規范的團隊里面需要進行延期原因分析、影響評估、計劃變更評審等等相關工作,這些工作所需要代價疊加起來往往是非線性增長的。
反過來想一下,如果你這三天的工作量,高估了一點估成了3.5天,即便是多費了半天時間,但是后續的計劃基本上還是都可以跟上的。不是鼓勵你高估工作量,只是你必須知道低估造成的危害往往更大!所以不要有目的的去低估,更不要盲目的樂觀!低估的代價比高估的代價更高,我們的程序猿往往還是樂觀主義者更多,往往給出的評估值就已經是較少的時間和成本了,如果再刻意壓低評估值,一定適得其反。這一點,我覺得除了各位一線的開發人員必須知道之外,項目管理的負責人更必須知道,不要盲目的、刻意的要求開發哥哥壓低他們合理的評估值!評估值低了,并不等于你的實際進度就真的可以更快了??!
工作量評估不準確主要原因之二:拍腦袋
拍腦袋,大家都懂什么意思啦。評估工作量的過程中拍腦袋的表現就是即興估算,根據個人記憶、印象,在未仔細考慮前就給出的看似思考分析過的評估結果。因為個人記憶常常出現錯誤,比如并不是記住項目的實際結果而是評估值或者是直覺,所以這種評估也常常出現錯誤。根據某位大牛實驗收集的24組人員的即興評估數據,并對即興評估的平均誤差和經過小組評審的評估結果的平均誤差進行比較,見下圖:
圖3:即興評估與評審過的評估的平均誤差比較圖
可見一般的即興評估的平均相對誤差量為67%,而一般評審過的估算的誤差只有30%,只有前者的一半。所以不要拍腦袋,即使只用15分鐘坐下來查查以前的記錄的數據再進行估算也會更加準確些。
想一想,產品經理或者項目經理經常問:這個需求很簡單的,一天就能搞完是不是?或者:這個需求很簡單,你幫忙看下多久能搞完?你這個時候拍腦袋了嗎?吞過拍腦袋造成的苦果嗎?冷靜一點,建議你不太能確定的情況下一定不要拍腦袋回答他,完全可以說:等我先仔細評估下,稍后答復你怎么樣?
避免拍腦袋評估出不合理的工作時間,是對自己負責,更是對項目的實際進度和質量保證負責。
工作量評估不準確主要原因之三:遺漏工作
看看下面張表,是不是有些工作(比如紅線圈出的部分)你開始根本沒想到要評估到你的工作量當中去? 往往就是這些漏網之魚造成你的評估值偏小,導致項目計劃不合理而常常延期。
圖4:正確的工作量分解示意圖
想想你在評估工作量的時候,有沒有直接只評估項目的主要任務分解出來的那部分?是不是沒有考慮一些前期的準備工作、公共的工作,也沒有包括后期的聯調優化、產品體驗、測試所需的時間? 實際上這些前后期的工作都是必不可少的,往往還都是工作量的大頭,評估的時候沒考慮進去,得到的計劃一定沒個準。
一定程度上我們甚至可以說遺漏工作是導致工作量低估的罪魁禍首!也就是禍首中的禍首,很可怕。從這個角度來看認真、全面的了解需求和分解任務非常重要。
三、準確評估工作量的正確姿勢
知道了評估工作量的三大誤區之后,我們不難反推,正確的評估姿勢就是:先做好充分的工作量分解,在不遺漏工作的前提下,對每個分解出來的子任務合理評估工作量。所謂的合理評估量就是不拍腦袋,不刻意低估也不刻意高估。
說起來容易,做起來難。難點有二:
- 首先是如何充分分解,不遺漏工作。
- 其次是如何合理評估,即不拍腦袋,也不低估、高估。
1. 先說怎樣充分的工作分解
通常我們使用的方法叫WBS,工作分解結構:
WBS工作結構
如下圖示例:
示例
但并不是到這一步就可以開始評估工作量了。嚴格意義上講,我們這里分解出來的工作包應該是名詞,不是動詞。還需要識別和定義為實現工作包而進行的活動,如下:
識別和定義為實現工作包而進行的活動
定義活動的過程,我們要生成一個活動清單,如下:
活動清單
為了確?;顒拥亩x也是正確、充分的,你可能還得先知道,活動其實有三種主要類型,除了獨立型活動,往往還有許多相關的依賴型活動、支持型活動,千萬不要忽略了,如下圖:
活動類型
2. 再說如何科學理性的評估工作量
活動清單制作完成后,就可以逐個活動來評估它的工作量了。既然不能拍腦袋,那肯定有一些比拍腦袋更可靠的方法要介紹給大家:
評估工作量
其中幾種方法分別簡單介紹如下:
(1)類比估算
評估方法
(2)參數估算
評估方法
參數估算的特點是:
基于歷史數據和項目參數,如單價、單位時間的工作量等。 評估的準確性取決于參數模型的成熟度和基礎數據的可靠性。 通常適用于重復性工作。
(3)三點估算
評估方法
三點估算的合理性在于,它估算出來的結果是符合統計學規律的,評估結果的準確性基本上有保障。但前提在于最悲觀、最可能和最樂觀三種情況的評估都是相對比較可靠的。往往對于最悲觀、最樂觀、最可能三種情況給出的評估值,我們都是采用類比估算或者參數估算得出來,所以實際上三點估算是一種綜合的估算方法,比較好理解,可靠性也比較高,是我們實際工作當中推薦大家嘗試去使用的方法:
方法合理性
實際工作中怎么用三點估算,我們的做法其實就是一個excel的估算表格,不要想的太復雜:
估算表
表中工時估算結果這一列是用工式自動根據前面三列估算結果計算出來的。
(4)儲備分析
然而,即便是我們推薦了一些系統性的方法來盡量避免遺漏工作點,避免拍腦袋造成的評估不準確,但是實際工作當中總是變化多于不變,總是會有一些我們一開始難以預料的因素導致考慮不周全。我們把這些可能影響計劃的不確定因素叫做風險。
風險,簡單來說可以分為三類:
一種是可以預測的異常情況,同時也能預測這種情況發生的概率,且一旦它發生會對工作計劃產生多大的影響。比如,預測有很大概率產品經理可能三天后會增加一個需求點(雖然他現在還沒有提),一旦增加這個需求點,將導致增加一天的工作量,原定項目計劃將延期一天。我們把這樣的風險叫已知-已知風險。這種情況,推薦你先直接把預測到會增加的這一天工作量直接評估進去,并跟相應的產品或者項目經理說明。
一種是可以預測到的異常情況,但是不知道他發生的概率到底有多大,也不能預測它如果真的發生了,會對工作進度產生多大的影響。我們把這樣的風險叫已知-未知風險。我們推薦的做法是有一些風險識別示例來給大家做參考,示例中的風險往往是實際項目當中比較容易發生的,但在當前的具體項目中,發生的概率其實不好預測。如下圖:
技術風險
對于這類風險,通常推薦的做法是,項目管理者在整個項目工作量評估的基礎之上,留一定比例的“應急儲備”,這個比例往往是根據以往的項目經驗值來設置的。比如某個項目評估的總工作量是10個人日,以往的經驗值是需要5%的應急儲備,那最后給出的評估工作日應該是10.5個人日。一線開發人員實際評估工作量的時候,如果采用的是三點估算,也就是已經考慮了最悲觀的情況(最悲觀情況本身就包含一些不利影響因素的),不應該再自行增加應急儲備。
還有一種是完全未知的風險,基本上是想都沒想到,以前的項目經驗當中也沒有發生過的異常事件,更無法預測它一旦發生會對工作進度產生什么樣的影響,我們管它叫未知-未知風險。這類風險,通常的做法是項目管理者要有一個管理儲備,也是一定比例的預留時間,比如10%。對于一線開發人員評估工作量的時候可以忽略這種情況。
三種風險的應對策略,總結如下圖:
應對策略
其中關于應急儲備和管理儲備,主要是項目管理者應該主要關心的,直接一點說或者也就是預留一些緩沖時間(實際上,項目負責人和更高層的決策者不單要考慮工作量,還要考慮成本等更綜合的因素,他們的應急儲備和管理儲備,往往不單是有時間的儲備,還可能有人力的儲備、資金的儲備,希望我沒有泄露天機……)
四、總結
綜合來說,充分的工作分解、科學理性的任務評估再加上合理的儲備分析,最后的出來的一個總的工作量評估會是一個相對合理、可靠的結果。在此基礎上制定的工作計劃更加合理可控。?
這里還有一點需要提示的是,可以注意到前面介紹的方法,大多數是依賴于歷史經驗教訓的總結,比如類比估算和參數估算都是需要有過去類似項目的相關數據可以參考的;三點估算的三種情況的評估值其實也依賴于歷史項目的經驗值;儲備分析當中,適用于當前團隊的風險識別示例,是要團隊或者自己去慢慢識別和積累的;應急儲備和管理儲備的比例值應該是多少,也依賴于歷史項目的經驗值。
所以每經歷一個項目,做項目總結時候都有必要有針對性的做一些相關的經驗教訓總結,提煉一些關鍵數據沉淀下來供團隊后續的項目來做參考。往往是越成熟的團隊,這塊工作做的越好,并且因此它對項目的把控能力也會越來越強。
不知到這里,你已經了解到合理評估工作量的正確姿勢了嗎?
作者:lyndonliao,微信公眾號“騰訊FITdesign”
本文來源于人人都是產品經理合作媒體@騰訊FITdesign,作者@lyndonliao
題圖來自 Pexels,基于 CC0 協議
我的客戶大部分并不知道自己的具體需求是什么,也沒有具體的項目規劃書,例如:我需要一個類似滴滴打車的系統,多長時間,多少錢?
基本上是PMP課程書里的內容