緊,基本上你必須在指定時間內(nèi)完成,估算顯得毫無價值。
第一個問題是比較常見的,但我們要這樣想:估不準也比不估算好,估算偏差哪怕超過100%,也比不估算好,至少有個譜。
大家是會進步的,估不準往往是對任務(wù)和自己能力認識不到位,要讓大家不害怕估算,只要敢于估算,問題才會暴露出來,才能持續(xù)進步。
第二個問題分兩種情況,有些人是確實是過分保守的對自己信心不太足,項目經(jīng)理可以多多來指導(dǎo)他的工作,看看他具體的進展,讓他更加充分地了解任務(wù),更加充分了解自己的能力,增強他的信心,這樣他就能持續(xù)進步了。而另外一種情況就比較惡劣,少數(shù)人會故意增大時間,這樣他平時工作不必全力以赴,可以比較悠閑,甚至可以利用工作時間干私事。如果發(fā)現(xiàn)這樣的情況,就應(yīng)該嚴肅處理了,不要做爛好人,這樣的人在團隊中存在是對團隊的極大傷害。
第三個問題往往是各項目經(jīng)理心中的痛楚,他們會覺得:實在無奈??!做項目就是在有限時間有限資源內(nèi)做不可能完成的任務(wù),在這樣的情況下,你就不要跟我扯估算了!
我們的項目大部分情況都是非常大壓力的,應(yīng)對這樣大的壓力越需要冷靜。實際上大部分項目盡管是有壓力,但只要發(fā)揮團隊的聰明才智,還是可以高效地做好工作的,不需要加班或者少加班。本文稍后會介紹這個問題的應(yīng)對辦法。
介紹了這么多種估算方法,每種都有很多問題,那到底怎樣才能做好項目估算呢?
軟件項目的特點就是項目簽訂時,價錢是死的,工期是死的,而需求和設(shè)計是不明確的。
我的經(jīng)驗告訴我,功能點法、代碼行法這些方法基本上是不靠譜的,我在實際項目中會綜合使用Dephi法和由底而上的估算方法,并予以改良,下面介紹一下我的一些心得體會。
1.項目估算與其說是估出來,還不如說是做出來的。
假設(shè)某項目是這樣的情況:
1)合同簽署的金額是100萬,工期是3個月。
2)需求只是大致寫了,并不明確。
3)老板要賺50萬,給你的預(yù)算只有50萬。
我們很多項目都是這樣的情況,不是等你估算出比較靠譜的數(shù)字,然后才去報價簽合同的,我們經(jīng)常要在老板指定的預(yù)算下完成項目。
你現(xiàn)在要負責(zé)這個項目,你會如何做估算呢?
你需要做好兩個事情,才能保證項目實際成本控制在預(yù)算內(nèi)。
第一個事情,控制好需求。需求不明確,這既是不利因素也是有利因素,應(yīng)盡量往有利的方向控制。不明確的好處就是你有控制需求的空間,抓住客戶的關(guān)鍵需求,簡化不必要的花銷的需求,能極大地降低項目工作量。
第二個事情:想盡辦法降低開發(fā)工作量。不要因為進度緊就不認真思考軟件的設(shè)計,應(yīng)盡量采用簡單的成熟的設(shè)計方案,簡化工作。
2.估算應(yīng)該持續(xù)進行,持續(xù)細化。
項目初期很難對項目做完整估算,但能估計的部分應(yīng)先估計出來,并且針對不明確的部分安排計劃去搞清楚。
3.估算是項目各種工作估算的總和。
估算并不是只是得到一個項目估算的總體數(shù)字,項目的估算總數(shù)其實是由項目各種工作的估算組成的。
前文介紹了項目的各種工作,每一種工作都需要認真估算。如果估算發(fā)生偏差,要能定位到具體是哪部分的估算出問題了,否則估算沒有指導(dǎo)項目工作的價值。功能點法、代碼行法的估算辦法,只能得到一個項目估算的總數(shù),而不能定位到具體的哪一部分工作,這樣得到的估算結(jié)果難以用來指導(dǎo)項目工作。
4.估算依賴項目組的整體實力。
如果你沒有軟件開發(fā)相關(guān)經(jīng)驗,只懂理論上的估算,你是不可能做好估算工作的。
項目組由項目管理、軟件設(shè)計、編碼、測試、實施等各類專業(yè)人才組成,每個人在自己方面都是專家,每個