一個系統有多大?
這真是個好問題,我也經常被問到或被要求評估一個系統、專案、程式的規模有多大。
但要如何評估一個系統的大小呢?看檔案數量?看檔案體積?看程式碼行數?
這篇文章說明了他們使用的方法,但我覺得並不是很精準,但也可能是因為他們是在fuseaction framework的架構下決定用那些條件去計算。
通常我的計算方式是看 screen 數量,其次是看 dao 與 backend service的 public method。
screen數量指的是一個程式用到的畫面有多少,例如 login 算一個 screen, forget password 算一個screen,而主要操作畫面裏每個 tab 下面的mxml component也算一個獨立的 screen,從這樣的單位來計算有兩個好處:
1、可以明確的知道工作範圍,而且是一個可以量化的單位,例如這個案子有四十個screen,就大概可以估出要多少時間才能寫完。
2、可以借此抓出大概的預算,因為知道screen 與 dao 數量後,大概就可以知道整個專案要寫的程式有多少,需要幾個人分工,每個人可能要多少時間,把這些單位加加減減再乘上一個權數與安全系數,就可以得出報價了。
至於 dao指的是前端存取後端的 methods 與後端 app server / beans 裏面提供的服務,這部份通常很routine 重覆性也很高,但如果遇到一個沒寫過的功能,就會特別小心,要把安全時間拉長預算也提高。
因此通常被問到「專案有多大」這個問題時,我給的答案都是類似:50個screen、4個人、二兩個月之類的數字,這個方法經過這兩年的不斷失誤與修正後,現在準確度大概有75%左右
你有什麼特別的估算方法嗎?
by admin


Trackback this post | Subscribe to the comments via RSS Feed