您的位置:軟件測(cè)試 > 軟件項(xiàng)目管理 > 進(jìn)度管理 >
IT項(xiàng)目管理中的工作量估算
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/10/22 9:15:32 ] 推薦標(biāo)簽:

  很多項(xiàng)目經(jīng)理對(duì)于項(xiàng)目評(píng)估、管理、控制的能力基本上是來(lái)自于項(xiàng)目經(jīng)理本身的從業(yè)經(jīng)驗(yàn),由于各種各樣的原因,項(xiàng)目經(jīng)理更多的是一個(gè)全才,這是在當(dāng)前環(huán)境下,保證項(xiàng)目還能正常運(yùn)行的必然結(jié)果。在實(shí)際情況中,項(xiàng)目不但耗時(shí)長(zhǎng),而且成功率也很低,其中一個(gè)很重要的原因是對(duì)于需求的工作量評(píng)估沒(méi)有一個(gè)具體的依據(jù),很多時(shí)候都是想當(dāng)然的估算一個(gè)數(shù)字,當(dāng)項(xiàng)目開(kāi)發(fā)過(guò)程中來(lái)自于需求變更后對(duì)新需求的工作量估計(jì)不足導(dǎo)致產(chǎn)生連鎖反應(yīng),后失去對(duì)項(xiàng)目的控制。

  本文的目的在于提出一種對(duì)項(xiàng)目總體工作量估算的模型,用于項(xiàng)目經(jīng)理在面對(duì)原始合同進(jìn)行概要設(shè)計(jì),項(xiàng)目進(jìn)行過(guò)程中面對(duì)需求變更時(shí)計(jì)算工作量的一種參考依據(jù)。這個(gè)模型的目的是要有效的減少工作量,這并不意味著會(huì)少做事,而是希望引導(dǎo)多做正確的事情。特別是這個(gè)模型也能為提高工作效率指明方向。

  要設(shè)計(jì)一個(gè)模型,首先要對(duì)日常工作進(jìn)行全面的分析,抽象出工作的每一個(gè)步驟,對(duì)每個(gè)步驟中所需要用到的知識(shí)進(jìn)行歸納,還需要對(duì)每個(gè)步驟中的復(fù)雜度進(jìn)行評(píng)估。

  在一個(gè)項(xiàng)目的開(kāi)發(fā)過(guò)程中,在面對(duì)一個(gè)業(yè)務(wù)功能時(shí)首先做的是從需求中設(shè)計(jì)表結(jié)構(gòu),然后為表結(jié)構(gòu)定義各種各樣的關(guān)聯(lián),定義完關(guān)聯(lián)后基本上在大腦內(nèi)形成界面的大致樣子,然后開(kāi)始寫(xiě)代碼。

從上面的過(guò)程中,大致可以分成下面的兩個(gè)步驟:
1. 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)階段

2. 根據(jù)數(shù)據(jù)結(jié)構(gòu)編寫(xiě)代碼階段

接下來(lái)分析下每個(gè)步驟所用到的知識(shí)。

1. 在數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)階段所使用的知識(shí)分為以下幾個(gè)部分

1) 數(shù)據(jù)庫(kù)設(shè)計(jì)知識(shí)

2) 業(yè)務(wù)知識(shí)

2. 在根據(jù)數(shù)據(jù)結(jié)構(gòu)編寫(xiě)代碼階段所使用的知識(shí)分為以下幾個(gè)部分

1) 數(shù)據(jù)庫(kù)操作知識(shí)

2) 后臺(tái)編程語(yǔ)言知識(shí)

3) 前臺(tái)編程語(yǔ)言知識(shí)

4) 業(yè)務(wù)知識(shí)

  通過(guò)以上的分析可以看到,在第一個(gè)階段所需知識(shí)單一,更多的源自于經(jīng)驗(yàn)。由于所使用知識(shí)比少,當(dāng)需求產(chǎn)生變化時(shí),為變化所花費(fèi)的時(shí)間也比較少。因此可以得出一個(gè)簡(jiǎn)單的結(jié)論,當(dāng)某一個(gè)步驟所需知識(shí)比較單一時(shí),對(duì)該步驟的變更和編碼所需時(shí)間都比較少。

  那么可以看到在第二個(gè)階段,所用知識(shí)復(fù)雜,所以必須要對(duì)第二階段進(jìn)行細(xì)分

  在第二階段,通常的做法是,根據(jù)業(yè)務(wù)功能,首先編寫(xiě)關(guān)于這個(gè)業(yè)務(wù)表的增刪改的代碼,再根據(jù)表之間的關(guān)系寫(xiě)出數(shù)據(jù)關(guān)系代碼,后根據(jù)設(shè)計(jì)的界面樣式,編寫(xiě)界面代碼

在這個(gè)階段也分成以下幾個(gè)步驟

1. 編寫(xiě)單表的維護(hù)代碼

2. 編寫(xiě)該表與其他表的業(yè)務(wù)關(guān)系代碼

3. 編寫(xiě)界面代碼

同樣的,再來(lái)分析下每個(gè)步驟所使用的知識(shí)

1. 在編寫(xiě)單表的維護(hù)代碼所使用的知識(shí)分為以下幾個(gè)部分

1) 數(shù)據(jù)庫(kù)單表操作知識(shí)

2) 后臺(tái)編程語(yǔ)言知識(shí),僅需要知道如何操作數(shù)據(jù)庫(kù)

3) 業(yè)務(wù)知識(shí)

2. 在編寫(xiě)該表與其他表的業(yè)務(wù)關(guān)系代碼所使用的知識(shí)分為以下幾個(gè)部分

1) 數(shù)據(jù)庫(kù)多表查詢知識(shí)

2) 后臺(tái)編程語(yǔ)言,這里是根據(jù)業(yè)務(wù)的復(fù)雜度來(lái)決定所使用的知識(shí)范圍。

3) 業(yè)務(wù)知識(shí)

3。在編寫(xiě)界面代碼所使用的知識(shí)分為以下幾個(gè)部分

1) html知識(shí)

2) javascript知識(shí)

3) css知識(shí)

4) 后臺(tái)編程語(yǔ)言,僅使用到與前臺(tái)界面編寫(xiě)相關(guān)的部分知識(shí)。

5) 業(yè)務(wù)知識(shí)

  通過(guò)以上分析可以看到,在編寫(xiě)單表的維護(hù)代碼階段是使用知識(shí)少的一個(gè)步驟,同樣的當(dāng)業(yè)務(wù)產(chǎn)生變更時(shí),為該處的變化所用的編碼時(shí)間也比較少,而變化所花費(fèi)的時(shí)間與表結(jié)構(gòu)的調(diào)整所花費(fèi)的時(shí)間是正比關(guān)系。這個(gè)關(guān)系將在復(fù)雜度分析時(shí)進(jìn)一步說(shuō)明。接下來(lái)看編寫(xiě)該表與其他表的業(yè)務(wù)關(guān)系代碼和編寫(xiě)界面代碼部分,這個(gè)2個(gè)階段所使用的知識(shí)繁多,并且涉及的知識(shí)面也很廣,是項(xiàng)目中花費(fèi)時(shí)間多的地方。但是在實(shí)際項(xiàng)目開(kāi)發(fā)中并沒(méi)有再對(duì)這兩個(gè)步驟進(jìn)行更細(xì)的分解的過(guò)程。

  現(xiàn)在可以得出一個(gè)這樣的結(jié)論,工作量是與所使用的知識(shí)相關(guān)的。一個(gè)業(yè)務(wù)所使用的知識(shí)點(diǎn)越少,所涵蓋的知識(shí)面越少,那么所耗費(fèi)的工作量也會(huì)越少。由此,當(dāng)需要提高工作效率時(shí),盡量少的使用知識(shí)是一種有效的手段。但是在實(shí)際情況中,并不能有效的減少知識(shí)使用種類(lèi),只能在使用知識(shí)的熟練度上下工夫,一個(gè)開(kāi)發(fā)者所掌握的知識(shí)熟練度越高,那么相對(duì)的工作量也會(huì)越少,一個(gè)知識(shí)點(diǎn)的入門(mén)門(mén)檻越低,那么工作量也會(huì)越少。因此,設(shè)置工作量為G,知識(shí)點(diǎn)入門(mén)門(mén)檻為B,B1為交給新手人員開(kāi)發(fā)的知識(shí)點(diǎn),知識(shí)點(diǎn)總數(shù)為C,P1為高級(jí)開(kāi)發(fā)人數(shù)的,P2為新手人數(shù),那么G = ( C - B )/P1 + ( B - B1 ) / P1 + B1 / P2 。

  對(duì)知識(shí)點(diǎn)分析完后,再對(duì)業(yè)務(wù)的復(fù)雜度進(jìn)行分析,知識(shí)點(diǎn)的應(yīng)用可以看作是開(kāi)發(fā)中的橫切方向的話,那業(yè)務(wù)的復(fù)雜度是開(kāi)發(fā)中的縱切方向,業(yè)務(wù)的復(fù)雜度貫穿了所有的開(kāi)發(fā)步驟。

  在本文中,從數(shù)據(jù)的應(yīng)用著手,來(lái)分析業(yè)務(wù)的復(fù)雜度。

  在項(xiàng)目開(kāi)發(fā)中,經(jīng)常要遇到"類(lèi)型"這樣的業(yè)務(wù)點(diǎn),例如職務(wù)。對(duì)于這一類(lèi)業(yè)務(wù),其主要開(kāi)發(fā)時(shí)間花費(fèi)在"對(duì)于單表的增刪改查"上。另一種類(lèi)型的業(yè)務(wù),其復(fù)雜度高一點(diǎn),主要應(yīng)用于該表需要與另一個(gè)表進(jìn)行組合,然后產(chǎn)生一種"所屬"的關(guān)系,例如權(quán)限,角色等,其主要開(kāi)發(fā)時(shí)間花費(fèi)在"對(duì)于多個(gè)表的所屬關(guān)系的增刪改查"上。還有一種類(lèi)型的業(yè)務(wù),主要是將多個(gè)表的數(shù)據(jù)進(jìn)行組合轉(zhuǎn)換后輸出,例如報(bào)表,CMS的模板解析等,其主要開(kāi)發(fā)時(shí)間花費(fèi)在"對(duì)于多個(gè)表數(shù)據(jù)的監(jiān)測(cè)和重組上",后一種類(lèi)型的業(yè)務(wù),主要是為數(shù)據(jù)附加上狀態(tài),例如工作流等,其主要開(kāi)發(fā)時(shí)間花費(fèi)在"對(duì)于數(shù)據(jù)的不同狀態(tài)的處理上"。

  以上4點(diǎn)基本涵蓋了做項(xiàng)目時(shí)所面對(duì)的業(yè)務(wù)。接下來(lái),我們?yōu)檫@4種業(yè)務(wù)定一個(gè)權(quán)值

1.對(duì)于單表的增刪改查"權(quán)值為1

2.對(duì)于多個(gè)表的所屬關(guān)系的增刪改查"權(quán)值為4

3.對(duì)于多個(gè)表數(shù)據(jù)的監(jiān)測(cè)和重組上"權(quán)值為8

4.對(duì)于數(shù)據(jù)的不同狀態(tài)的處理上"權(quán)值為16

  這個(gè)權(quán)值的比值基本來(lái)自于數(shù)據(jù)的維度,1類(lèi)業(yè)務(wù)是單一緯度。2類(lèi)業(yè)務(wù)除了要處理多個(gè)1類(lèi)業(yè)務(wù)外,還需要處理多個(gè)1類(lèi)業(yè)務(wù)之間的關(guān)系。3類(lèi)業(yè)務(wù)除了要處理2類(lèi)業(yè)務(wù)中包含的,還需要對(duì)數(shù)據(jù)本身進(jìn)行轉(zhuǎn)換處理,4類(lèi)業(yè)務(wù)除了要處理3類(lèi)業(yè)務(wù)的,還需要處理數(shù)據(jù)的狀態(tài)。后一種業(yè)務(wù)要比前一種業(yè)務(wù)多處理一種邏輯結(jié)構(gòu)。

  根據(jù)這個(gè)權(quán)值,來(lái)看看在項(xiàng)目中經(jīng)常遇到的情況,以職務(wù)為例,開(kāi)始的需求是1類(lèi)業(yè)務(wù),這個(gè)時(shí)候客戶的需求變更可能如果制在1類(lèi)業(yè)務(wù)的需求范圍內(nèi),那么如果完成職務(wù)的業(yè)務(wù)開(kāi)發(fā)時(shí)間為1的話,那么修改的時(shí)間應(yīng)該在<=1的開(kāi)發(fā)時(shí)間內(nèi)。但是,這個(gè)時(shí)候客戶提出一種需求變更,他要求,職務(wù)是有從屬關(guān)系的,例如A部門(mén)有屬于A部門(mén)的職務(wù),B部門(mén)有屬于B部門(mén)的職務(wù),當(dāng)這類(lèi)需求出現(xiàn)時(shí),那么開(kāi)發(fā)完成的時(shí)間必須提高到4了,從這一種變化可以看出,當(dāng)需求變更在某一個(gè)級(jí)別的分類(lèi)業(yè)務(wù)內(nèi)進(jìn)行變化時(shí),其所完成的單位時(shí)間是與權(quán)值成正比關(guān)系。但是如果需求變更導(dǎo)致該業(yè)務(wù)的分類(lèi)級(jí)別被提升,那么修改所花費(fèi)的時(shí)間將直接提高到對(duì)應(yīng)業(yè)務(wù)分類(lèi)的權(quán)值所對(duì)應(yīng)的時(shí)間比。

  假設(shè)工作量為G,權(quán)值為D那么G=D(D=1,4,8,16)。再結(jié)合前面關(guān)于知識(shí)點(diǎn)的分析結(jié)果,G = D_*( ( C - B )/P1 + ( B - B1 ) / P1 + B1 / P2 ) ( D = 1 , 4 , 8 , 16 )

公式的完全說(shuō)明如下:

G = D_*( ( C - B )/P1 + ( B - B1 ) / P1 + B1 / P2 ) ( D = 1 , 4 , 8 , 16 )

G : 工作量

D : 業(yè)務(wù)復(fù)雜度( D = 1 , 4 , 8 , 16 )

C : 知識(shí)點(diǎn)總量

B : 入門(mén)知識(shí)點(diǎn)總量

B1 : 交給新手人員做的入門(mén)知識(shí)點(diǎn)總量

P1 : 高級(jí)開(kāi)發(fā)人員數(shù)量

P2 : 新手開(kāi)發(fā)人員數(shù)量

( C - B ) / P1 : 意思是只能由高級(jí)開(kāi)發(fā)人員做的事情

( B - B1 ) / P1 : 意思是由高級(jí)開(kāi)發(fā)人員做的只需要入門(mén)門(mén)檻知識(shí)能做的事情

B1 / P2 : 意思是由新手人員做的需要入門(mén)門(mén)檻知識(shí)做的事情

  從這個(gè)公式可以看出D值越小,C值越小,B值趨向于C值,B1值趨向于B值時(shí),工作量是小的。要想D值小,那么在做需求和需求變更時(shí)要引導(dǎo)客戶避免高權(quán)值的需求產(chǎn)生。要想C值小,讓開(kāi)發(fā)者只面對(duì)少量知識(shí)點(diǎn),是分層開(kāi)發(fā),每一層的知識(shí)點(diǎn)將足夠的小。要想B值趨向于C值,必須使用框架來(lái)進(jìn)行開(kāi)發(fā),要想B1趨向于B值,應(yīng)該避免讓僅需入門(mén)門(mén)檻知識(shí)能應(yīng)付的需求讓高級(jí)開(kāi)發(fā)人員來(lái)做。

  希望這個(gè)模型能為項(xiàng)目經(jīng)理在面對(duì)需求和需求變更時(shí)提供指導(dǎo)意義,使得在對(duì)工作量估算時(shí)有據(jù)可循。

軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd