摘要:針對(duì)在實(shí)際維護(hù)項(xiàng)目配置管理工作中的一個(gè)突出問(wèn)題,即維護(hù)項(xiàng)目如何進(jìn)行配置管理,并可以將配置管理工具有效支持維護(hù)項(xiàng)目的發(fā)布工作,筆者在實(shí)際工作中進(jìn)行摸索和嘗試。本文是對(duì)筆者在維護(hù)項(xiàng)目配置管理工作實(shí)踐的總結(jié)。
隨著信息化建設(shè)的日益成熟,大多數(shù)公司都建立了自己內(nèi)部的信息化平臺(tái),對(duì)公司內(nèi)部進(jìn)行高效的管理,并能提高工作、溝通效率。
筆者所在的公司位于國(guó)內(nèi)主要39家銀行應(yīng)用軟件企業(yè)的第一梯隊(duì),屬于IT綜合服務(wù)商中的佼佼者。公司目前處理日常工作的信息化平臺(tái)(Enterprise Infomation Platform,以下簡(jiǎn)稱(chēng)為EIP平臺(tái)),是根據(jù)自身的情況特點(diǎn)及工作流程,收集了各個(gè)部門(mén)的實(shí)際使用需求,由公司研發(fā)部門(mén)自行研發(fā)的。公司所有的職能部門(mén)都通過(guò)EIP平臺(tái)處理日常工作。
隨著公司業(yè)務(wù)的不斷發(fā)展和流程的不斷優(yōu)化,各職能部門(mén)對(duì)EIP平臺(tái)也不斷提出新的需求,EIP項(xiàng)目需要不斷的完善和改進(jìn),以符合公司新的流程及滿足新的需求。因此,EIP項(xiàng)目是一個(gè)典型的持續(xù)維護(hù)型項(xiàng)目。本文就以此項(xiàng)目為例,來(lái)說(shuō)明如何對(duì)維護(hù)型項(xiàng)目進(jìn)行配置管理工作。
一、問(wèn)題的提出
在使用CVS進(jìn)行配置管理時(shí),EIP項(xiàng)目經(jīng)常發(fā)生程序更新錯(cuò)誤,不斷收到業(yè)務(wù)部門(mén)對(duì)變更處理不及時(shí)的抱怨。統(tǒng)計(jì)數(shù)據(jù)表示項(xiàng)目組從開(kāi)始處理變更到變更發(fā)布,一般需要3周時(shí)間。經(jīng)過(guò)集團(tuán)配置管理員、QA、測(cè)試專(zhuān)家、項(xiàng)目經(jīng)理、開(kāi)發(fā)代表分析發(fā)現(xiàn),主要是由于下面四個(gè)原因?qū)е逻@些問(wèn)題的產(chǎn)生:
1.該項(xiàng)目的發(fā)布程序,是從開(kāi)發(fā)人員機(jī)器上的CVS編輯區(qū)取出最新程序,然后完全覆蓋生產(chǎn)環(huán)境的程序。由于開(kāi)發(fā)人員不能詳細(xì)的、準(zhǔn)確的說(shuō)出當(dāng)前缺陷或變更修改涉及的源碼,所以開(kāi)發(fā)人員只能使用完全覆蓋的方式來(lái)更新生產(chǎn)環(huán)境程序。因?yàn)殚_(kāi)發(fā)人員的環(huán)境仍在進(jìn)行新變更的處理,所以這種操作方式極易出現(xiàn)發(fā)布到生產(chǎn)環(huán)境的程序出現(xiàn)版本錯(cuò)誤的情況。
2.沒(méi)有控制變更處理順序。開(kāi)發(fā)人員通常是多個(gè)變更混在一起處理,如果多個(gè)變更修改同一文件時(shí),只能等待這些變更都處理完后才能提交程序并進(jìn)行生產(chǎn)環(huán)境的發(fā)布。這就導(dǎo)致了變更更新緩慢的情況。
3.缺少獨(dú)立的發(fā)布前測(cè)試環(huán)節(jié)。由于缺少獨(dú)立的發(fā)布前的確認(rèn)測(cè)試環(huán)節(jié),而將程序版本問(wèn)題在更新到生產(chǎn)環(huán)境后才爆發(fā)。
4.一人承擔(dān)多個(gè)角色。在EIP項(xiàng)目中,一個(gè)開(kāi)發(fā)人員承擔(dān)著測(cè)試人員(進(jìn)行系統(tǒng)發(fā)布前集成測(cè)試)、配置管理員(提供發(fā)布更新程序)、需求分析員(屬于自己模塊的變更自己決定處理順序)。
二、基本思路
首選根據(jù)公司業(yè)務(wù)發(fā)展需要選取合適的配置管理和變更管理工具;其次對(duì)角色進(jìn)行細(xì)分;再次設(shè)置合適的并行開(kāi)發(fā)模式;然后規(guī)范項(xiàng)目活動(dòng)類(lèi)別和顆粒度劃分;最后定義合適的變更控制和發(fā)布流程。
三、維護(hù)項(xiàng)目配置管理工作
3.1 選取合適的配置管理和變更管理工具
為了解決公司配置管理中存在的問(wèn)題,公司在經(jīng)過(guò)對(duì)業(yè)界的配置管理工具進(jìn)行對(duì)比和試用后,綜合各方面因素后,在2006年引入了IBM Rational ClearCase和ClearQuest,替換CVS和Bugzilla作為集團(tuán)配置管理和變更管理工具。由于EIP項(xiàng)目在配置管理中存在著眾多問(wèn)題,所以它率先導(dǎo)入ClearCase和ClearQuest進(jìn)行項(xiàng)目的配置管理工作。
3.2 角色細(xì)分
在EIP項(xiàng)目配置管理工作存在的問(wèn)題之一,就是開(kāi)發(fā)人員承擔(dān)著過(guò)多角色的工作。所以,在引入ClearCase和ClearQuest后,我們?yōu)镋IP項(xiàng)目進(jìn)行了角色細(xì)分,分配了專(zhuān)職測(cè)試人員和配置管理員,定義了專(zhuān)職的需求分析員,明確了項(xiàng)目經(jīng)理的職責(zé)。
測(cè)試人員負(fù)責(zé)變更處理完畢的確認(rèn)及發(fā)布確認(rèn)測(cè)試,開(kāi)發(fā)人員不再負(fù)責(zé)發(fā)布確認(rèn)測(cè)試,而只負(fù)責(zé)單元測(cè)試和自測(cè)。
配置管理員負(fù)責(zé)提供測(cè)試環(huán)境的更新程序、生產(chǎn)環(huán)境的更新程序。
需求管理員作為變更接收人,決策需求變更的處理順序。
項(xiàng)目經(jīng)理負(fù)責(zé)批準(zhǔn)變更的處理。
3.3 設(shè)置合適的并行開(kāi)發(fā)模式
考慮到EIP項(xiàng)目的實(shí)際情況,我們采用IBM的UCM(統(tǒng)一變更管理)解決方案作為它的配置管理和變更管理解決方案。對(duì)EIP項(xiàng)目發(fā)布版本錯(cuò)誤問(wèn)題產(chǎn)生原因進(jìn)行分析后,我們采用如下流策略作為該項(xiàng)目的并行開(kāi)發(fā)模式。
上述流策略中,我們采用三層流架構(gòu):開(kāi)發(fā)流、測(cè)試流、集成流進(jìn)行項(xiàng)目配置管理工作。其中,
開(kāi)發(fā)流是開(kāi)發(fā)人員日常工作使用的工作空間
測(cè)試流是測(cè)試人員獲取測(cè)試程序的工作空間
集成流是產(chǎn)品穩(wěn)定版本流,也是獲取項(xiàng)目發(fā)布程序的空間
由于這個(gè)項(xiàng)目屬于彼此之間需要緊密協(xié)作開(kāi)發(fā)的類(lèi)型,所以,我們采用復(fù)用流的方式,所有開(kāi)發(fā)人員共享一條開(kāi)發(fā)流。這樣,開(kāi)發(fā)人員在檢入文件時(shí)就可以看到彼此的修改結(jié)果,實(shí)現(xiàn)了集成的最大化。但是,由于多個(gè)開(kāi)發(fā)人員共享一個(gè)開(kāi)發(fā)流,如果存在對(duì)一個(gè)文件的并發(fā)修改,容易引起沖突;另外,這種方式也容易引起交付依賴(lài),使得程序在提交時(shí),必須按照一定次序進(jìn)行提交。