星期四, 8月 14, 2014

Project Estmating

工作了一段時間,我發現自己經手處理的工作中,預估是占比例最高的。

為什麼要進行預估?
在專案開始的時候,高層長官總是會要我們算算看,這個專案必須要花多少成本。
但是,我們又沒有實際做過,該怎麼進行估算咧?

所以,我經歷了幾個案子,也逐漸地調整預估的模式。

1. 統一的估算模式
    當我剛開始進行專案估算的時候,我完全不知道該從何下手。因為,客戶總是說為什麼開發這些東西要花這麼久的時間。所以,我只能從公司其他人那邊得知,完成一個功能項目(新增,修改,刪除,查詢)等,大約是 4 個工作天。

    因為,客戶找我評估時,已經有列出他們期望做的功能清單。所以,我每個功能以5天計算。多點Buffer。不過,這樣估完,客戶總是覺得還是太貴 (實際上,我們真正執行的人天數約是這個估計的2倍左右)!


2. 歷史數據估算模式
    在帶著團隊成員,進行專案開發一陣子後,我逐漸熟悉他們開發的速度。也大概可以抓出,什麼樣的工作由誰來做,會花多久的時間。在此階段,我已經可以依據這些歷史數據做出較精確的評估,例如:一張小型報表程式的開發大約是1天。一張大型報表程式開發大約是3天。

    就這樣,我會一一把每個功能項目拉開,然後針對每個工作項進行估算,以計算專案所需的人力資源 (成本)。透過這樣的估算方式,會比較接近實際開發的數字,誤差大概在20%左右。

   不過,這樣估完後,專案談得下來的也少,因為客戶會覺得成本太高,所以往往弄到最後,該案子並沒有正常被簽下。

3. Planning Proker
    這是 Agile 方法論中用來估算的重要工具。它是利用專家(開發團隊)估算的模式,來協助估算。
理論上,這個估算的方式需要所有開發團隊參與。不過,實際上我很難在專案初期就讓這些人下來陪我玩這個估算遊戲。

    所以,採用非正規的方式,自己變成 Team 的代表。 用這個方式估算的好處是,我們大概是以相對的方式來進行需求(User Story)所需耗費時間的評估,速度也蠻快的。目前還不知道使用此方法,實際專案執行起來的落差有多少。因為還沒有一個結案的 XD!


寫了這麼多,我只是想說!各位看官客戶們,我真的很認真估算啊!
逐步精進我估算的方式,也都很實在,預算就不要再砍了!

既然都扯出預算了,下次就來談談合約的問題好了!t

沒有留言: