Bob先生是A公司中國地區的負責人,Henry則是剛剛加入A公司的負責此外包項目的項目經理。東方公司是由William負責開發和管理工作,William本身是技術人員,并沒有項目管理的經驗。
當Henry接手這項工作后,發現東方公司的項目開發成本非常高,每人每天130美金,但客戶的滿意度較差,并且每次開發進度都要拖后,交付使用的版本也不盡如人意。而且,東方公司和A公司硅谷開發總部缺乏必要的溝通,只能把問題反饋給Henry,由Henry再反饋給總部。但由于Henry本身并不熟悉這個軟件的開發工作,也造成了很多不必要的麻煩。
為此,Bob希望Henry和William用項目管理的方法對該項目進行管理和改進。隨后,Henry和William召開了一系列的會議,提出了新的做法。
首先,他們制定了詳細的項目計劃和進度計劃;其次,成立了單獨的測試小組,將軟件的開發和測試分開;并且,在硅谷和東方公司之間建立了一個新的溝通渠道,一些軟件問題可以與總部直接溝通;同時,還采用了里程碑管理。
六個月后,軟件交付使用。但是客戶對這個版本還是不滿意,認為還有很多問題。為什么運用了項目管理的方法,這個項目還是沒有得到改善?
Henry和William又進行了反復探討,發現主要有三個方面問題:1、軟件本地化產生的問題并不多,但A公司提供的底層軟件本身存在一些問題;2、軟件的界面也存在一些問題,這是由于測試的項目不夠詳細引起的;3、開發的周期還是太短,沒有時間完成一些項目的調試,所以新版本還是有許多的問題。
此時,Henry向Bob提出是否采用公開招標的方式,選擇新的、實力更強的合作伙伴。但Bob認為,與東方公司合作時間已經很長了,如果選擇新的伙伴又需要較長的適應期,而且成本可能會更高。于是,Henry向東方公司提出一些新的管理建議。首先,他們采用大量的歷史數據進行分析,制定出更詳細的進度計劃;其次,要求東方公司提供詳細的開發文檔和測試文檔(之前William的團隊做的工作沒有任何文檔,給其他工作帶來了很多困難);第三,重新審核開發周期,對里程碑進行細化。
又過了六個月,新的版本完成了。這一次,客戶對它的評價比前兩個版本高得多,基本上達到項目運行的要求。但客戶還是對項目進度提出了疑問,認為實時推出換代產品不需要那么長的時間。
軟件外包是現在軟件工程中較常見的做法。在軟件外包工程中,保證質量的進度是很難控制的。對于項目經理來說需要一整套復雜的能力,比如制定計劃、確定優先順序、干系人的溝通、評價等,每一種能力都與項目的最終結果有直接或者間接的關系。
然而,國內的項目經理大多沒有接受過正規訓練,缺乏項目管理方面的專業知識的技巧,往往只是憑借以前的少量經驗盲目去做,容易出現各種問題。尤其是在管理外包項目時,缺乏足夠的經驗和技巧,往往造成進度不斷推遲,而質量無法保證的情況。
前文是一個比較典型的軟件外包項目的案例。在這個案例中,我們可以看到現在IT業內許多外包項目的影子。
在該案例中,東方公司沒有專門的項目經理,是由技術人員William兼做管理。這是國內軟件公司經常會出現的問題。最初,出現進度落后的問題時,A公司的Henry與東方公司的William討論后決定采用項目管理中計劃管理等手段,其中包括里程碑管理。這是控制進度的較常見做法。
里程碑管理的引入一般來說,在項目開始時,項目組成員都會對項目制定一個詳細的計劃。通常情況下,在明確的工作說明書(SOW)和WBS的基礎上制定具體的進度計劃時,需要采用一些具體的技術。像這種軟件外包項目,最成熟的技術是里程碑管理。
里程碑一般是項目中完成階段性工作的標志。不同類型的項目,里程碑也不同。比如,在開發項目中,可以將需求的最終確認、產品移交等關鍵任務作為項目的里程碑。本案例中,Henry在接手項目后采用里程碑進行管理是很恰當的。
不過,要注意的是,每到一個里程碑處,應及時對前段工作進行小結,并對后續工作進行計劃調整。對于一些管理效果明顯的領域,可以不必投入較多精力。而對于下一步管理過程中可能會出現問題的領域,應給予較多的關注。當然,在軟件項目里,進度的變化是較常見的事情。
在本案例中,采用里程碑管理后仍沒有達到客戶的要求,進度依然拖后。在這里,就需要考慮另一個因素—質量與進度的關系。
質量與進度關系通常,項目管理的前提是保證在預算內、滿足質量的前提下,按進度完成項目。因此,可以看到,保證質量是前提。那么,如何在滿足質量的前提下管理進度呢?單純從項目管理理論知識中并沒有一種有效的方式。筆者通過實踐,推薦一種較實用的方法。具體步驟為:首先,盡量利用歷史數據。在本案例中,Henry應該調查之前的項目情況,將會發現可以類比的情況,事先就可以知道需要管理質量和進度的關系。
其次,由于此項目是軟件外包項目,Henry不能完全掌握項目的資源調度情況,因此缺乏對質量的控制。這也是大多數外包工程中最令人難以掌握的地方。在這里,可以采用對進度管理計劃添加質量參數的方法,也就是通過參數調整進度和質量的關系。
這一做法的前提是要有一定的歷史數據。比如,從歷史數據中得知,完成子項目的時間是5天,測試后有15個問題;完成同樣子項目的時間是7天,測試后有10個問題;完成同樣子項目的時間是8天,測試后有5個問題,……以此類推。
隨著數據的不斷增多的,采用兩維坐標圖,就會得到一些離散的點(不考慮資源的差異),并形成一條曲線,見圖1.考慮項目允許的質量范圍,對照圖中的數據,找出相應的參數。根據得到的參數,確定一個合適的進度計劃。
進度與成本的關系在本案例中,Henry發現東方公司進度一直拖后,成本卻居高不下。這里就需要了解軟件外包項目中進度與成本的關系。很多時候,此類工程大多采用固定總價合同。但由于軟件項目的修改比較多,實際上此類合同很像是固定總價加獎勵費用,其中獎勵費用一般會采用單價合同,即若干元/人天的合同,也就是說,承包商的成本是建立在人力成本估算上的。這樣,一些承包商會傾向于拖延進度(或者減少實際投入,造成質量下降)。因此,項目經理需要了解整個合同的情況,最好參與合同的制定。在此案例中,Henry試圖通過引入競爭來提高整個項目的效率,滿足項目目標,也是出于同樣的原因。尤其值得注意的是,有時候,出于競爭的需要,承包商會提供低廉的價格,此時對于進度管理更應該謹慎和完善。
還要指出的一點是,要對學習曲線有深刻地認識。在軟件開發工程中,學習曲線(learning curve)有很大的用途。通常情況,承包商在接到同樣類型的軟件項目后,第二次會比第一次節省15%-20%的時間。項目經理最好要了解一下以前類似項目的情況。
文章來源于領測軟件測試網 http://www.kjueaiud.com/