實踐敏捷估算(1)——不僅僅是估不準的問題

張傳波(Fireball)發表於2014-06-04

摘要:

說起估算問題,我們第一反應往往是“估不準”!估得準又如何呢?如果估算結果是需要5個月才能完成,但合同要求3個月交貨,你怎樣辦?所以其實我們還有一個“估得多”的問題,而在“估不準”和“估得多”這兩個問題之前,還有“不敢估”的問題。

 

 

估算問題很複雜,我們首先要做的是拆解這個問題,這樣才能更好地找到合適的解決方法。

 

我們從不同角色的視角來看看估算的問題:

 

老闆如何看估算?

 

老闆是很瞭解自己的手下的:如果讓專案組自己去估算,那麼估算值一定是大於工期限制,而且實際的工作量又會遠大於估算值。

但老闆是要賺錢的,專案的合同金額是固定的,交付期是“死”的,所以專案組不要跟我扯專案有多困難,不要說需要更長時間,反正必須在交付期之前將專案做出來,而且專案能驗收!這樣才能符合我的利益。

所以老闆不太可能讓專案組自己估算工期,然後讓專案組按照這個工期來安排工作。

 

專案經理如何看估算?

 

專案經理(後面簡稱PM)是責任大,權力小的職位,專案的“幾座大山”都壓在了PM身上。

這“幾座大山”是什麼呢?

1)進度的壓力

2)老闆的壓力

3)客戶的壓力

4)軟體質量的壓力

5)恨鐵不成鋼的專案組成員

6)……

本來估算應該是舒緩這些壓力的好辦法,如果能根據估算來安排進度和調整專案組的人力安排,估算就是美好的。

但問題是估算出來需要5個月完成,但工期只有3個月,老闆和客戶都不會因為這個估算而放鬆對進度的要求和限制,也不會降低軟體的質量要求,老闆也不會安排更多的人手到你的專案組(專案期間老闆如果不將人員抽走的話,你已經要阿彌陀佛了)。

所以估算對於PM來說一點價值都木有,橫豎都是死,不如節省這些無用的估算時間,讓我死得舒服一點吧。

 

專案成員如何看估算?

 

我是來打工的不是來賣命的,完成本職工作對得起這份工資就行。專案成敗跟我沒啥特別關係,PM把任務安排下來,我完成任務就可以了。至於加班嘛,這是IT界的“潛規則”,我就加一點吧,但沒日沒夜的加班老子是受不了的!

你說“估算”?讓我估計自己任務需要多長時間完成?說了這個時間有用嗎?我說10天你還不是直接砍成3天,不要做這種“虛偽”的事情了,直接告訴我什麼時候要完成就行了。

 

客戶如何看估算?

 

不要老說我們提不出需求,你不做出來我怎樣知道我要什麼呢?軟體開發我不懂,不要每次催促你們交貨就跟我提一些我聽不懂的理由,我們懂技術的話就沒有你們公司的事了!我們判斷事情的標準其實很簡單,簽署合同時我們已經寫得很清楚了,就是:給你們這麼多錢,這樣的工期,到時必須交出像樣的東西出來!

估算?你說什麼估算?你們籤合同的時候不是應該想好了嗎?現在才跟我說超出工期,那合同要來幹嘛呢?

 

看上去無論是從哪個角度來看,估算”都是“十死無生”的事情,而且估算似乎沒有辦法兼顧各方面的利益。那麼是不是不談估算,直接繞開估算這個事情,就“萬事大吉”呢?

 

理想的估算境界

 

理想情況是這樣的:專案組的估算符合合同的要求,能在工期內交付,能保證質量要求,而且專案的實際情況與估算情況基本吻合,並且專案組不需要太多加班,甚至是不需要加班。這樣就能滿足和平衡老闆、PM、專案組成員以及客戶的利益了。

 

避開估算其實象鴕鳥遇到事情將頭埋在沙中,避得一時避不了一世。我們需要直接面對估算帶給我們的挑戰,只要能克服以下的三個問題,就可以實現上述的“理想境界 ”。這三個問題是:1)不敢估;2)估不準;3)估得多。

 

問題1:不敢估

 

不敢估算或者不願意估算,主要有三個原因:

1)專案工期是限死,專案人力資源基本也是死的,讓估算者覺得估算沒有價值;

2)專案的需求不確定,採用什麼技術也不太確定,讓估算者覺得無法進行估算;

2)估算其實相當於是對自己工作的承諾,估算者不想自己對自己設套。

 

問題2:估不準

 

不敢估算這個問題克服後,估不準的問題就會呈現出來,估算誤差超過100%甚至是200%以上都是很常見的事情。不必太過緊張,如果能克服“不敢估”這一關,“估不準”這個問題是可以解決的。

“估不準”的原因通常有:

1)對專案的需求和技術估計不準,特別是專案需求不確定的時候;

2)對專案組自身的估計不準,包括對自身的技術能力、團隊協作能力、研發流程能力的估計等。

 

問題3:估得多

 

估算出來了,而且實際情況也估算情況相差無幾,也不一定能滿足要求,因為這個估算往往是大於工期的限制的。這第三個問題,才是我們終極需要解決的問題!

估算方法最多隻能幫助我們估得比較準,但並不能幫助我們估算得少,真正能讓估算數字下降的決定性因素是什麼呢?這個決定性東西其實就是你們的研發能力!

 

如何解決這些問題?

 

談起估算問題,我們表面上談的是“估得準”的問題,而實際上我們希望的是“估得準並且估得少”,要終極達到這個目標,必須按順序逐步來解決前文提到的三個問題。

公司的領導們不要太過心急,這三個問題沒有幾年時間是不能徹底解決的,給你一個時間表參考參考:

1)徹底解決問題1大概需要3個月時間;

2)在解決問題1基礎上,徹底解決問題2大概還需要6個月-1年時間;

3)在徹底解決問題1、2的基礎上,徹底解決問題3大概還需要2年以上時間。

 

這是一個系列文章,將會圍繞這三個問題給出一些最佳實踐供你參考,你也不用太擔心需要這麼長時間 才有效果,後續文章會為你分享馬上可以實踐的做法,改進是持續進行的。

 

以下是本系列文章的大致規劃:

1.不僅僅是估不準的問題  <---------這是本篇文章

2.估算可以很難也可以很容易

3.估算和預算 

4.估什麼?誰來估?

5.怎樣估算?

6.專案初期的估算

7.專案中後期的估算

8.怎樣才能讓估算數值更少?

 

請關注後續文章,謝謝!

 

 

作者:張傳波

創新工場創業課堂(敏捷課程)講師

軟體研發管理資深顧問

CMMI首席專家

《火球——UML大戰需求分析》作者

軟體知識原創基地創辦人

相關文章