【轉載】爲什麼程序員預估的時間都不靠譜

一個我曾經共事過的很有經驗的項目經理曾宣稱說,他會拿程序員估計出的時間乘以π值,然後再提高一個數量級,這樣得出的纔是正確的開發所需要的時間。1天時間經過變換後是3.14周。他經過慘痛的教訓才認識到程序員預估的時間都是不靠譜的。爲了能更精確的對程序員估計的時間進行換算,我創建了一個時間換算表,重點說明究竟是什麼地方出了問題。
[img]http://dl.iteye.com/upload/attachment/0073/4935/67d9e070-6d92-32e6-b34b-ce39d81e549f.jpg[/img]
[img]http://dl.iteye.com/upload/attachment/0073/4937/6684b174-aee6-3d1d-a5cb-300fbb146c8a.jpg[/img]

預估時間本身就很難。每個程序員的估計都會跟真正需要的時間有些差距。估計時間短了說明有些事情被忽略了(編譯,測試,提交代碼)。估計時間超了說明任務太大,難以理解。
對於資歷較淺的程序員,這種估計誤差是混亂的,他們經常會輕視一些任務,同時又對一些稍微有難度的任務過分高估。我認爲,對一個有經驗的程序員,一個任務的時間應該在半小時到24小時之間,超出24小時的任務都需要拆分。程序員在腦中想一想可能會認爲要60小時,但實際上即使是很有經驗的程序員也需要將任務分成可控的模塊再來分析做決定。
還有一個很重要的需要認識到的一點是,編程上的經驗並不等同於時間估計上的經驗。一個從沒有做過工期估計的程序員不會擅長估計時間。如果不去拿真正需要的時間和估計出的時間進行比較,你不可能從其它反饋信息之得到正確估計時間的經驗。
每個程序員都會用到評估技巧。爲了提高你的這項技能,你可以在你從事的每個任務上進行鍛鍊。在任務開始時先預估開發所需時間,拿它跟你最終真正用掉的時間進行對比。這樣,你不僅在對任務細節的理解上有提高,同時也提高了你對時間預估的技能。


原文:http://www.aqee.net/why-programmers-are-bad-at-estimating-times/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章