在軟體估算中有一些原則可以優先考慮,其中一項就是先計數再計算。以下分別說明如何進行先計數再計算


先計數

具體做法為蒐集對目前專案進行估算最有幫助或最相關的資訊

舉個簡單例子,對於網站開發可以蒐集網站包含的網頁數量,若該網站包含10個頁面,10個頁面就是計數的結果。

另一個例子為釐清需求後,發現系統有10個特性(或功能)需要完成,這也可以當作計數的結果。

先計數的重點是盡量挑選對估算專案最有幫助或最相關的資訊,以下列出幾個優先考慮的方向

1.      和專案規模(時間,成本,人力)最相關的目標

2.      挑選在統計學具有代表性的數量,如計數的數量包含或超過20個

3.      了解計數的相關資訊,資訊代表甚麼意思? 適合目前的專案嗎?

4.      容易取得的計數資訊,在相同的條件下以容易計數的資訊為優先


再計算

接著再對計數的結果進行計算,若計數的結果有長久穩定的歷史紀錄或具體數據,效果會越好

繼續以上述的範例來說明,假設計數出網站包含10個網頁並根據已存在的歷史紀錄評估出1個網頁大約2.5天,那麼10個網頁大約就是25天。

再計算的重點為計算過程盡量透過歷史紀錄和具體數據來評估,特別要避免憑空推測或單憑經驗來計算,原因之一就是個人單體經驗未必適用於所有情況

這點對於經驗老練但不謹慎的開發者反而容易犯錯。

以下列出可用來計數的目標和後續計算所需的歷史資料

可計數的量化目標後續計算所需的歷史資料
特性每個特性用於開發和測試的平均時間
使用案例每個使用案例的平均工作時間
使用者故事每個使用者故事的平均工作時間
功能點每個功能點的平均工作量
頁面數每個頁面平均工作時間
資料層每個資料表的平均工作時間
類別每個類別的平均工作時間
可計數量化目標及後續計算歷史資料


總結

先計數再計算為軟體估算的原則之一,先計數的做法是對於估算目前專案最有幫助的資訊進行計數。請注意幾個優先考慮的方向

再計算的做法為對於計數結果進行計算,當計數的結果有長遠的歷史紀錄或數據,效果會最好。特別注意避免憑空或只憑經驗進行計算