一說(shuō)起配置管理忱详,有些部門就會(huì)說(shuō)虚汛,我們沒(méi)有專門的配置管理員匾浪,這塊工作沒(méi)法做啊。那么卷哩,配置管理就只是配置管理員的事兒?jiǎn)?
那我們就先來(lái)看看什么是配置管理蛋辈,為什么需要配置管理。
(IEEE定義)配置管理是通過(guò)技術(shù)或行政手段對(duì)軟件產(chǎn)品及其開發(fā)過(guò)程和生命周期進(jìn)行控制将谊、規(guī)范的一系列措施冷溶。配置管理的目標(biāo)是記錄軟件產(chǎn)品的演化過(guò)程请垛,確保軟件開發(fā)者在軟件生命周期各個(gè)階段都能得到精確的產(chǎn)品配置叨粘。
(CMMI定義)配置管理的目的是通過(guò)配置識(shí)別赘理,配置控制居兆、配置狀態(tài)記錄及配置審計(jì),來(lái)建立和維護(hù)工作產(chǎn)品的完整性甘晤。
這里面有幾個(gè)活動(dòng):
1. 配置項(xiàng)識(shí)別
配置項(xiàng)通常是最終工作產(chǎn)品乳绕,以及對(duì)最終產(chǎn)品有直接影響的中間產(chǎn)品享潜。對(duì)于一個(gè)軟件研發(fā)項(xiàng)目來(lái)說(shuō)瓦堵,軟件包基协、用戶文檔等是最終產(chǎn)品,什么對(duì)最終產(chǎn)品有影響呢谷丸,包括最初的需求文檔堡掏,原型应结,設(shè)計(jì)文檔刨疼,源代碼泉唁,測(cè)試用例,甚至編譯腳本都是對(duì)最終產(chǎn)品有影響的揩慕,上游變亭畜,下游也需要跟著變,它們也需要識(shí)別為配置項(xiàng)迎卤。而一些計(jì)劃拴鸵、周報(bào)、會(huì)議紀(jì)要等蜗搔,屬于管理性文檔劲藐,并不需要納入配置項(xiàng)的范圍。
配置項(xiàng)的識(shí)別樟凄,是要建立在對(duì)工作產(chǎn)品了解的基礎(chǔ)上聘芜,所以說(shuō),項(xiàng)目經(jīng)理是最適合識(shí)別配置項(xiàng)的人缝龄,跟著工作任務(wù)分解和進(jìn)度安排的時(shí)候就可以一起做了汰现。
2. 配置狀態(tài)記錄
要管理配置項(xiàng),首先在物理上要給這些配置項(xiàng)找個(gè)地兒存放起來(lái)叔壤,在沒(méi)有現(xiàn)代配置管理工具的時(shí)候瞎饲,建個(gè)檔案室或公共文件夾就可以,但是需要把每個(gè)版本的輸出都備份下來(lái)炼绘,以防需要回退的時(shí)候找不到嗅战。為了防止隨意修改,需要有個(gè)人專門保管這些文件俺亮,或者對(duì)公共文件夾設(shè)置相應(yīng)的權(quán)限仗哨。配置項(xiàng)修改后也需要經(jīng)過(guò)專門的人再重新放回檔案室或者文件夾。為了分清楚各個(gè)版本或基線的關(guān)系铅辞,配置項(xiàng)的版本變更記錄厌漂,狀態(tài),以及不同基線的差異斟珊,還需要專門維護(hù)一張表格來(lái)記錄苇倡。所以,配置狀態(tài)記錄更多地是用行政手段來(lái)完成的囤踩。這個(gè)維護(hù)工作量還是相當(dāng)大的旨椒,所以需要一個(gè)專門的檔案保管員或者配置管理員來(lái)承擔(dān)。
在有了現(xiàn)代配置管理系統(tǒng)(SVN, GIT)等以后堵漱,版本的保留和回退综慎,不同版本/基線的差異,系統(tǒng)都可以通過(guò)技術(shù)手段完成勤庐。
使用現(xiàn)代配置管理系統(tǒng)(SVN, GIT)示惊,項(xiàng)目起初需要建立配置庫(kù)和分配權(quán)限好港,但是這個(gè)工作量基本是一次性的,并不需要專人米罚。
3. 配置控制
說(shuō)到配置控制钧汹,首先要談的一個(gè)概念是“基線”÷荚瘢基線是由一個(gè)標(biāo)識(shí)符分配到配置項(xiàng)目或一組配置項(xiàng)的集合拔莱,在一個(gè)特定時(shí)間點(diǎn)關(guān)聯(lián)的實(shí)體。一般的基線設(shè)置包括系統(tǒng)級(jí)需求隘竭、系統(tǒng)組級(jí)設(shè)計(jì)需求塘秦、和最終開發(fā)和生產(chǎn)初期的產(chǎn)品定義,通常被叫做”功能基線“(或”需求基線“)动看,”分配基線“(或”設(shè)計(jì)基線“)嗤形, 和”產(chǎn)品基線“。
通俗來(lái)說(shuō)弧圆,就是我們標(biāo)識(shí)出開發(fā)過(guò)程中某些關(guān)鍵階段的關(guān)鍵工作產(chǎn)品赋兵,這些工作產(chǎn)品互相有關(guān)聯(lián),它們對(duì)于下一個(gè)階段的工作有重要影響搔预。比如需求基線霹期, 包含市場(chǎng)或客戶需求,以及與之對(duì)應(yīng)的產(chǎn)品需求拯田。
舉個(gè)例子历造,當(dāng)產(chǎn)品需求評(píng)審修改完以后,大家都達(dá)成一致在這版需求基礎(chǔ)上開發(fā)了船庇,需求就“基線”了吭产,要控制起來(lái),不能隨意修改了鸭轮。怎么控制基線不讓人隨意修改呢臣淤?有幾種操作方式:
?可以把基線的文檔放到專人保管的檔案室里;
?可以把基線的文檔放到一個(gè)權(quán)限受控的文件夾里窃爷;
?可以用GIT的分支來(lái)控制邑蒋,基線后的文檔提交到master分支上;
那怎么標(biāo)識(shí)基線呢按厘?有幾種操作方式:
?可以把基線的文檔放到一個(gè)約定好的基線標(biāo)識(shí)(比如說(shuō)REQBL)的文件夾里医吊;
?可以在某個(gè)地方記錄下某個(gè)基線(比如說(shuō)REQBL)對(duì)應(yīng)的文檔名稱,版本逮京,以及存儲(chǔ)位置卿堂;
?可以在SVN或GIT上對(duì)于以及基線的工作產(chǎn)品打上基線標(biāo)簽;
需求”基線“了以后懒棉,需要讓大家都知道這是最新”官方“版本草描,這就是基線發(fā)布览绿。可以人工發(fā)郵件陶珠,現(xiàn)在我們也可以使用技術(shù)手段讓GIT上基線標(biāo)簽時(shí)自動(dòng)發(fā)郵件。
”基線“建立了以后享钞,可能又會(huì)因?yàn)槟撤N原因需要變更揍诽。因?yàn)榛€很重要,是后期大家工作的基礎(chǔ)栗竖,當(dāng)然不能隨意修改暑脆,就需要對(duì)變更做審批(通常會(huì)成立一個(gè)項(xiàng)目CCB)),看到底需不需要變狐肢,如果變了會(huì)對(duì)下游哪些工作有影響添吗,避免變更造成上下游不一致。已基線的工作產(chǎn)品變更完了份名,需要再次控制以及標(biāo)識(shí)(區(qū)分上一次基線)碟联,對(duì)大家發(fā)布。
這里面有哪些工作需要“配置管理員“呢僵腺? 將基線工作產(chǎn)品處于受控狀態(tài)鲤孵,打基線標(biāo)簽、發(fā)布基線辰如,看起來(lái)像是”配置管理員“的事普监,其實(shí)這只是基本的管理工作,不需要什么專業(yè)知識(shí)琉兜,項(xiàng)目中可以指派某個(gè)人來(lái)做就行凯正。大項(xiàng)目或長(zhǎng)周期可能需要建立三個(gè)基線,對(duì)于小項(xiàng)目來(lái)說(shuō)豌蟋,可能只需要一個(gè)基線廊散,就更沒(méi)什么工作量了,而且更何況梧疲,還可以使用技術(shù)手段自動(dòng)發(fā)布基線通知了呢奸汇!
4. 配置審計(jì)
配置審計(jì)是確認(rèn)最終的基線和文件遵照了特定標(biāo)準(zhǔn)或需求。通常分為物理審計(jì)和功能審計(jì)往声。
物理審計(jì)要看擂找,配置項(xiàng)標(biāo)識(shí)、基線標(biāo)識(shí)是否和約定一致浩销,配置項(xiàng)存放位置是否與約定一致贯涎,變更是否有審批,有沒(méi)有保留變更記錄以及相應(yīng)的評(píng)審記錄等等慢洋。物理審計(jì)可以由配置管理員來(lái)做塘雳,也可以由質(zhì)量人員來(lái)做陆盘,或者是項(xiàng)目?jī)?nèi)部指定人員。這個(gè)工作其實(shí)可以包含在日常的配置管理活動(dòng)中败明。
功能審計(jì)內(nèi)容要驗(yàn)證配置項(xiàng)目的測(cè)試功能特征隘马,是否達(dá)到功能基線指定的需求。一般由項(xiàng)目經(jīng)理或架構(gòu)師進(jìn)行妻顶,主要檢查設(shè)計(jì)酸员、代碼內(nèi)容是否一致,有沒(méi)有夾帶的需求變更讳嘱,有沒(méi)有走流程導(dǎo)致需求和代碼不一致幔嗦。這種審計(jì)一般只在相關(guān)事件驅(qū)動(dòng)時(shí)才需要。
綜上沥潭,配置管理的主要目的就是維護(hù)軟件開發(fā)最終產(chǎn)品邀泉,以及關(guān)鍵中間產(chǎn)品。不是什么過(guò)程輸出都管钝鸽,所以要識(shí)別配置項(xiàng)汇恤;關(guān)鍵工作產(chǎn)品大家得達(dá)成一致,所以有基線以及基線發(fā)布拔恰;過(guò)程中如有變更屁置,得識(shí)別出配置項(xiàng)哪些被牽連需要同時(shí)變更,所以有變更管理仁连。
有了現(xiàn)代配置管理工具蓝角,配置管理所需要的“管理“工作,其實(shí)已經(jīng)被技術(shù)手段減少了很多饭冬。這也是為什么使鹅,在華為,一個(gè)配置管理員可以支持四五百人的部門或團(tuán)隊(duì)昌抠。只要理解了配置管理的目的患朱,團(tuán)隊(duì)事先約定好配置管理的規(guī)則和權(quán)限, 并不一定需要一個(gè)專職的”配置管理員“炊苫。