在軟件開(kāi)發(fā)項(xiàng)目中,許多組織采用合作開(kāi)發(fā)的方式,這種方式的優(yōu)點(diǎn)在于合作各方可以各取所長(zhǎng)。例如業(yè)主方可以發(fā)揮其對(duì)業(yè)務(wù)過(guò)程理解方面的能力,而合作商(一般是專業(yè)的軟件公司或IT企業(yè))可以發(fā)揮其技術(shù)方面的優(yōu)勢(shì)。但另一方面,這種方式也為項(xiàng)目管理帶來(lái)了許多困難。由于在合作方式下,項(xiàng)目團(tuán)隊(duì)成員來(lái)自不同的組織(業(yè)主方和合作商),在項(xiàng)目實(shí)施過(guò)程中的沖突就往往不可避免,在這種情況下,工作任務(wù)的確定、各方利益的平衡、團(tuán)隊(duì)成員間的溝通以及激勵(lì)問(wèn)題等均可能導(dǎo)致項(xiàng)目實(shí)施過(guò)程中產(chǎn)生各種阻力,因而需要項(xiàng)目經(jīng)理付出很大的努力來(lái)解決。
筆者曾經(jīng)作為項(xiàng)目管理人員參加過(guò)一個(gè)全國(guó)性軟件項(xiàng)目的管理,這個(gè)項(xiàng)目的應(yīng)用范圍遍及全國(guó)上百個(gè)城市,項(xiàng)目實(shí)施團(tuán)隊(duì)的結(jié)構(gòu)也相對(duì)比較復(fù)雜,團(tuán)隊(duì)成員來(lái)自業(yè)主方及兩家合作商,來(lái)自業(yè)主方的成員主要負(fù)責(zé)業(yè)務(wù)策略和業(yè)務(wù)流程的制定、項(xiàng)目工程的總體協(xié)調(diào)并協(xié)助進(jìn)行技術(shù)實(shí)施;來(lái)自合作商的團(tuán)隊(duì)成員則負(fù)責(zé)具體的技術(shù)實(shí)現(xiàn)和工程實(shí)施、對(duì)業(yè)主方技術(shù)人員進(jìn)行培訓(xùn)并提供技術(shù)方案制定過(guò)程中的技術(shù)咨詢。在這樣一個(gè)環(huán)境中,沖突幾乎在每個(gè)星期都會(huì)以不同的形式發(fā)生,而解決這些沖突的方法和過(guò)程也為管理軟件合作開(kāi)發(fā)項(xiàng)目提供了許多經(jīng)驗(yàn)和教訓(xùn),尤其在工作任務(wù)管理、各方利益的平衡以及通過(guò)溝通加強(qiáng)信息管理等幾個(gè)方面。
任務(wù)管理——明確任務(wù),是解決沖突的根源
明確的工作任務(wù)和職責(zé)劃分是項(xiàng)目順利實(shí)施的必要前提之一,但軟件項(xiàng)目的特殊性使得項(xiàng)目管理中至關(guān)重要的“范圍管理”(Scope Management)遇到了很大困難,某些子系統(tǒng)的開(kāi)發(fā)任務(wù)在業(yè)主與合作商簽訂的項(xiàng)目合同中進(jìn)行了明確的定義,但仍然有許多任務(wù)需要雙方在實(shí)施過(guò)程中逐步明確。在合作項(xiàng)目中,這種情況產(chǎn)生的后果相對(duì)更為嚴(yán)重,因?yàn)轫?xiàng)目團(tuán)隊(duì)的工作方式是合作方式,當(dāng)因工作任務(wù)不明確而產(chǎn)生問(wèn)題時(shí),極易在來(lái)自不同組織的團(tuán)隊(duì)成員間產(chǎn)生矛盾,從而引發(fā)沖突。
由于軟件開(kāi)發(fā)項(xiàng)目本身的特點(diǎn),在項(xiàng)目啟動(dòng)階段就給出完整的系統(tǒng)需求是極為困難(甚至是不可能)的,在許多情況下,隨著開(kāi)發(fā)進(jìn)程逐步確定需求,以滿足實(shí)際環(huán)境的不斷變化不僅是權(quán)宜之計(jì),而且更是現(xiàn)實(shí)的需要。另一方面,在大多數(shù)軟件開(kāi)發(fā)項(xiàng)目中,需求的逐步細(xì)化或更改盡管是不可避免的,但也是可以管理的。一般而言,在某一時(shí)點(diǎn)上的需求都包含兩部分的內(nèi)容:已經(jīng)明確確定的部分和目前難以明確確定的部分,而“迭代式”軟件開(kāi)發(fā)過(guò)程的目標(biāo)就是隨著開(kāi)發(fā)過(guò)程的深入逐步減少尚未明確確定的需求,并同時(shí)增加明確確定的需求。
“迭代式”軟件開(kāi)發(fā)過(guò)程的主要原理是:在軟件開(kāi)發(fā)項(xiàng)目(尤其是一些大型軟件開(kāi)發(fā)項(xiàng)目)中,在項(xiàng)目開(kāi)始階段,需求中難以明確確定的部分占有相當(dāng)大的比例,因此在制定項(xiàng)目計(jì)劃時(shí)基本上無(wú)法準(zhǔn)確估算其工作任務(wù)的范圍、進(jìn)度以及相關(guān)的費(fèi)用,這就給項(xiàng)目實(shí)施帶來(lái)了極大的風(fēng)險(xiǎn)。在這種情況下,軟件產(chǎn)品的第一版本(而不是軟件原型)反映了需求中已經(jīng)明確的那一部分的功能,此時(shí),用戶可以使用這個(gè)第一版本的軟件并在使用過(guò)程中提出進(jìn)一步的需求,然后項(xiàng)目團(tuán)隊(duì)可以根據(jù)上述相對(duì)更加明確的需求開(kāi)發(fā)第二版本。在第二版本的軟件開(kāi)發(fā)過(guò)程中,用戶可繼續(xù)使用第一版本的軟件(因?yàn)樵摪姹拒浖且粋€(gè)實(shí)際的完整產(chǎn)品而非原型,因此除了功能相對(duì)較弱外,用戶基本可正常使用)。上述“迭代式”的軟件開(kāi)發(fā)過(guò)程能夠在一定程度上有效降低大型軟件開(kāi)發(fā)過(guò)程中的風(fēng)險(xiǎn)。
但這種“迭代式”軟件開(kāi)發(fā)過(guò)程在合作型軟件開(kāi)發(fā)項(xiàng)目中會(huì)遇到一些困難,其關(guān)鍵在于:在這種方式下,項(xiàng)目實(shí)施過(guò)程中許多工作任務(wù)是逐步確定的,甚至到底要推出多少個(gè)版本在項(xiàng)目啟動(dòng)階段也很難精確確定。另一方面,合作項(xiàng)目的合同卻在項(xiàng)目開(kāi)始階段就需要簽署,而合同的關(guān)鍵部分——項(xiàng)目費(fèi)用在采用迭代式開(kāi)發(fā)方式下很難在項(xiàng)目的開(kāi)始階段就確定,當(dāng)然如果項(xiàng)目費(fèi)用的支付是按照實(shí)際費(fèi)用進(jìn)行結(jié)算的話,這個(gè)問(wèn)題并不存在。但在目前國(guó)內(nèi)許多軟件項(xiàng)目中,業(yè)主方往往傾向于使用“固定價(jià)格合同”以控制費(fèi)用風(fēng)險(xiǎn),這一合同形式要求對(duì)項(xiàng)目費(fèi)用有相對(duì)明確的估算,這恰恰與“迭代式”軟件開(kāi)發(fā)方式產(chǎn)生了矛盾。
解決這一矛盾的方法之一是采用與之相適應(yīng)的“迭代式合同”,即在項(xiàng)目的第一階段,有關(guān)的工作被分為兩部分:已明確確定的工作和尚未明確確定的工作,其工作任務(wù)內(nèi)容分別來(lái)自于已經(jīng)明確的需求和尚未明確的需求,其中明確確定的工作必須在第一階段完成,并給出明確的費(fèi)用估算,而尚未明確確定的工作在第一階段可以是部分完成并在今后的階段中繼續(xù)進(jìn)行;當(dāng)?shù)谝浑A段結(jié)束后,業(yè)主方支付確定的工作任務(wù)的費(fèi)用以及已完成部分的尚未確定的工作任務(wù)的費(fèi)用(這是由于費(fèi)用結(jié)算是分階段進(jìn)行的,而工作任務(wù)的執(zhí)行則是連續(xù)的,因此有可能根據(jù)實(shí)際的需要,某些尚未明確的、從而未在項(xiàng)目計(jì)劃中反映的工作內(nèi)容也已經(jīng)在項(xiàng)目實(shí)施過(guò)程中完成了),并對(duì)剩下的工作進(jìn)行重新估算,這樣反復(fù)進(jìn)行直到項(xiàng)目完成(如圖1所示)。
這種合同制定方法使得業(yè)主方與合作商共同承擔(dān)項(xiàng)目實(shí)施過(guò)程中的風(fēng)險(xiǎn),隨著項(xiàng)目實(shí)施進(jìn)程的不斷推進(jìn),產(chǎn)品需求和相關(guān)的工作任務(wù)變得越來(lái)越明確,工作任務(wù)中的“已確定”部分比例越來(lái)越高,雙方所承擔(dān)的風(fēng)險(xiǎn)也隨之降低。
利益管理——建立開(kāi)放的、互相信任的項(xiàng)目團(tuán)隊(duì)文化,平衡各方利益
當(dāng)項(xiàng)目團(tuán)隊(duì)成員分別來(lái)自于業(yè)主方和合作商時(shí),利益沖突幾乎是不可避免的,尤其是對(duì)于涉及相對(duì)復(fù)雜技術(shù)的軟件開(kāi)發(fā)項(xiàng)目,利益沖突往往是最難以解決的問(wèn)題之一。
首先,在技術(shù)方案的制定過(guò)程中,合作商方面的團(tuán)隊(duì)成員會(huì)傾向于選擇那些對(duì)于他們自己所在公司而言費(fèi)用相對(duì)較低的方案,而這些方案卻常常不符合業(yè)主方的最大利益;另外,合作商方面提出的技術(shù)方案也經(jīng)常會(huì)包含一些購(gòu)買由其生產(chǎn)或經(jīng)銷的產(chǎn)品或工具等,這些建議的提出并不一定是惡意的,甚至確實(shí)存在充分的理由,但在業(yè)主方看來(lái),卻有可能成為合作商試圖損害其利益的證據(jù)。
在這種情況下,一種開(kāi)放性的、互相信任的團(tuán)隊(duì)文化的建設(shè)就有助于制定一個(gè)客觀而準(zhǔn)確的項(xiàng)目技術(shù)方案和實(shí)施計(jì)劃。在許多情況下,召集一個(gè)由項(xiàng)目各方人士(包括沒(méi)有利益關(guān)系的第三方人士)參加的評(píng)估小組有時(shí)是十分必要的,這種評(píng)估不僅包括技術(shù)方面的評(píng)估,更應(yīng)當(dāng)包括經(jīng)濟(jì)方面的評(píng)估。但從根本上來(lái)看,良好的團(tuán)隊(duì)文化與規(guī)范化的評(píng)估流程相比,同等重要(有時(shí)甚至更為重要)。
在項(xiàng)目啟動(dòng)之初就努力建立一種“項(xiàng)目導(dǎo)向”的思考方式對(duì)于解決各方利益沖突也能起到幫助作用,在這種思考方式下,項(xiàng)目本身的成功對(duì)于每個(gè)項(xiàng)目團(tuán)隊(duì)成員和項(xiàng)目參與各方(包括業(yè)主方和合作商)均是首要的:如果項(xiàng)目失敗,則不僅業(yè)主方受損,從長(zhǎng)遠(yuǎn)來(lái)看,合作商的利益(其市場(chǎng)地位)也會(huì)受到損害。同時(shí),對(duì)于那些來(lái)自業(yè)主方的項(xiàng)目管理人員而言,適當(dāng)?shù)摹皳Q位思考”也是需要的。例如,來(lái)自于合作商的工程師可能會(huì)建議購(gòu)買由他們公司生產(chǎn)的產(chǎn)品而不是購(gòu)買其他公司的(可能是價(jià)格相對(duì)低廉的)產(chǎn)品,初看起來(lái)這一提議自然是損害業(yè)主方利益的,但如果考慮到對(duì)相關(guān)產(chǎn)品的熟悉程度將有助于工作效率的提高從而最終節(jié)約人工成本,這種建議也是有一定合理性的。
信息管理——充分的溝通和參與是有效的激勵(lì)機(jī)制
在合作項(xiàng)目中,對(duì)于涉及到項(xiàng)目進(jìn)度和人力資源調(diào)度這樣一些問(wèn)題而言,充分的溝通是一個(gè)關(guān)鍵性的管理手段。盡管定期和不定期的項(xiàng)目評(píng)估能夠在一定程度上解決一些問(wèn)題,但需要記住的是,只有那些具體負(fù)責(zé)某項(xiàng)工作的團(tuán)隊(duì)成員對(duì)有關(guān)的工作才最有發(fā)言權(quán),也只有他們的行動(dòng)才最終決定了某些計(jì)劃或決策的執(zhí)行效果。如果在計(jì)劃制定過(guò)程中缺乏溝通,那些持有不同意見(jiàn)的項(xiàng)目團(tuán)隊(duì)成員就可能在執(zhí)行中降低努力水平。而對(duì)于軟件開(kāi)發(fā)這樣的項(xiàng)目而言,團(tuán)隊(duì)成員的努力才是保證項(xiàng)目成功的最關(guān)鍵的因素之一。
“參與”是激勵(lì)機(jī)制中的重要一環(huán),每個(gè)團(tuán)隊(duì)成員(尤其是那些負(fù)責(zé)某一子系統(tǒng)的工程師)都應(yīng)當(dāng)在計(jì)劃制定過(guò)程中發(fā)表意見(jiàn),不僅是因?yàn)榻?jīng)過(guò)充分討論后的計(jì)劃才能更加切合實(shí)際,更重要的是,團(tuán)隊(duì)成員在執(zhí)行其“自己的計(jì)劃”過(guò)程中會(huì)更加努力。在軟件開(kāi)發(fā)項(xiàng)目中,團(tuán)隊(duì)成員大多是技術(shù)人員,對(duì)于技術(shù)人員而言,通過(guò)新工具和新技術(shù)的使用能夠提高其專業(yè)水平,因此在軟件項(xiàng)目實(shí)施過(guò)程中適當(dāng)引進(jìn)新工具和新的開(kāi)發(fā)環(huán)境有時(shí)也是一種良好的激勵(lì)手段,當(dāng)然這種手段的采用要有兩個(gè)前提:相關(guān)的工具確實(shí)有效,同時(shí)需要提供一定的培訓(xùn)以保證工作的效率。
在大型的軟件項(xiàng)目中,地理位置有時(shí)會(huì)造成溝通上的困難,尤其在合作方式上,軟件開(kāi)發(fā)工作可能在業(yè)主方或合作商的所在地進(jìn)行,或者在遠(yuǎn)離雙方總部的另一個(gè)地區(qū)進(jìn)行技術(shù)實(shí)施,這樣某一方或者是雙方的團(tuán)隊(duì)成員就會(huì)遠(yuǎn)離其所在組織的管理層,這樣對(duì)其日常工作績(jī)效的考核就會(huì)產(chǎn)生一定的困難。因此,定期的工作總結(jié)無(wú)論對(duì)于項(xiàng)目參與各方還是對(duì)于每個(gè)項(xiàng)目團(tuán)隊(duì)成員而言都是很重要的,這些總結(jié)不僅能夠反映團(tuán)隊(duì)成員的工作績(jī)效,還能及時(shí)反映有關(guān)的困難以使這些困難得到及時(shí)處理。很重要的一點(diǎn)是,上述工作總結(jié)應(yīng)當(dāng)發(fā)送給團(tuán)隊(duì)的所有成員及相關(guān)組織的高層管理人員,在軟件項(xiàng)目中,開(kāi)放的溝通環(huán)境所帶來(lái)的優(yōu)點(diǎn)一般要大于保密所帶來(lái)的好處。當(dāng)然,業(yè)主方和合作商的高層管理人員也應(yīng)當(dāng)經(jīng)常到開(kāi)發(fā)工作所在地了解情況,盡管物理距離與心理距離不是一回事,但在某些情況下,物理距離的縮短是有助于心理距離的拉近的。