一個曾經(jīng)與我一起工作過的經(jīng)驗豐富的項目經(jīng)理聲稱,他拿到程序員的時間估算以后,先將它乘以π,然后轉(zhuǎn)化下一個時間數(shù)量級后,才能得到真正的值。1 天轉(zhuǎn)化成3.14周。他過去因為程序員不擅長估算時間而吃盡了苦頭。我創(chuàng)建了一個用來翻譯程序員時間估算的表格,來盡量縮小估算錯誤。
時間估算時困難的。每一個程序員都有一個現(xiàn)實的估計區(qū)間。低于這個區(qū)間的估計意味著(構(gòu)件,測試,檢查代碼的)時間開銷被低估了。超過這個區(qū)間的估計意味著這個任務(wù)太大而很難預(yù)估。
對于初級開發(fā)者來說,這個區(qū)間甚至都不存在。他們忽略(構(gòu)件,測試,檢查代碼的)時間開銷,同時困難的任務(wù)他們卻又無法預(yù)估。我想說一個有經(jīng)驗的開 發(fā)者應(yīng)該在0.5至24小時將事情做完。超過24小時,就需要細分。這項工作應(yīng)該在開發(fā)者的頭腦中完成,然后總和到60小時。但是即使是有一些有經(jīng)驗的開 發(fā)者也需要有利用管理時間塊來思考。
同樣重要的是明白:編程經(jīng)驗不等同于估算經(jīng)驗。一個不被包含在估算流程中的開發(fā)者將不會擅長估算。同樣,如果實際的時間花費不被測量和用于與估算比較,那么將沒有反饋來學(xué)習(xí)。
最后,每個程序員都應(yīng)該具備估算的技能。為磨練這個技能,接手每個任務(wù)時,先決定你要做什么。然后在開始之前估算任務(wù)所需時間。最后測量實際花費時 間,并與估算相比較。同樣比較你實際完成的與計劃完成的。這樣你將會既提高你對一個任務(wù)包含細節(jié)的理解,同樣也提高了你的估算技能。
該文章在 2012/8/6 22:28:59 編輯過