作者:unknown 更新時間:
朗訊科技(中國) 貝爾實驗室 劉江華
1 引言
1.1 什么是配置管理
配置管理(Configuration Management)是通過技術(shù)或行政手段對軟件產(chǎn)品及其開發(fā)過程和生命周期進行控制、規(guī)范的一系列措施。配置管理的目標是記錄軟件產(chǎn)品的演化過程,確保軟件開發(fā)者在軟件生命周期中各個階段都能得到精確的產(chǎn)品配置。
配置管理過程是對處于不斷演化、完善過程中的軟件產(chǎn)品的管理過程。其最終目標是實現(xiàn)軟件產(chǎn)品的完整性、一致性、可控性,使產(chǎn)品極大程度地與用戶需求相吻合。它通過控制、記錄、追蹤對軟件的修改和每個修改生成的軟件組成部件來實現(xiàn)對軟件產(chǎn)品的管理功能。
1.2 配置管理在軟件開發(fā)過程和項目管理過程中的作用
隨著軟件系統(tǒng)的日益復(fù)雜化和用戶需求、軟件更新的頻繁化,配置管理逐漸成為軟件生命周期中的重要控制過程,在軟件開發(fā)過程中扮演著越來越來重要的角色。一個好的配置管理過程能覆蓋軟件開發(fā)和維護的各個方面,同時對軟件開過程的宏觀管理,即項目管理,也有重要的支持作用。良好的配置管理能使軟件開發(fā)過程有更好的可預(yù)測性,使軟件系統(tǒng)具有可重復(fù)性,使用戶和主管部門用軟件質(zhì)量和開發(fā)小組有更強的信心。
軟件配置管理的最終目標是管理軟件產(chǎn)品。由于軟件產(chǎn)品是在用戶不斷變化的需求驅(qū)動下不斷變化,為了保證對產(chǎn)品有效地進行控制和追蹤,配置管理過程不能僅僅對靜態(tài)的、成形的產(chǎn)品進行管理,而必須對動態(tài)的、成長的產(chǎn)品進行管理。由此可見,配置管理同軟件開發(fā)過程緊密相關(guān)。配置管理必須緊扣軟件開發(fā)過程的各個環(huán)節(jié):管理用戶所提出的需求,監(jiān)控其實施,確保用戶需求最終落實到產(chǎn)品的各個版本中去,并在產(chǎn)品發(fā)行和用戶支持等方面提供幫助,響應(yīng)用戶新的需求,推動新的開發(fā)周期。通過配置管理過程的控制,用戶對軟件產(chǎn)品的需求如同普通產(chǎn)品的訂單一樣,遵循一個嚴格的流程,經(jīng)過一條受控的生產(chǎn)流水線,最后形成產(chǎn)品,發(fā)售給相應(yīng)用戶。從另一個角度看,在產(chǎn)品開發(fā)的不同階段通常有不同的任務(wù),由不同的角色擔(dān)當,各個角色職責(zé)明確,涇渭分明,但同時又前后銜接,相互協(xié)調(diào)。好的配置管理過程有助于規(guī)范各個角色的行為,同時又為角色之間的任務(wù)傳遞提供無縫的接合,使整個開發(fā)團隊象一個交響樂隊一樣和諧而又錯雜地行進。
正因為配置管理過程直接連接產(chǎn)品開發(fā)過程、開發(fā)人員和最終產(chǎn)品,這些都是項目主管人員所關(guān)注的重點,因此配置管理系統(tǒng)在軟件項目管理中也起著重要。配置管理過程演化出的控制、報告功能可幫助項目經(jīng)理更好地了解項目的進度、開發(fā)人員的負荷、工作效率和產(chǎn)品質(zhì)量狀況、交付日期等信息。同時配置管理過程所規(guī)范的工作流程和明確的分工有利于管理者應(yīng)付開發(fā)人員流動的困境,使新的成員可以快速實現(xiàn)任務(wù)交接,盡量減少因人員流動而造成的損失。
1.3 配置管理方案的構(gòu)成
配置管理過程對軟件開發(fā)有如此重要的影響,它的構(gòu)造、實施過程也必定相當復(fù)雜。不借助工具,純粹靠手工方式或只利用簡單的工具來實現(xiàn)配置管理是很難做到滿意程度的,而且其中的繁瑣龐雜最終必定讓管理者一愁莫展。因此,實現(xiàn)配置管理過程的通常做法是借助于專業(yè)化的配置管理工具,結(jié)合開發(fā)組織的實際情況制訂出相應(yīng)的配置管理規(guī)范,由開發(fā)人員在工作過程中依據(jù)規(guī)范,通過配置管理工具來實現(xiàn)。在這整個過程中,由配置管理工具負責(zé)那些非智能的、可自動化的管理過程,如身份角色驗證、修改軌跡記錄、版本控制等;由配置管理規(guī)范來控制那些需要開發(fā)人員用智力去判斷的因素,如需求合理性和優(yōu)先級判定、任務(wù)分工、產(chǎn)品的結(jié)構(gòu)定義、版本發(fā)行方案確定等等。配置管理工具的采用和配置管理規(guī)范的制訂是緊密聯(lián)系的,二者構(gòu)成了一個軟件開發(fā)機構(gòu)的整體配置管理方案。這種方案是因組織的差異和配置管理工具的差異而變化的。構(gòu)造一個配置管理方案涉及到軟件開發(fā)組織和開發(fā)過程的各個方面,是一個復(fù)雜的工程應(yīng)該當作一個項目來做。本文試圖給出一個構(gòu)造配置管理方案的基本策略和主要步驟。
2 組建配置管理方案構(gòu)造小組
構(gòu)造或完善一個軟件開發(fā)組織的配置管理過程需要在構(gòu)造初期花費較大的人力物力。這種工作一般是由一個臨時組成的軟件配置管理過程構(gòu)造小組來完成。這個小組負責(zé)構(gòu)造配置管理過程中的所有工作,包括了解本組織的現(xiàn)有開發(fā)、管理現(xiàn)狀,選擇配置管理工具,制訂配置管理規(guī)范,安排試驗項目的實施,溝通部門間關(guān)系,獲得管理者支持和開發(fā)人員的認同。
配置管理過程構(gòu)造小組的成員應(yīng)該包括:該組織員工對引入新工具的反應(yīng),以前是否有過類似的償試。
該組織負責(zé)人對新工具、新流程的支持程度。
開發(fā)人員的素質(zhì)、教育程度、溝通能力。
開發(fā)隊伍的穩(wěn)定性。
該組織的溝通渠道是否通暢。
3.2 技術(shù)評估
對目標機構(gòu)技術(shù)方面的的調(diào)查、評估將直接導(dǎo)致對工具的選擇。要了解的信息有:
目標機構(gòu)有哪些可用的計算資源。
在什么軟硬件平臺上進行開發(fā)。
是否存在資源瓶頸,是什么。
現(xiàn)用什么開發(fā)工具,用戶對該工具評價如何。
現(xiàn)用什么網(wǎng)絡(luò)環(huán)境。
使用什么編程語言。
目標平臺是否與開發(fā)平臺一致。
代碼更新程度如何,新編代碼、重用代碼和歷史代碼各占什么比例。
3.3 現(xiàn)有流程評估
對目標組織現(xiàn)有工作流程的評估直接影響新的配置管理流程和規(guī)章的
小組負責(zé)人
其對整個構(gòu)造過程負責(zé)。主要職責(zé)是協(xié)調(diào)與其它部門或與上級主管的關(guān)系,監(jiān)督工作進程,協(xié)調(diào)小組內(nèi)部關(guān)系。
技術(shù)支持專家
其負責(zé)在技術(shù)、設(shè)備方面為本組提供支持和服務(wù),并負責(zé)本同其它部門就技術(shù)問題進行聯(lián)絡(luò),如了解相關(guān)項目情況、開發(fā)環(huán)境、開發(fā)人員狀況等。
配置管理技術(shù)專家
其對配置管理過程的構(gòu)造和配置管理工具十分熟悉。主要任務(wù)是指導(dǎo)配置管理過程的構(gòu)造,幫助制訂配置管理規(guī)章,負責(zé)對開發(fā)人員進行配置管理工具的培訓(xùn)。通常是配置管理工具提供商或?qū)iT的配置管理顧問機構(gòu)的人員擔(dān)當此任。
配置管理系統(tǒng)用戶代表
他們是從將來要在實際的項目開發(fā)過程中使用該系統(tǒng)、遵照該過程的開發(fā)人員中挑選出來的。他們負責(zé)從構(gòu)造初期了解配置管理系統(tǒng)和規(guī)程,根據(jù)開發(fā)經(jīng)驗協(xié)助制訂、修改配置管理規(guī)程,并在試驗項目中擔(dān)任部分開發(fā)角色。這部分成員應(yīng)包括軟件開發(fā)項目經(jīng)理、設(shè)計人員、編碼、測試和構(gòu)造、發(fā)布人員。
該項目小組成立后,將按后述步驟開展配置管理過程的構(gòu)造工作。
3 對目標機構(gòu)進行了解、評估
“知已知彼,百戰(zhàn)不殆”。配置管理過程的構(gòu)造過程也是如此,必須對相互作用的雙方都有較透徹的了解才能達到預(yù)期的效果。因此首先要做的事情是調(diào)查了解,既要了解目標機構(gòu)(即將要采用該配置管理過程的軟件開發(fā)組織)的情況,又要了解配置管理工具的情況。
目標機構(gòu)的調(diào)查評估工作由配置管理技術(shù)專家領(lǐng)導(dǎo),配置管理系統(tǒng)用戶代表參與,提供基本信息,并由小組負責(zé)人協(xié)調(diào),對相關(guān)部門人員進行深入調(diào)查獲得較全面的數(shù)據(jù)。
對目標機構(gòu)的了解、評估應(yīng)從這幾個方面入手:人員、技術(shù)、工作流程、現(xiàn)有項目和期望值。
3.1 人員評估
人員評估的目的是了解目標機構(gòu)的員工對現(xiàn)有配置管理過程的評價和對采用新工具、制訂新規(guī)范的態(tài)度,預(yù)測新的配置管理過程構(gòu)造中的工作難點和可能遇到的阻力。調(diào)查的方面包括:制訂。調(diào)查的方面是:
現(xiàn)有流程的成熟性、適用性和執(zhí)行情況。
現(xiàn)有流程是否能進一步提高自動化程度。
現(xiàn)用什么開發(fā)模型。
對分析、設(shè)計、編碼、測試、產(chǎn)品管理等過程是否有嚴格的成文規(guī)范,如何保證該規(guī)范的執(zhí)行。
開發(fā)流程中的哪些質(zhì)量控制信息被收集,如何使用。
3.4 項目評估
配置管理系統(tǒng)對正在開發(fā)的產(chǎn)品、正在進行的項目有直接的影響,因此對即將納入管理的項目應(yīng)有充分的了解。了解的方面有:
項目的平均工期(人月)。
項目的組織方式,是主程序員制還是開發(fā)小組制,按深度結(jié)構(gòu)還是按廣度結(jié)構(gòu)組織。
項目的產(chǎn)品規(guī)模(功能模塊數(shù)、源碼行數(shù))。
項目開發(fā)支持狀況,是否有專門的開發(fā)環(huán)境、開發(fā)工具和配置管理等方面的支持人員。
3.5 期望值評估
對目標機構(gòu)的開發(fā)、管理人員對新系統(tǒng)的期望值的了解有利于對癥下藥,解決其當前緊要問題,提高對新系統(tǒng)的信心。調(diào)查的方面包括:
對當前本組織的生產(chǎn)率和產(chǎn)品質(zhì)量的滿意程度,期望有怎樣的提高。
對現(xiàn)有流程的評價,現(xiàn)有流程中哪個環(huán)節(jié)希望改進或加強。
期望增減哪些文檔或規(guī)則。
期望等到什么樣的通信交流方式,現(xiàn)有方式的優(yōu)缺點是什么。
期望收集哪些新的開發(fā)度量數(shù)據(jù)或簡化哪些數(shù)據(jù)。
4 配置管理工具及其提供商評估
通過對目標組織的評估,了解該組織的現(xiàn)狀和需求后,就需要選擇適合該組織的配置管理工具。市場上現(xiàn)有的配置管理工具不下數(shù)十種,它們各有所長,在功能,性能等方面有較大的差別,只有經(jīng)過仔細地對產(chǎn)品及其提供商進行分析評估,核對目標機構(gòu)的需求,才能挑選出合適的工具,實現(xiàn)一個理想的配置管理過程。
這種評估可從三個方面進行:配置管理工具的評估、供應(yīng)商評估和其它用戶使用經(jīng)驗的評估。
4.1 配置管理工具評估
對工具的評估應(yīng)側(cè)重于功能的適用性,而不應(yīng)一味強調(diào)功能的全面性。產(chǎn)品評估應(yīng)了解如下問題:該產(chǎn)品的哪一方面功能可解決目標組織的當前問題滿足該組織在配置管理上的需求。
該產(chǎn)品在目標機構(gòu)的峰值負荷下的運行效率將如何。
該產(chǎn)品對并發(fā)使用的支持情況如何
該產(chǎn)品與現(xiàn)有系統(tǒng)、工具、流程、環(huán)境的兼容性如何。
該產(chǎn)品的成熟性和穩(wěn)定性如何。
該產(chǎn)品是否易學(xué)易用。
該產(chǎn)品的購買、安裝、實施、維護費用是否可以接受。
4.2 供應(yīng)商評估
供應(yīng)商的實力和它所能提供的服務(wù)和支持對配置管理系統(tǒng)的實施至關(guān)重要。因為配置管理工具不象其它的工具那樣,只要安裝完成后按照使用手冊和在線幫助就能使用,而是必須在系統(tǒng)之外有一系列的操作、管理規(guī)范,有一套完整的方案。這些些必須在系統(tǒng)提供者或顧問機構(gòu)的幫助下才能制訂、實施。因此,系統(tǒng)提供商對配置管理過程的實現(xiàn)有重要影響。對供應(yīng)商的評估包括:
供應(yīng)商在相應(yīng)行業(yè)的從業(yè)時長。
該產(chǎn)品是否是該供應(yīng)商的主導(dǎo)產(chǎn)品。
該供應(yīng)商的年銷售額。
供應(yīng)商在五年之內(nèi)的穩(wěn)定情況。
該供應(yīng)商是否有專業(yè)化的客戶支持隊伍。
是否提供安裝、用戶培訓(xùn)等服務(wù)。
供應(yīng)商的聲望、信譽如何。
供應(yīng)商的支持人員在地理位置上是否與目標機構(gòu)鄰近。
另外,通過了解同一產(chǎn)品的其它用戶對該產(chǎn)品的評價可以對該產(chǎn)品和供應(yīng)商有較為客觀、綜合的認識。這種評價可從所知的用戶組、專業(yè)會議、配置管理工具公告板等途徑獲得。
5 制訂實施計劃
經(jīng)過對目標機構(gòu)和選用工具的評估,工作小組可以制訂出一份完整的工作計劃作為下一階段的行動綱要,同時也是向上級主管匯報,取得支持的有力佐證。
工作計劃由如下部分組成:
必要性和影響因素
結(jié)合目標機構(gòu)的開發(fā)過程組織和配置管理現(xiàn)狀,論證構(gòu)造或完善配置管理過程的必要性;根據(jù)所選配置管理工具的功能特性和供應(yīng)商的實施支持,闡明新的配置管理系統(tǒng)可對目標機構(gòu)的開發(fā)和管理工作帶來改進和驅(qū)動。另外,對該配置管理系統(tǒng)和相應(yīng)的配置管理過程對現(xiàn)有的人員、工序和管理等方面可能帶來的影響作出適當?shù)念A(yù)測,以便減小將來實施時可能遇到的阻力。
配置管理目標和配置管理過程的構(gòu)造成功標準
對正待構(gòu)建的新的配置管理過程制訂出一個較為長遠的目標,即要達到哪種控制程度,加強哪些方面的管理,是否按照相關(guān)的國家或國際標準實施,達到何種級別等等。
另外,對構(gòu)造配置管理過程的工作本身,如前所述應(yīng)當作一個項目來做,因此也必須制訂一個明確的完成標準。該標準應(yīng)該在本小組內(nèi)部統(tǒng)一并獲得上級主管認可。
人員組織和分工
進一步明確工作小組的組織成員和成員關(guān)系,為每個成員分派相應(yīng)的任務(wù)和職責(zé)。這些任務(wù)應(yīng)該具體、細化到可操作的程度,如張三負責(zé)與某部門接洽,了解原有某一管理規(guī)范,李四負責(zé)試驗環(huán)境的準備工作等等。
進度計劃
羅列出構(gòu)造過程中所要解決的問題,設(shè)置里程碑。
風(fēng)險管理預(yù)測構(gòu)造過程中可能遇到的外在困難因素,如硬件短缺、平臺差異、與相關(guān)部門沖突、試驗項目的特殊性等等。為這些風(fēng)險因素設(shè)計出降低或規(guī)避風(fēng)險的方法。
6 定義配置管理流程
配置管理流程是軟件開發(fā)機構(gòu)進行配置管理的依據(jù),也是配置管理構(gòu)造工作小組的最重要的工作成果。配置管理流程規(guī)定開發(fā)過程中需要做哪些配置管理方面的工作,由誰做、如何做。前兩個問題有較為通用的答案,在后文將會涉及,第三個問題則必須根據(jù)目標機構(gòu)的具體情況解決。
制訂配置管理流程的方法是:通過對目標機構(gòu)的調(diào)查、評估,定義現(xiàn)有的配置管理流程,由配置管理技術(shù)專家對它進一步分析,結(jié)合常規(guī)的配置管理方法制訂出新的流程。之后,依據(jù)選定的配置管理工具的功能,將新流程中可自動化的環(huán)節(jié)交由配置管理工具處理,其它環(huán)節(jié)由新制訂的配置管理規(guī)范控制。
除了制訂配置管理規(guī)范外,該小組還應(yīng)制訂出適合目標機構(gòu)的配置管理基本章程。該章程應(yīng)包括配置管理部門的設(shè)立、該部門的責(zé)能(通常是負責(zé)監(jiān)督配置管理規(guī)范的執(zhí)行情況,對配置規(guī)范進行完善,并擔(dān)當日常的內(nèi)部配置管理過程支持任務(wù)),定義配置管理過程與開發(fā)過程的協(xié)調(diào)關(guān)系,以及各開發(fā)階段的開發(fā)人員構(gòu)成、在配置管理流程中的責(zé)任劃分等等。
一般說來,配置管理包括四個方面的活動:配置項標志,配置項控制(修改控制),配置狀態(tài)報告和配置審核。配置管理規(guī)范的制訂也應(yīng)按這四個方面內(nèi)容進行。每一個方面要考慮的問題是:
配置項標志
制訂文檔或文件編號、標記體系。
定義文檔和文件之間的聯(lián)系。
確定受控的配置項的取舍,如軟件源碼、硬件描述文件、中間文件、目標文件、測試方案、系統(tǒng)數(shù)據(jù)等等。
確定產(chǎn)品版本、基線的標志體系。
確定庫程序的標志和管理機制。
配置項控制
確定產(chǎn)品的版本的演化策略,規(guī)定何時、何人創(chuàng)建新的基線,如何創(chuàng)建。
確定修改請求控制機構(gòu)(CCB-Change Control Board) 的人員組成、職能、工作程序。確定修改請求的處理流程和終止條件。
確定修改請求處理過程中各開發(fā)人員的職能。
確定修改請求和所生成的結(jié)果的對應(yīng)機制。
確定文檔的修改方式。
確定配置項的提取方式。
配置狀態(tài)報告
定義報告的內(nèi)容、形式、提交方式。
確定產(chǎn)品的發(fā)行事宜,包括發(fā)行時間如何確定、發(fā)行說明的生成發(fā)布方式、發(fā)行方式等。
配置審核
確定審核的執(zhí)行人員、執(zhí)行時機,審核的內(nèi)容和方式。
確定發(fā)現(xiàn)問題后的處理方法。
7 試驗項目的實施
這一階段的任務(wù)是選取目標機構(gòu)中的一個現(xiàn)有項目,按既定的配置管理流程去進行開發(fā)和配置管理工作。這種試驗的目的是在一定風(fēng)險范圍內(nèi),通過實地運作來確定所選配置管理工具、所制訂的配置管理規(guī)范是否能滿足目標機構(gòu)的需要。要做的工作有:
選定試驗項目
該項目應(yīng)該具有一定的復(fù)雜性,但又有較強的獨立性,不會對目標機構(gòu)的關(guān)鍵項目造成重要影響。
選定試驗組成員
通常應(yīng)包括構(gòu)造小組的部分成員和該項目原有的成員。
定義試驗成功的標準和試驗時間表
應(yīng)以配置管理流程和項目開發(fā)管理過程的協(xié)同程度和總體工作效率為依據(jù)。
人員培訓(xùn)
包括配置管理工具培訓(xùn)和配置管理規(guī)范培訓(xùn)。
配置管理工具的安裝和項目環(huán)境的搭建
包括將歷史代碼導(dǎo)入到新系統(tǒng)中,將原有配置管理信息轉(zhuǎn)換成新系統(tǒng)的形成,置于新系統(tǒng)控制之下;搭建項目所需的軟硬環(huán)境等。
開發(fā)過程
按新的配置管理流程進行試驗項目的開發(fā),及時收集項目開發(fā)人員的反饋信息?! ?/p>
調(diào)整配置管理流程
根據(jù)項目的進行情況和開發(fā)人員的反饋信息,找出新配置管理流程的不足,及時調(diào)整改進。
8 全面實施
經(jīng)過試驗項目證實、校正后的配置管理流程就可以在目標機構(gòu)的各個項目、各個相關(guān)工作環(huán)節(jié)中去應(yīng)用、實施,最終使配置管理過程日?;?、規(guī)范化。全面實施過程主要由配置管理部門根據(jù)新的配置管理流程來指導(dǎo)。配置管理過程構(gòu)造小組的作用趨于淡化,主要起監(jiān)督和支持作用。該小組在全面實施過程中逐步解散,小組中部分成員可轉(zhuǎn)移到配置管理部門中去。
全面實施階段的任務(wù)有:
組建或完善配置管理部門,并完成配置管理流程的移交。
由配置管理部門制訂各個項目的配置管理實施計劃。
進行全組織范圍的配置管理系統(tǒng)和規(guī)則的培訓(xùn)。
幫助各個開發(fā)項目向新流程轉(zhuǎn)移。
進行日常的監(jiān)督、抽查、評估和規(guī)范的完善工作。
10 結(jié)語
配置管理過程的建立是一個復(fù)雜而漫長的過程,因為它受軟件開發(fā)機構(gòu)的許多方面的影響,包括技術(shù)、設(shè)備、項目、制度、人員、文化等因素。就象其它任何新事物的出現(xiàn)一樣,在一個機構(gòu)內(nèi)剛剛建立的配置管理過程必然會受到各方面的挑戰(zhàn)和考驗,因此需要有一個適應(yīng)、融合的過程。另外,配置管理過程的建立也不是一件一勞永逸的事情,不同機構(gòu)、同一機構(gòu)在不同的發(fā)展階段或不同的項目中會有不同的配置管理細節(jié),這些都需要配置管理部門在長期工作過程中對配置管理過程不斷調(diào)節(jié)、充實、完善。