摘要:隨著IT產(chǎn)業(yè)的發(fā)展,國內(nèi)軟件項(xiàng)目越來越貼近客戶的現(xiàn)實(shí)需求,項(xiàng)目工程涉及多方面的集成,包括網(wǎng)絡(luò)、硬件、軟件平臺(tái)、行業(yè)軟件等的集成越來越緊密,軟件開發(fā)細(xì)節(jié)上涉及專業(yè)軟件包的整合。同時(shí)客戶對(duì)定制化的需求及工期的需求也越來越高。
作為項(xiàng)目經(jīng)理,如何在滿足客戶需求,并在人力資源不足(員工成熟度不夠、隊(duì)伍不穩(wěn)定、工程師工作積極性不高)、工期緊的情況下,有效的制定和執(zhí)行項(xiàng)目計(jì)劃,是項(xiàng)目經(jīng)理一個(gè)重要的能力,而要完成這一進(jìn)度人員的組織非常重要。
本文作者通過項(xiàng)目經(jīng)理培訓(xùn),并結(jié)合多年軟件行業(yè)從業(yè)之經(jīng)驗(yàn),來研究和探討項(xiàng)目執(zhí)行過程中任務(wù)的分解和執(zhí)行中人員組織方面的思路,希望與正從事軟件項(xiàng)目管理的同行分享與共勉,力圖對(duì)后續(xù)的工作提供一些指導(dǎo)。
一個(gè)軟件項(xiàng)目必須滿足:目標(biāo)、時(shí)間進(jìn)度和預(yù)算的要求。要完成這個(gè)項(xiàng)目而建立的軟件開發(fā)組織是一個(gè)復(fù)雜系統(tǒng)。表面上看起來目標(biāo)、時(shí)間進(jìn)度和預(yù)算,三者好像沒有任何一個(gè)單獨(dú)的問題會(huì)導(dǎo)致困難,每個(gè)都能被解決,但是當(dāng)它們相互糾纏和累積在一起的時(shí)候,特別是在實(shí)際工作中團(tuán)隊(duì)的行動(dòng)會(huì)變得越來越慢,往往可能導(dǎo)致項(xiàng)目進(jìn)度的不可控制,使成本上升,甚至導(dǎo)致項(xiàng)目的失敗。
在項(xiàng)目經(jīng)理培訓(xùn)中,涉及的內(nèi)容很廣泛。本文試圖僅僅從項(xiàng)目的任務(wù)分解和執(zhí)行中人員的組織來進(jìn)行一些討論。主要有下面幾個(gè)方面來談我的理解。
1. 問題的提出:項(xiàng)目的進(jìn)度度量
1.1進(jìn)度不可控的原因
在實(shí)際的項(xiàng)目執(zhí)行過程中 ,缺乏合理的時(shí)間進(jìn)度是造成項(xiàng)目滯后的主要原因,原因是什么呢?
首先,對(duì)估算技術(shù)缺乏有效的研究,很多項(xiàng)目經(jīng)理對(duì)項(xiàng)目進(jìn)度過分樂觀的估計(jì),它反映了不真實(shí)的假設(shè)——一切都將運(yùn)作良好。
第二,采用的估算技術(shù)隱含地假設(shè)人力和工作量可以互換,錯(cuò)誤地將進(jìn)度與工作量相互混淆。
第三,對(duì)自己的估算缺乏信心,軟件經(jīng)理通常不會(huì)有耐心持續(xù)地進(jìn)行估算這項(xiàng)工作。
第四,對(duì)進(jìn)度缺少跟蹤和監(jiān)督。跟蹤技術(shù)和常規(guī)監(jiān)督程序。
第五,當(dāng)意識(shí)到進(jìn)度的偏移時(shí),下意識(shí)的反應(yīng)是增加人力。只會(huì)使事情更糟。
對(duì)于創(chuàng)造者,只有在實(shí)現(xiàn)的過程中,才能發(fā)現(xiàn)我們構(gòu)思的不完整性和不一致性。在估計(jì)和進(jìn)度安排中,某個(gè)任務(wù)可以分解給參與人員,他們之間需要相互的交流。子任務(wù)之間需要相互溝通和交流的任務(wù),必須在計(jì)劃工作中考慮溝通的工作量。
溝通所增加的負(fù)擔(dān)由兩個(gè)部分組成,培訓(xùn)和相互的交流。每個(gè)成員需要進(jìn)行技術(shù)、項(xiàng)目目標(biāo)以及總體策略上的培訓(xùn)。因此工作量隨人員的數(shù)量呈線性變化:按照n(n-1)/2遞增。
1.2進(jìn)度的經(jīng)驗(yàn)性安排
項(xiàng)目進(jìn)度和工作量的不同:工作量只是子任務(wù)的數(shù)量的簡單分解。項(xiàng)目進(jìn)度依賴于順序上的限制,以及資源制約、培訓(xùn)時(shí)間、管理成本等。
這里有一個(gè)基于經(jīng)驗(yàn)的時(shí)間安排尺度。假設(shè)以一個(gè)項(xiàng)目的總體執(zhí)行項(xiàng)目周期為1。對(duì)于軟件任務(wù)的進(jìn)度安排的經(jīng)驗(yàn)法則:
1/3計(jì)劃
1/6編碼
1/4構(gòu)件測試和早期系統(tǒng)測試
1/4系統(tǒng)測試,所有的構(gòu)件已完成
除了系統(tǒng)測試,進(jìn)度基本能保證。不為系統(tǒng)測試安排足夠的時(shí)間簡直是一場災(zāi)難。因?yàn)檠舆t發(fā)生在項(xiàng)目快完成的時(shí)候,問題才出現(xiàn)在客戶和項(xiàng)目經(jīng)理面前。延誤發(fā)布,將付出相當(dāng)高的商業(yè)代價(jià)。上述的二次成本遠(yuǎn)遠(yuǎn)高于其他開銷。
因此,在早期進(jìn)度策劃時(shí),允許充分的系統(tǒng)測試時(shí)間是非常重要的。開發(fā)并推行生產(chǎn)率圖表、缺陷率、估算規(guī)則等等,而整個(gè)組織終會(huì)從這些數(shù)據(jù)的共享上獲益。項(xiàng)目經(jīng)理需要挺直腰桿,堅(jiān)持他們的估計(jì)。
當(dāng)一個(gè)軟件項(xiàng)目落后于進(jìn)度時(shí),加派人手可能產(chǎn)生的進(jìn)度災(zāi)難。
要及時(shí)聘請(qǐng)到多么能干的新員工;
新員工需要接受培訓(xùn)。有經(jīng)驗(yàn)的職員將投入到原有進(jìn)度安排以外的工作中;
原先劃分為三個(gè)部分的工作,會(huì)重新分解成五個(gè)部分;
更多的交流成本、管理的工作;
某些已經(jīng)完成的工作必定會(huì)丟失,系統(tǒng)測試必須被延長。
2. 團(tuán)隊(duì)的組織
大型項(xiàng)目的每一個(gè)部分由一個(gè)團(tuán)隊(duì)解決,而并非一擁而上。由一個(gè)人來進(jìn)行問題的分解,其他人給予他所需要的支持,以提高效率和生產(chǎn)力。
2.1協(xié)作成本
需要協(xié)作溝通的人員的數(shù)量影響著開發(fā)成本,因?yàn)槌杀镜闹饕M成部分是相互的溝通和交流,以及更正溝通不當(dāng)所引起的不良結(jié)果。所以并不是人越多越好,系統(tǒng)應(yīng)該由盡可能少的人員來開發(fā)。
2.2成員差異
程序員好的和差的表現(xiàn)在生產(chǎn)率上平均為10:1;在運(yùn)行速度和空間上具有5:1的驚人差異。