條分縷析探索外包開發(fā)的項(xiàng)目管理
黃紹良
項(xiàng)目外包有很多優(yōu)點(diǎn),但最主要的一點(diǎn)也許并不是為了降低開發(fā)成本,而是為了解決企業(yè)內(nèi)部人力資源的限制,使得企業(yè)不用招聘新員工就可以上馬大型項(xiàng)目。本文作者在項(xiàng)目管理方面有十多年的實(shí)踐經(jīng)驗(yàn),他將為我們舉例說(shuō)明曾經(jīng)面臨的困境,接著條分縷析找到原因并指出解決方法。(相關(guān)文章:如何進(jìn)行信息技術(shù)外包管理?)
一次失敗的經(jīng)歷
在亞洲四小龍經(jīng)濟(jì)全盛時(shí)期,筆者在某公司亞太區(qū)總部負(fù)責(zé)該區(qū)的軟件開發(fā)。為了應(yīng)付業(yè)務(wù)迅速增長(zhǎng)所帶來(lái)的需求,公司在各地都需要進(jìn)行一些大型項(xiàng)目,包括主機(jī)的轉(zhuǎn)換與安裝、應(yīng)用系統(tǒng)開發(fā)等項(xiàng)目?偣疽笪覀儼巡糠珠_發(fā)工作外包,這樣一來(lái)可以降低開發(fā)成本,同時(shí)也為了能在這一段時(shí)間內(nèi)保證有足夠人力來(lái)完成項(xiàng)目。最后,我們決定利用公司本身的資源在區(qū)內(nèi)各計(jì)算機(jī)中心內(nèi)進(jìn)行軟件核心功能模塊的開發(fā),周邊功能模塊則實(shí)行外包。
我們選擇了菲律賓和泰國(guó)這兩地的軟件企業(yè)來(lái)協(xié)助開發(fā)部分應(yīng)用軟件,因?yàn)檫@兩個(gè)地區(qū)有大批新興的軟件企業(yè),所需的開發(fā)費(fèi)用只是項(xiàng)目基線的四分之一而已。首先,我們對(duì)兩地一些有規(guī)模的軟件企業(yè)進(jìn)行嚴(yán)格審核,包括對(duì)這些企業(yè)的技術(shù)人員數(shù)量、技術(shù)水平、財(cái)務(wù)狀況、可靠性等各方面進(jìn)行深入的評(píng)估,然后在每地選擇一家從事外包。我們制定了有關(guān)程序的規(guī)格說(shuō)明,然后把這些說(shuō)明交給對(duì)方進(jìn)行編程和模塊測(cè)試。
當(dāng)接到第一批交回的程序時(shí),我們從測(cè)試報(bào)告中已經(jīng)發(fā)現(xiàn)結(jié)果跟我們的期待有很多不同之處。我們?cè)谶M(jìn)行測(cè)試過(guò)程中發(fā)現(xiàn)有些程序不能跟核心模塊連接,更有些程序不能在主機(jī)上運(yùn)行。我們除了對(duì)交回程序的質(zhì)量感覺(jué)失望之外,更知道這會(huì)全面影響整個(gè)項(xiàng)目的進(jìn)度。(相關(guān)文章:信息化:不要盲目登上“外包”的賊船)
建立良好合作模式
外包開發(fā)的軟件不能達(dá)到企業(yè)的質(zhì)量要求,我們往往會(huì)在第一時(shí)間把罪過(guò)推給外包商。但實(shí)際經(jīng)驗(yàn)告訴我們,很多失敗的原因是企業(yè)本身沒(méi)有提供一套完整的軟件系統(tǒng)規(guī)格說(shuō)明、沒(méi)有跟進(jìn)開發(fā)的進(jìn)度、沒(méi)有定期與外包商溝通與協(xié)調(diào)、沒(méi)有在開始時(shí)建立好質(zhì)量指標(biāo)和測(cè)試流程或者沒(méi)有做出適當(dāng)?shù)募夹g(shù)和開發(fā)環(huán)境的評(píng)估。但最重要的一點(diǎn),是沒(méi)有在決定軟件外包時(shí)處理好雙方合作模式與關(guān)系的建立。(相關(guān)文章:如何采取信息技術(shù)外包戰(zhàn)略?)
千萬(wàn)不要認(rèn)為軟件外包可以減少企業(yè)的管理時(shí)間。相反,外包項(xiàng)目有時(shí)需要雙倍的管理時(shí)間。在我們決定外包軟件開發(fā)的時(shí)候,我們首要決定是整個(gè)應(yīng)用系統(tǒng)的開發(fā)由外包商承包,還是只有部分應(yīng)用模塊的程序交由外包商編寫。前者需要管理整個(gè)外包項(xiàng)目的生命周期,跟企業(yè)內(nèi)部軟件開發(fā)的管理沒(méi)有差異,只是開發(fā)的地點(diǎn)、環(huán)境和資源比較陌生而已;后者則需要了解企業(yè)本身是否能提供優(yōu)質(zhì)的規(guī)格說(shuō)明、是否能夠提供外包商所需的質(zhì)量標(biāo)準(zhǔn)和測(cè)試數(shù)據(jù)、外包商是否有類似企業(yè)本身的開發(fā)平臺(tái)和環(huán)境,以及外包商的技術(shù)資源水平是否與企業(yè)內(nèi)部開發(fā)時(shí)所需的技術(shù)指數(shù)相符。明確自身所需和服務(wù)要求,是決定外包項(xiàng)目的先決條件。
選擇適合的外包商,并不能單以服務(wù)價(jià)格來(lái)做最終決定。優(yōu)質(zhì)的服務(wù)需要付出較高的代價(jià)。企業(yè)應(yīng)根據(jù)自身對(duì)軟件質(zhì)量的要求來(lái)決定服務(wù)的代價(jià)。按照國(guó)際企業(yè)的衡量指標(biāo),外包投入比本身開發(fā)的凈投資(以各技術(shù)員工的基本薪資為標(biāo)準(zhǔn),并不包括企業(yè)對(duì)員工所提供的福利、假期和獎(jiǎng)勵(lì)計(jì)劃等開支)多付15%~20%。也就是說(shuō),如果企業(yè)本身開發(fā)需要30萬(wàn)元的話,那么合理的外包服務(wù)價(jià)格大概是34萬(wàn)元到36萬(wàn)元。
既然外包不能立竿見(jiàn)影地帶來(lái)經(jīng)濟(jì)利益,為什么還要外包呢?最主要的原因是企業(yè)在項(xiàng)目完成后不需要繼續(xù)照顧這批開發(fā)人員,不需要為這些開發(fā)人員提供福利條件。外包費(fèi)用是一次性的營(yíng)運(yùn)開支,不像雇員薪資這樣成為企業(yè)的長(zhǎng)期營(yíng)運(yùn)成本。假如企業(yè)有些一次性的大型項(xiàng)目需要馬上啟動(dòng),但缺乏足夠的資源,或者企業(yè)本身沒(méi)有相應(yīng)的技術(shù)人員來(lái)執(zhí)行的時(shí)候,外包不失為一個(gè)可行的解決辦法。
如何進(jìn)行外包項(xiàng)目的管理
一些項(xiàng)目經(jīng)理往往認(rèn)為外包開發(fā)項(xiàng)目與企業(yè)內(nèi)部開發(fā)項(xiàng)目的管理沒(méi)有多大分別,唯一不同是外包項(xiàng)目需要更多時(shí)間去溝通、協(xié)調(diào)、跟進(jìn)和監(jiān)控?傮w來(lái)說(shuō),這種想法是對(duì)的,但事實(shí)上外包項(xiàng)目的管理比企業(yè)內(nèi)部開發(fā)項(xiàng)目的管理更復(fù)雜,擔(dān)負(fù)更大的風(fēng)險(xiǎn),需要更緊密的進(jìn)度和質(zhì)量監(jiān)控。(相關(guān)文章:如何控制信息技術(shù)外包的風(fēng)險(xiǎn)?)
保障溝通
內(nèi)部開發(fā)項(xiàng)目所需人力資源大致分為兩組:一是技術(shù)人員,另一組是配合技術(shù)人員的業(yè)務(wù)人員(他們是所建信息系統(tǒng)的潛在用戶)。外包項(xiàng)目除了需要部分技術(shù)人員和用戶群體參與外,更增加了一組外包商的資源。有些外包商更會(huì)指派一名聯(lián)絡(luò)人員負(fù)責(zé)聯(lián)系與協(xié)調(diào),而他們的技術(shù)人員只在后方負(fù)責(zé)項(xiàng)目的開發(fā)。這種運(yùn)作模式要盡量避免,因?yàn)橥獍讨概韶?fù)責(zé)聯(lián)系的人員往往是業(yè)務(wù)人員的背景,對(duì)技術(shù)的細(xì)節(jié)不能全面把握,把有關(guān)信息傳達(dá)到技術(shù)人員的時(shí)候便會(huì)有所差異。所以我們的首要任務(wù)是讓外包商明白負(fù)責(zé)項(xiàng)目聯(lián)系的人員必須是開發(fā)小組的主管。這名開發(fā)小組主管是直接參與開發(fā)項(xiàng)目的主要人員,如此才能夠有效地進(jìn)行溝通和監(jiān)控。
做好計(jì)劃
項(xiàng)目經(jīng)理首先需要做出一個(gè)詳細(xì)的、完整的項(xiàng)目計(jì)劃,并在計(jì)劃中詳細(xì)地列清楚每一件工作需要哪方面的哪些人力來(lái)共同執(zhí)行。在計(jì)劃中的每一個(gè)進(jìn)度都需要進(jìn)行確認(rèn)才能繼續(xù)。例如外包商在完成系統(tǒng)分析后,需要把分析的結(jié)果讓客戶理解,好讓企業(yè)能夠確認(rèn)外包商對(duì)整個(gè)系統(tǒng)的理解和分析與企業(yè)本身對(duì)項(xiàng)目的需求和分析達(dá)成一致,這樣才能讓外包商進(jìn)行其后的模塊設(shè)計(jì)。不然設(shè)計(jì)出來(lái)的模塊組合便有可能與企業(yè)的需求不太一樣,存在質(zhì)量和最后上的差異。這些差異也將會(huì)引發(fā)企業(yè)將來(lái)在系統(tǒng)維護(hù)、更新、增加功能模塊、升級(jí)、集成等各方面的嚴(yán)重問(wèn)題。
避免延誤
要避免項(xiàng)目發(fā)生延誤,計(jì)劃中要預(yù)留足夠的時(shí)間來(lái)進(jìn)行上述確認(rèn)工作。由于雙方工作地點(diǎn)的緣故,原本只需一天的確認(rèn)會(huì)議便可能耗費(fèi)兩天或三天的時(shí)間來(lái)完成。議程中所達(dá)到的共識(shí)也可能需要時(shí)間來(lái)讓外包商做出適當(dāng)?shù)男薷牟拍茏屍髽I(yè)正式確認(rèn)。也只能在正式確認(rèn)后才能夠進(jìn)一步繼續(xù)接下來(lái)的工作。如果沒(méi)有預(yù)留足夠的時(shí)間用于協(xié)商,當(dāng)一個(gè)項(xiàng)目經(jīng)過(guò)七八個(gè)確認(rèn)會(huì)議之后,也許已經(jīng)延誤了一個(gè)月的時(shí)間