軟體規模(Size)估算單位-Function Points與Story Points超級比一比

抉擇在需求與平衡

軟體開發的成本如何計算?怎樣的人力與時程安排才合理?這是大部份組織都關心的問題。功能點分析方法自1970年代開始發展,目前已經成為ISO標準,軟體業界的基準(Benchmarking)資料,例如生產力、錯誤密度等度量,普遍地以功能點為基礎計算。要與國際接軌,使用功能點似乎是一個必要的選擇。然而對於敏捷式開發方法,故事點是普遍採用的規模計算單位,主要的原因是”簡單”。

依據研究資料,訓練過的功能點分析估算人員,他們間的估算誤差可以落在10%左右。能夠得到這樣的精確度,可想而知功能點的估算方法必定要很嚴謹,才能避免主觀認知的誤差。嚴謹代表著計算難度高,有一定的門檻;反觀故事點的計算方法或許不在意精準度有多高,只要能累積每個反覆(Iteration)或衝刺(Sprint)的經驗,加上固定的團隊成員,估算的準度是可以有效提升的。

以下為兩種典型方法的比較。你要選擇哪一種方法?就要衡量得失,看看自己的需求是什麼。當然,兩種方法都使用,相互比較結果,也是符合估算的原理的。

思辨顧問的軟體專案估算實作研習課程會介紹這兩種估算方法,請參考課程說明

Function Points 與 Story Points 比較
Function Points 與 Story Points 比較
特性 Function Points (功能點) Story Points (故事點)
在專案層級的估算與規劃是否有用(Useful) 具備歷史FP資料時 具備歷史SP資料時
ISO/標準 ISO 20926
擷取客戶觀點 預期的(Expected) 絕對的(Definitely)
與公司外的基準比較(Benchmarking) 可能 較不可能
容易計算 較不容易 容易
容易驗證重現性與一致性 較可能 較不可能
客觀性 較客觀 較不客觀(團隊/團隊成員存在易變性)
獨立於所使用的開發技術 可能
對客戶的功能性度量(Functional Measurement) 不全然[可能包含重構(refactoring)、設計、與其它工作]

Joe Schofield, Size – The Forgotten Measure; SEPG North America; Albuquerque, N. M.; March 15, 2012