在項(xiàng)目管理過程中,工作量的估算是一個重要的環(huán)節(jié),直接關(guān)系到項(xiàng)目的成功與失敗。工作量的估算方法有很多,如經(jīng)驗(yàn)估算法,工作分解法,還有就是數(shù)學(xué)模型法等等,但在我們實(shí)際的項(xiàng)目管理過程中,許多著名的估算方法使用起來并不那么靈活、方便,并不一定適合于我們的實(shí)際項(xiàng)目。
在實(shí)際情況中,項(xiàng)目不但耗時長,而且成功率也很低,其中一個很重要的原因是對于需求的工作量評估沒有一個具體的依據(jù),很多時候都是想當(dāng)然的估算一個數(shù)字,當(dāng)項(xiàng)目開發(fā)過程中來自于需求變更后對新需求的工作量估計(jì)不足導(dǎo)致產(chǎn)生連鎖反應(yīng),最后失去對項(xiàng)目的控制。很多項(xiàng)目經(jīng)理對于項(xiàng)目評估、管理、控制的能力基本上是來自于項(xiàng)目經(jīng)理本身的從業(yè)經(jīng)驗(yàn),由于各種各樣的原因,項(xiàng)目經(jīng)理更多的是一個全才,這是在當(dāng)前環(huán)境下,保證項(xiàng)目還能正常運(yùn)行的必然結(jié)果。
本文的目的在于提出一種對項(xiàng)目總體工作量估算的模型,用于項(xiàng)目經(jīng)理在面對原始合同進(jìn)行概要設(shè)計(jì),項(xiàng)目進(jìn)行過程中面對需求變更時計(jì)算工作量的一種參考依據(jù)。這個模型的目的是要有效的減少工作量,這并不意味著會少做事,而是希望引導(dǎo)多做正確的事情。特別是這個模型也能為提高工作效率指明方向。
要設(shè)計(jì)一個模型,首先要對日常工作進(jìn)行全面的分析,抽象出工作的每一個步驟,對每個步驟中所需要用到的知識進(jìn)行歸納,還需要對每個步驟中的復(fù)雜度進(jìn)行評估。在一個項(xiàng)目的開發(fā)過程中,在面對一個業(yè)務(wù)功能時首先做的是從需求中設(shè)計(jì)表結(jié)構(gòu),然后為表結(jié)構(gòu)定義各種各樣的關(guān)聯(lián),定義完關(guān)聯(lián)后基本上在大腦內(nèi)形成界面的大致樣子,然后就開始寫代碼。從上面的過程中,大致可以分成下面的兩個步驟:
1. 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)階段
2. 根據(jù)數(shù)據(jù)結(jié)構(gòu)編寫代碼階段
接下來分析下每個步驟所用到的知識。
1. 在數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)階段所使用的知識分為以下幾個部分
1) 數(shù)據(jù)庫設(shè)計(jì)知識
2) 業(yè)務(wù)知識
2. 在根據(jù)數(shù)據(jù)結(jié)構(gòu)編寫代碼階段所使用的知識分為以下幾個部分
1) 數(shù)據(jù)庫操作知識
2) 后臺編程語言知識
3) 前臺編程語言知識
4) 業(yè)務(wù)知識
通過以上的分析可以看到,在第一個階段所需知識單一,更多的源自于經(jīng)驗(yàn)。由于所使用知識比少,當(dāng)需求產(chǎn)生變化時,為變化所花費(fèi)的時間也比較少。因此可以得出一個簡單的結(jié)論,當(dāng)某一個步驟所需知識比較單一時,對該步驟的變更和編碼所需時間都比較少。
那么可以看到在第二個階段,所用知識復(fù)雜,所以必須要對第二階段進(jìn)行細(xì)分。
在第二階段,通常的做法是,根據(jù)業(yè)務(wù)功能,首先編寫關(guān)于這個業(yè)務(wù)表的增刪改的代碼,再根據(jù)表之間的關(guān)系寫出數(shù)據(jù)關(guān)系代碼,最后根據(jù)設(shè)計(jì)的界面樣式,編寫界面代碼。在這個階段也分成以下幾個步驟:
1. 編寫單表的維護(hù)代碼
2. 編寫該表與其他表的業(yè)務(wù)關(guān)系代碼
3. 編寫界面代碼
同樣的,再來分析下每個步驟所使用的知識:
1. 在編寫單表的維護(hù)代碼所使用的知識分為以下幾個部分
1) 數(shù)據(jù)庫單表操作知識
2) 后臺編程語言知識,僅需要知道如何操作數(shù)據(jù)庫
3) 業(yè)務(wù)知識
2. 在編寫該表與其他表的業(yè)務(wù)關(guān)系代碼所使用的知識分為以下幾個部分
1) 數(shù)據(jù)庫多表查詢知識
2) 后臺編程語言,這里是根據(jù)業(yè)務(wù)的復(fù)雜度來決定所使用的知識范圍。
3) 業(yè)務(wù)知識
3. 在編寫界面代碼所使用的知識分為以下幾個部分
1) html知識2) java