在軟體估算中有一些原則可以優先考慮,其中一項就是先計數再計算。以下分別說明如何進行先計數再計算
先計數
具體做法為蒐集對目前專案進行估算最有幫助或最相關的資訊。
舉個簡單例子,對於網站開發可以蒐集網站包含的網頁數量,若該網站包含10個頁面,10個頁面就是計數的結果。
另一個例子為釐清需求後,發現系統有10個特性(或功能)需要完成,這也可以當作計數的結果。
先計數的重點是盡量挑選對估算專案最有幫助或最相關的資訊,以下列出幾個優先考慮的方向
1. 和專案規模(時間,成本,人力)最相關的目標
2. 挑選在統計學具有代表性的數量,如計數的數量包含或超過20個
3. 了解計數的相關資訊,資訊代表甚麼意思? 適合目前的專案嗎?
4. 容易取得的計數資訊,在相同的條件下以容易計數的資訊為優先
再計算
接著再對計數的結果進行計算,若計數的結果有長久穩定的歷史紀錄或具體數據,效果會越好。
繼續以上述的範例來說明,假設計數出網站包含10個網頁並根據已存在的歷史紀錄評估出1個網頁大約2.5天,那麼10個網頁大約就是25天。
再計算的重點為計算過程盡量透過歷史紀錄和具體數據來評估,特別要避免憑空推測或單憑經驗來計算,原因之一就是個人單體經驗未必適用於所有情況。
這點對於經驗老練但不謹慎的開發者反而容易犯錯。
以下列出可用來計數的目標和後續計算所需的歷史資料
可計數的量化目標 | 後續計算所需的歷史資料 |
---|---|
特性 | 每個特性用於開發和測試的平均時間 |
使用案例 | 每個使用案例的平均工作時間 |
使用者故事 | 每個使用者故事的平均工作時間 |
功能點 | 每個功能點的平均工作量 |
頁面數 | 每個頁面平均工作時間 |
資料層 | 每個資料表的平均工作時間 |
類別 | 每個類別的平均工作時間 |
總結
先計數再計算為軟體估算的原則之一,先計數的做法是對於估算目前專案最有幫助的資訊進行計數。請注意幾個優先考慮的方向。
再計算的做法為對於計數結果進行計算,當計數的結果有長遠的歷史紀錄或數據,效果會最好。特別注意避免憑空或只憑經驗進行計算。