不同的估算技術適用於不同的估算環境,以下為選擇估算技術的主要因素


估算的目標

估算的目標分為兩種情況,第一種情況是你已經知道有哪些特性並可針對這些特性來估算時間和工作量,稱為”專案規模“。

第二種情況為你已被限制在固定的預算或工作時間內,必須在這個條件範圍內估算可以交付那些特性,稱為“估算特性”


專案規模

專案規模分為小型,中型,大型專案。

小型專案:

包含5個或5個以下的人員,因為個體生產力的可變性會明顯的影響其他因素,所以一些適用大型專案的估算技術不適用於小型專案。

對於小型專案來說比較好的估算技術為根據實際執行該專案的人員所做的估算(也稱為從下而上)。

中型專案:

中型專案一般為5到25人組成,專案週期為3到12個月。中型專案的優點為幾乎適用於所有大型專案和一些小型專案的估算技術。

大型專案:

大型專案為25人以上,專案週期為6到12個月或更長的時間。在大型項目中根據不同階段選擇不同的估算技術是最準確的。

大型項目的前期階段適用於根據統計或演算法延伸的估算技術(也稱為從上而下),較不適用根據個人提出的估算技術(從下而上)。

大型項目的中期階段可以根據已經產生的專案數據結合從下而上或從上而下的方法來評估,可以到較準確的結果。

大型項目的後期階段適用從下而上的估算技術。


開發風格

開發風格指的是專案的進行方式為直線或迭代,但對於估算技術而言直線和迭代差別在於前者在專案前期需求定義的佔比大,後者為軟體建構之後再進行的需求定義佔比大。

無論是直線或迭代都傾向於從上而下或根據統計的估算技巧開始,最後轉移為從下而上的方式結束,但因為迭代的進行方式會參考自身所產生的數值來改進,所以相比之下更能強化估算準確度。


開發階段

開發階段也可分為三種,各為前期,中期,後期。

前期:

直線式開發風格的前期通常為從問題定義開始到需求完成階段。迭代式開發風格的前期指的是專案初始規劃階段。

中期:

直線式開發風格的前期通常為從需求到初期架構完成階段。迭代式開發風格的中期指的是專案前2~4個迭代。中期的重點是已可取得一些關於專案生產率的數值。

後期:

無論是直線式或迭代式,後期都是指軟體建構中期到最終發布的範圍。


可能的準確度

估算技術的準確度會受3個因素影響,首先是技術本身提供的功能,第二為技術是否應用在合適的情境,第三是技術適用的專案階段。

當然,通常會期望使用最準確的估算技術,但準確度和成本為正比,高準確度的估算勢必付出較高的代價。另一個要注意的準確度會受不確定錐形的影響,考量成本的情況下在可變性低的範圍使用低成本的估算技術也是可以接受的。


總結

選擇估算技術的考慮因素有3個,分別為專案規模,開發階段,開發風格。

最好根據規模,階段,風格選擇不同的估算技術。若有成本的顧慮,就必須考慮可能的準確度和所付出的成本是否合適。