“預(yù)則立,不預(yù)則廢”,軟件配置管理計(jì)劃對于配置管理實(shí)施的重要性毋庸多言。大家想看看別人做的配置管理計(jì)劃或者模板,無非是想學(xué)學(xué)別人的成功經(jīng)驗(yàn),避免自己走一些彎路。 但是我想,在這方面,更應(yīng)該學(xué)習(xí)的應(yīng)該是計(jì)劃軟件配置管理實(shí)施的思路,畢竟,各個(gè)開發(fā)團(tuán)隊(duì)不同的地方太多了。下面是我觀察和思考的一些成果,和大家分享。 像你的老板一樣思考 作為一個(gè)配置管理實(shí)施的執(zhí)行人員,你怎么樣才能夠保證這項(xiàng)活動(dòng)的成功呢? 說起來很簡單、但是也是最重要的第一步,就是定義“成功”。
很多負(fù)責(zé)配置管理實(shí)施的人員都是技術(shù)人員出身,我經(jīng)常能在他們身上觀察到的一種現(xiàn)象就是:出于對技術(shù)的熱愛,他們希望把軟件配置管理學(xué)習(xí)、理解得很透徹,然后同樣出于對技術(shù)的熱情,希望能把所有在技術(shù)上很“誘人”的東西都實(shí)踐起來。
我絕對沒有貶低這種熱情的意思(事實(shí)上,我自己也經(jīng)常被這種熱情所導(dǎo)引);但是,我們一定要小心地提防這種熱情把我們引離了通向成功的方向。
為什么要實(shí)施軟件配置管理?因?yàn)橛行У呐渲霉芾砜梢詭椭覀兲岣哕浖a(chǎn)品質(zhì)量、提高開發(fā)團(tuán)隊(duì)工作效率。 什么是“成功”的配置管理實(shí)施?很簡單,只要比較配置管理實(shí)施活動(dòng)前后,軟件產(chǎn)品的質(zhì)量是不是得到了提高、開發(fā)團(tuán)隊(duì)是不是能夠工作在一個(gè)有助于提高整體工作效率的配置管理平臺上。
軟件配置管理活動(dòng)在整個(gè)開發(fā)活動(dòng)中是一項(xiàng)支持性、保障性的工作,它本身并不直接為企業(yè)產(chǎn)出可以直接贏利的工作成果;而配置管理每一項(xiàng)活動(dòng)都需要消耗企業(yè)的人力資源,有些還需要購置專門的工具來支持活動(dòng)的進(jìn)行,這些都會(huì)導(dǎo)致企業(yè)生產(chǎn)成本的增加。
所以,在我們計(jì)劃實(shí)施配置管理時(shí)要做哪些事情的時(shí)候,要小心地界定每一項(xiàng)活動(dòng),取舍的標(biāo)準(zhǔn)就是:從事這項(xiàng)活動(dòng)是不是真正有助于我們實(shí)施活動(dòng)的成功?它對于提高我們產(chǎn)品的質(zhì)量有多大的幫助?能否幫助開發(fā)團(tuán)隊(duì)更高效率地工作?
大多數(shù)情況下,你的老板花錢讓你來做配置管理,并不是來讓你學(xué)習(xí)配置管理或者研究配置管理,而是希望你的工作能幫助他改變些什么;他的投資成功與否,是用投資回報(bào)率(ROI,return-on-investment)來衡量,而不是你對于配置管理技術(shù)研究的程度。
評估開發(fā)團(tuán)隊(duì)當(dāng)前配置管理現(xiàn)狀
計(jì)劃配置管理實(shí)施的基礎(chǔ),是搞清楚開發(fā)團(tuán)隊(duì)當(dāng)前配置管理的現(xiàn)狀。知道自己現(xiàn)在站在哪里,才明白自己下一步要往哪里走。
對于配置管理現(xiàn)狀的評估,可以自己進(jìn)行,也可以引入外部專業(yè)咨詢?nèi)藛T來完成評估活動(dòng)
自己進(jìn)行評估的話,可以參照SW-CMM中關(guān)于軟件配置管理這個(gè)關(guān)鍵過程域的資料;也可以利用PMT編寫的《軟件組織配置管理能力自我評估問題集》,來完成自我評估的工作。
引入外部專業(yè)咨詢?nèi)藛T進(jìn)行評估有兩個(gè)好處,一是通常這樣的咨詢?nèi)藛T有比較豐富的配置管理實(shí)施經(jīng)驗(yàn),評估工作可以進(jìn)行得更加細(xì)致,而且通常咨詢?nèi)藛T會(huì)在評估結(jié)果的基礎(chǔ)上提出實(shí)施的建議;二是引入外部人員,通常評估結(jié)果會(huì)比內(nèi)部自我評估更客觀。壞處是要花錢,而且如果該咨詢?nèi)藛T與具體的配置管理工具廠商有利益關(guān)系的時(shí)候,也可能會(huì)出現(xiàn)評估過程受到這種利益關(guān)系影響的情形。
不管以何種方式進(jìn)行,評估這個(gè)步驟的工作是一定要仔細(xì)進(jìn)行的。有了評估的結(jié)果,才談得上改進(jìn)。做好這個(gè)工作,比到處去找一份配置管理計(jì)劃的模板更有意義。
定義實(shí)施的范圍
對于沒有正式實(shí)施過軟件配置管理的開發(fā)團(tuán)隊(duì)來說,在配置管理方面存在的問題可能會(huì)比較多;經(jīng)過評估,會(huì)找出來很多需要改進(jìn)的點(diǎn),那么,怎么樣來計(jì)劃改進(jìn)的工作步驟呢?
曾經(jīng)有一位朋友向我展示他撰寫的軟件配置管理計(jì)劃,從基本的版本控制、基線管理、變更管理,到軟件構(gòu)建的管理(Build Management)、配置審核(Auditing)、配置狀態(tài)的報(bào)告,洋洋灑灑,什么都做在計(jì)劃里了。他的團(tuán)隊(duì)以前沒有太多配置管理的概念,因而也出現(xiàn)了很多一直困擾他的問題,在我向他介紹配置管理可以幫助他改善或解決這些問題以后他變成了一個(gè)配置管理技術(shù)的愛好者。我想他一定仔細(xì)研讀了RUP配置管理工作流、IEEE軟件配置管理標(biāo)準(zhǔn)之類的資料然后寫出了這份計(jì)劃。我對他的計(jì)劃提了一個(gè)問題:“你覺得按照日程安排我們做得完這么多事情嗎?”
這就是前邊說過的,熱愛技術(shù)的朋友最容易出現(xiàn)的情況,為技術(shù)而技術(shù)、為流程而流程;我記得一位朋友跟我說過一句非常有意義的話:流程改進(jìn)應(yīng)該是以結(jié)果為導(dǎo)向的(Result Oriented)。配置管理的實(shí)施也是如此,應(yīng)當(dāng)在當(dāng)前評估的基礎(chǔ)上,抓住團(tuán)隊(duì)最頭疼的幾個(gè)問題,努力想辦法解決這些問題。
大家都知道管理學(xué)里有一個(gè)黃金法則:80/20法則。在這里我們也可以套用一下,想一想:我如何才能找出20%的問題,在當(dāng)前這個(gè)階段,這20%的問題給我的團(tuán)隊(duì)帶來80%的困擾和痛苦,然后,我們集中80%的精力來解決這些問題。
一句話,不要企圖一口吃個(gè)胖子。流程改進(jìn)是一個(gè)持續(xù)的歷程,一個(gè)階段會(huì)有一個(gè)階段改進(jìn)的重點(diǎn),抓住重點(diǎn)、做出成績,才是有效的改進(jìn)之道。
計(jì)劃資源要素
俗話說,兵馬未動(dòng),糧草先行。配置管理的實(shí)施需要消耗一定的資源,在這個(gè)方面一定要預(yù)先規(guī)劃。
具體來說,配置管理實(shí)施主要需要兩方面的資源要素:一是人力資源,二是工具。下面分別論述。
人力方面,因?yàn)榕渲霉芾硎且粋(gè)貫穿整個(gè)軟件生命周期的基礎(chǔ)支持性活動(dòng),所以配置管理會(huì)涉及到團(tuán)隊(duì)中比較多的人員角色。比如,項(xiàng)目經(jīng)理、配置管理員、開發(fā)人員、測試人員、集成人員、維護(hù)人員等。但是,工作在一個(gè)良好的配置管理平臺上并不需要開發(fā)人員、測試人員等角色了解太多的配置管理知識,所以,配置管理實(shí)施的主要人力資源會(huì)是集中在配置管理員上。
配置管理員是一個(gè)比較奇妙的角色,對于一個(gè)實(shí)施了配置管理、建立了配置管理工作平臺的團(tuán)隊(duì)來說,他是非常重要的,整個(gè)開發(fā)團(tuán)隊(duì)的工作成果都在他的掌管之下,他負(fù)責(zé)管理和維護(hù)的配置管理系統(tǒng)如果出現(xiàn)問題的話,輕則影響團(tuán)隊(duì)其他成員的工作效率,重則可能出現(xiàn)丟失工作成果、發(fā)布錯(cuò)誤版本等嚴(yán)重的后果。然而,由于傳統(tǒng)不了解配置管理重要性的原因,在國內(nèi)的開發(fā)團(tuán)隊(duì)中,通常大家都不愿意去做配置管理員。我遇到很多情況,都是項(xiàng)目經(jīng)理找來找去,選出來一個(gè)不喜歡做開發(fā)工作的女孩,來擔(dān)任配置管理員。
在國外一些比較成熟的開發(fā)組織中,配置管理員被稱為CMO(Configuration Management Officer),或者是配置經(jīng)理;他們被稱為是項(xiàng)目經(jīng)理的左手。從這兩個(gè)稱謂我們可以看出他們對于配置管理員的重視。在選拔配置管理員的時(shí)候,也有相當(dāng)高的要求,比如,有一定的開發(fā)經(jīng)驗(yàn),對于系統(tǒng)(操作系統(tǒng)、網(wǎng)絡(luò)、數(shù)據(jù)庫等方面)比較熟悉,掌握一定的解決問題(trouble shooting)的技巧,在個(gè)人性格上,要求比較穩(wěn)重、細(xì)心。
在配置管理員這個(gè)資源配置方面,要注意后備資源(Backup)的培養(yǎng)。在大家越來越重視配置管理的大環(huán)境下,經(jīng)驗(yàn)豐富的配置管理員會(huì)成為搶手的人才;而配置管理員的離開可能會(huì)給團(tuán)隊(duì)的工作進(jìn)度帶來一定的影響,所以聰明的管理者會(huì)為自己留好備份。
選擇什么樣的配置管理工具,一直是大家關(guān)注的熱點(diǎn)問題。確實(shí),與其他的一些軟件工程活動(dòng)不一樣,配置管理工作更強(qiáng)調(diào)工具的支持;缺乏良好的配置管理工具的話,要做好配置管理的實(shí)施會(huì)非常困難。
具體來說,我想在配置管理工具的選型上,可以綜合考慮下邊的一些因素。
首先是經(jīng)費(fèi)。市場上現(xiàn)有的商業(yè)配置管理工具,大多價(jià)格不菲。到底是選用開放源代碼的自由軟件、還是采購商業(yè)軟件,如果采購商業(yè)軟件的話,選擇哪個(gè)檔次的軟件,這些問題的答案,取決于你能從老板那兒拿到多少錢。
一般來說,如果經(jīng)費(fèi)充裕的話,采購商業(yè)的配置管理工具會(huì)讓實(shí)施過程更順利一些,商業(yè)工具的操作界面通常更方便一些,與流行的集成開發(fā)環(huán)境(IDE)通常也會(huì)有比較好的集成,實(shí)施過程中出現(xiàn)與工具相關(guān)的問題也可以找廠商解決。
如果經(jīng)費(fèi)有限的話呢,就不妨采用自由軟件,如CVS之類的工具。其實(shí)無論在穩(wěn)定性還是在功能方面,CVS的口碑都非常好,我看到過很多組織成功地在CVS上完成配置管理的工作。如果你(或者你的配置管理員)不是一個(gè)依賴性很強(qiáng)的人,喜歡自己鉆研、自己去尋找資料解決問題,CVS會(huì)是一個(gè)不錯(cuò)的選擇。
如果準(zhǔn)備選擇商業(yè)配置管理工具,就應(yīng)當(dāng)重點(diǎn)考慮下面幾個(gè)因素。
一、工具的市場占有率。大家都選擇的東西通常會(huì)是比較好的東西。而且市場占有率高也通常表明該企業(yè)經(jīng)營狀況會(huì)好一些,被人收購或者倒閉的可能性小一點(diǎn)。
二、工具本身的特性,如穩(wěn)定性、易用性、安全性、擴(kuò)展能力等。你應(yīng)當(dāng)在投資以前仔細(xì)地對工具進(jìn)行試用和評估。這兒比較容易忽略的是工具的擴(kuò)展能力(Scalability),你現(xiàn)在可能只是在幾個(gè)人、十幾個(gè)人的團(tuán)隊(duì)中部署這個(gè)工具,但是以后可能會(huì)有幾十個(gè)、幾百個(gè)人要在依賴這個(gè)工具建立的平臺上工作,到時(shí)候這個(gè)工具能不能提供這樣的支持能力?如果到時(shí)候要換一個(gè)工具的話,你一定會(huì)后悔今天的選擇。
三、廠商支持能力。工具使用過程中一定會(huì)出現(xiàn)這樣那樣的問題,有些是因?yàn)槟闶褂貌划?dāng)引起的,有些則是工具本身的毛病。這樣的問題會(huì)影響到開發(fā)團(tuán)隊(duì)的工作進(jìn)度,你一定希望能隨時(shí)找到廠商的專業(yè)技術(shù)人員幫助你解決這些問題。
配置管理工具不是用一次兩次的工具,因此,選擇配置管理工具其實(shí)是選擇和哪個(gè)廠商來建立一種長期的關(guān)系;如果你不信任或者干脆就是不喜歡這個(gè)廠商的技術(shù)代表,那么,不管他把他的東西吹得怎么個(gè)天花亂墜,還是趕緊讓他走吧。
|