星期一, 8月 02, 2010

約耳趣談軟體 - 附錄

本書最後有讀者問了如何估計軟體開發時程,我簡單節錄約耳的回答:

如果估計的是已經細分過的任務(每個任務長度最長是一天,否則必須再細分下去),而且評估者要有足夠的經驗,能在估計時間內包含一切(假期、整合時間、「新功能」時間、參加愚蠢經營會議的時間、面試的時間...等),那只需要10%的緩衝時間。
但這段緩衝時間只是讓自己心安的做法,應該要根據各種類型的緩衝,還有事情的緩急來分配時間,例如:
1. 開發過程中想到的預期外的功能,針對這些新功能的緩衝時間。
2. 由於競爭者做了某些事,為了因應競爭者所需的緩衝時間。
3. 整合各個開發者所寫的程式碼,讓結果正確運行的緩衝時間(依經驗可以是從25%~100%)
4. 在測試時發現問題並修正的緩衝時間。
5. 員工必須執行開發之外的工作,例如:training課程、公司緊急會議、火警演習、準備老闆生日蛋糕...等。
6. 預防發展不順利時的緩衝時間。
7. 因應估計時漏列事項的緩衝時間。

我之前待的TM公司,manager們在列tasks時就已經常常漏列許多tasks了,也沒有在估計"整合"的時間,也常常有高層想到新的東西就硬要加進來做,當然也沒有估計過會議等雜事的時間...
不過我想犯的最大錯誤可能是讓"沒有經驗"的人來評估時程...總之一個佔公司快一半營業額的產品就這樣被搞得亂七八糟,我想過不用多久,大家就會知道了。

沒有留言: