監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價咨詢管理系統(tǒng) | 工程設計管理系統(tǒng) | 甲方項目管理系統(tǒng) | 簽約案例 | 客戶案例 | 在線試用
X 關(guān)閉

如何估算開發(fā)進度

申請免費試用、咨詢電話:400-8352-114

我所在的團隊有六個開發(fā)人員,兩個測試人員.我們的過程還不成熟,基本上處于初級階段,需要不斷的改進.一個新的版本開始了,開發(fā)計劃的制定是首先遇到的問題.

計劃始終依賴于需求和人員,涵蓋的內(nèi)容包括幾個重要的里程碑:需求分析,設計與實現(xiàn),測試.只要把這三個階段的時間估算出來,基本上這個版本的計劃就會更容易制定.人員是相對固定的,而需求是相對變化的,我們第一步就是要確定需求.通常我們和市場人員一起討論優(yōu)先級相對比較高的需求,這部分工作會在新版本開始之前就做好.接下來就是評估每個需求需要的時間.如何估算每個需求的開發(fā)時間是個大難題.XP提供的方法是把每項任務都分配一個點數(shù),不確定一個點需要多長時間,只確定兩個點需要的時間是一個點的兩倍.基于目前我們的開發(fā)人員的整體能力和過程,這一點暫時還做不到,我們就做了一點變通,由我來判斷大概一個需求需要的點數(shù).如果沒法判斷,說明我對細節(jié)的了解還不夠,那就把需求再細化,分成若干個任務,不是盡可能地細,而是盡可能地粗粒度.這樣我就可以花最少的時間達到我的目的.

然后再對每項任務分配點數(shù).現(xiàn)在,我的任務就是怎么樣去分配點數(shù)了.通常每個任務都分表現(xiàn)層,業(yè)務層和持久層,根據(jù)任務的復雜度來安排點數(shù),復雜度包括代碼行數(shù),業(yè)務的復雜度,功能點等,主要還是根據(jù)經(jīng)驗判斷.

把每個需求的點數(shù)分配完后,再引開發(fā)人員的估算.有六個開發(fā)人員,每個人完成一個點的的時間各不一樣.我只能先選擇一個需求,根據(jù)過去我們開發(fā)類似功能經(jīng)驗估算能力最高的人需要N小時,能力最低的人需要多久M小時.再通常整體開發(fā)能力的分布情況稍微調(diào)整一下N+M/2.那么我們完成所有需求的時間大概就估算出來了.當然這只是計劃,我們還需要在開發(fā)的各個階段做出適當?shù)恼{(diào)整.

如果完成所有需求的周期過長,一般來講我們每個版本的開發(fā)周期都不應該超過一個月,那么就要把一些需求移一下個版本,相應地,這些需求的優(yōu)先級會再升一級.

接下來是估算測試的時間.相關(guān)的測試人員領(lǐng)取自己要測試的需求,根據(jù)需求的分析文檔來估算大概的測試的時間,這一部分不會有太大的出入,估得都會比較準.如果需求發(fā)生變化,根據(jù)情況調(diào)整測試時間.

現(xiàn)在三個階段的時間都估算完了,接著就是增加緩沖時間,我們通常以開發(fā)時間的30%做為緩沖時間,這部分時間會被一些額外的工作,如比較緊急的產(chǎn)品bug或者突然生病之類的意外所占用.當然,30%是不確定的,要根據(jù)過去幾個版本的歷史數(shù)據(jù)積累來做出適當?shù)呐袛?

此外還有一點是比較有趣的,算是意外的收獲.當分配完每個需求的點數(shù)之后, 任務就被細化,那么任務的安排就會變得更靈活.同時,每個開發(fā)人員開發(fā)的點數(shù)就會被做為歷史數(shù)據(jù),如果你上一版本(兩周的開發(fā)時間)開發(fā)了六個點數(shù)據(jù)的任務,那么這個版本(同樣是兩周)你就不可能離六個點數(shù)太遠.同樣的情況適用于整個團隊,這樣我只需要估算每個需求的的點數(shù),而不用發(fā)愁到底我的團隊在這個版本中可以開發(fā)多少需求,或是這么多需求我不知道要開發(fā)多久.實際上有點解耦的味道在里面,把需求和開發(fā)人員變化隔離開了.

XP有許多的概念和最佳實踐,但真正要找到適合我們的最佳實踐, 還有很長一段路要走.

發(fā)布:2007-04-01 15:05    編輯:泛普軟件 · xiaona    [打印此頁]    [關(guān)閉]