SCM 不僅僅是支持和管理
Posted on 2011-01-18 13:15 幻海藍(lán)夢(mèng) 閱讀(183) 評(píng)論(0) 編輯 收藏 所屬分類(lèi): 版本管理 、配置管理SCM 不僅僅是支持和管理
軟件配置管理(簡(jiǎn)稱(chēng)SCM)給使用者支持,管理資料庫(kù),并維持基線(xiàn)的完整性。先進(jìn)的自動(dòng)化工具,基線(xiàn)的生成,維護(hù)和產(chǎn)品的交付都要求細(xì)致和細(xì)節(jié)化的規(guī)劃。為了工作更有效率,SCM必須輔以每日的強(qiáng)化,更新和維護(hù)。
不管你走到哪,面對(duì)什么人,只要你問(wèn)起“SCM是一個(gè)支持組織還是管理組織?”即使你問(wèn)的是兩個(gè)在同一項(xiàng)目中工作的同事,你也很有可能得到兩個(gè)不同的答案。那些疑心這是個(gè)坑人的問(wèn)題或想顯得懂得挺多的人可能會(huì)回答:“當(dāng)然兩者皆是。”但一旦要繼續(xù)問(wèn)“兩者皆是”是什么意思?他們通常都會(huì)有更重要的事要先處理。
真正的答案是SCM是一個(gè)集支持與管理為一體的組織,但當(dāng)它被正確的運(yùn)用后,人們不得不開(kāi)始考慮第三個(gè)要素,服務(wù)。
如果你跟軟件工程師談起這個(gè)問(wèn)題,他們可能會(huì)告訴你,他們的確需要支持和一定量的管理,但不要太多。管理人員則一般會(huì)說(shuō)管理是一個(gè)相對(duì)更重要的問(wèn)題,如果這些管理不太耗資金和時(shí)間。一個(gè)有10年甚至更豐富經(jīng)驗(yàn)的老SCM人,譬如一位一線(xiàn)主管或經(jīng)理會(huì)同意這位管理人員的意見(jiàn),也會(huì)堅(jiān)持認(rèn)為有些時(shí)候這些資金和時(shí)間是不可避免的需要投入的。一個(gè)SCM新人則很有可能會(huì)同意那些軟件工程師的意見(jiàn),并力圖盡其可能的幫助他把工作完成。
這個(gè)問(wèn)題變成了“SCM怎樣才能在項(xiàng)目工作量增加的情況下,既能很好地完成支持、管理工作,又為項(xiàng)目提供服務(wù)?”
支持:SCM是一個(gè)提供支持的組織。它能給予項(xiàng)目工程師,項(xiàng)目本身,公司本身提供支持,甚至在很多情況下它也能對(duì)公司客戶(hù)提供支持。
管理:SCM也是一個(gè)管理組織。它能對(duì)各種規(guī)格說(shuō)明,文檔,圖表,需求,工具,軟件及其它可交付物進(jìn)行管理。
服務(wù):SCM同時(shí)還是一個(gè)服務(wù)提供者。它提供各種支持并管理產(chǎn)出。這個(gè)看似簡(jiǎn)單的詞卻是一個(gè)成功的SCM系統(tǒng)中最重要的關(guān)鍵詞。
SCM工作人員通常應(yīng)具備兩項(xiàng)能力:一是對(duì)公司工作提供支持,另一個(gè)則是管理產(chǎn)出。但當(dāng)這兩種工作被混淆,亦即SCM人員嘗試管理開(kāi)發(fā)人員工作的時(shí)候,麻煩和瓶頸就出現(xiàn)了。一般在這個(gè)時(shí)候,真正的SCM就會(huì)被繞過(guò),人們通常用的籍口是“算了,以后再修改。”
這樣一來(lái),SCM經(jīng)理的責(zé)任就包括:
l 確保SCM工程師都經(jīng)過(guò)專(zhuān)業(yè)正式的培訓(xùn),并且有一定量的資源(包括預(yù)算和工具)來(lái)有效的完成工作。
l 確保每一個(gè)項(xiàng)目支持方案既能夠量身定做,又能平衡支持與管理。
l 確保SCM的功能非常靈活,能夠適應(yīng)工程師、客戶(hù)、項(xiàng)目或公司本身不斷變化的需求。
前景預(yù)測(cè):
SCM的任務(wù)在過(guò)去的20-30年中并沒(méi)有太大改變。然而,SCM工作的環(huán)境卻有了相當(dāng)大的變動(dòng);而且這種變動(dòng)很有可能繼續(xù)下去。軟件的應(yīng)用語(yǔ)言變了:從Basic, COBOL和FORTRAN,到Ada和Pascal,再到C++,Java等等。但這并未能真正給SCM沖擊,畢竟代碼換了個(gè)名字還是代碼。
真正的給SCM帶來(lái)影響力的沖動(dòng),來(lái)自于自動(dòng)化工具和配置庫(kù)系統(tǒng)的使用。
工具從版本控制和半自動(dòng)化構(gòu)造,發(fā)展到能建立和監(jiān)視整個(gè)軟件開(kāi)發(fā)和產(chǎn)品環(huán)境。工具已變得更復(fù)雜精密,供應(yīng)商也越來(lái)越多。不久前,對(duì)于SCM來(lái)說(shuō)選擇工作中需要的最佳操作工具還只是小菜一碟,但在如今的市場(chǎng),在做出決定之前新的論點(diǎn)得先被提出來(lái)。對(duì)于各個(gè)工程部的代表們來(lái)說(shuō),在著手工作之前先根據(jù)他們自己的要求,考慮、評(píng)估和衡量各種可使用的工具和這些工具的工作能力,變得越來(lái)越重要。
今天SCM可使用的自動(dòng)化工具,及其應(yīng)用于制圖方面的工具,都比以前的類(lèi)似功能的工具要先進(jìn)強(qiáng)大許多。但被問(wèn)及“難道沒(méi)有一個(gè)工具是可以做所有這些工作的嗎?”時(shí),答案仍然是否定的。主要原因在于,SCM的操作環(huán)境仍在不斷發(fā)展著。
在近幾年里,SCM 一直在處理代碼和一些文件,這些東西通常都被塞在基線(xiàn)里,因?yàn)檫@樣一來(lái),它們能相當(dāng)方便地被管理。但隨著基于WEB的配置庫(kù)的引入,不斷發(fā)展的商業(yè)離岸銷(xiāo) 售和子合同分包應(yīng)用,基線(xiàn),正如當(dāng)初所定義的,迅速的變成了一個(gè)很自然的概念。想想你最后一次看到一個(gè)功能基線(xiàn),分配基線(xiàn)或產(chǎn)品基線(xiàn)是什么時(shí)候的事了?可 能是某次你處理硬拷貝文件或打印的程序表的時(shí)候?而在一個(gè)電子化的辦公室里,你再找不到這些東西了。現(xiàn)在的趨勢(shì)是以查閱現(xiàn)有的受控版本(如代碼,文檔和需 求等等.)取代查閱基線(xiàn)版本;較早前則是這些受控的版本做為被歸檔的基線(xiàn)版本查閱。
在過(guò)去,大部分的程序同時(shí)有三種基線(xiàn)操作:功能線(xiàn),分配線(xiàn)和產(chǎn)品線(xiàn)(或需求線(xiàn),設(shè)計(jì)線(xiàn)和產(chǎn)品線(xiàn),或其它類(lèi)似配套的描述性標(biāo)簽)。美國(guó)航空航天局(NASA) 曾經(jīng)嘗試建立了一個(gè)有9條基線(xiàn)的系統(tǒng),不過(guò)這個(gè)系統(tǒng)持續(xù)時(shí)間并不長(zhǎng)。NASA,還有其它許多開(kāi)發(fā)人員,認(rèn)為了解受控項(xiàng)在哪條基線(xiàn)上非常重要,并且一直往這 個(gè)方向努力。這關(guān)系到受控項(xiàng)已被基線(xiàn)化,這樣它就不能在沒(méi)有經(jīng)過(guò)正式的處理流程前被改變,并且還需要給這個(gè)受控項(xiàng)的電子部分取個(gè)名字。
是什么把他們的注意力終于從之前的3條基線(xiàn)上挪開(kāi)呢?是SCM和其它開(kāi)發(fā)工程師不斷提出一問(wèn)題,譬如“這個(gè)在不同文件中使用的JPG文件放在哪里呢?”“構(gòu)造腳本和make 文件也應(yīng)該受控嗎?”和“我們可以在哪里管理公司的重用資產(chǎn)或重構(gòu)?”
于是問(wèn)題變成“控制委員會(huì)是管理文件還是文件包含的信息?”和“控制委員會(huì)管理的是軟件代碼還是別的?如果是,它是怎么工作的?又是怎么生成的?”在過(guò)去,SCM管理代碼,有時(shí)候也包括文件。在我們正在開(kāi)始處理應(yīng)用的環(huán)境中,什么能被基線(xiàn)化呢?更簡(jiǎn)單的問(wèn)題是“什么東西是不能被基線(xiàn)化的?”
答案:SCM能基線(xiàn)化所有針對(duì)某項(xiàng)目需要的東西,或使之可用。
答案:SCM能管理所有格式的資料,所以它能給人們支持并為項(xiàng)目提供一套完整的服務(wù)。
經(jīng)驗(yàn)教訓(xùn):
如果你不指望太多,看看SCM的標(biāo)準(zhǔn),手冊(cè),指南,說(shuō)明書(shū)等等,會(huì)發(fā)現(xiàn)SCM有4個(gè)主要功能:
1. 標(biāo)識(shí)
2. 變更管理
3. 狀態(tài)報(bào)告
4. 審計(jì)和驗(yàn)證
在幾乎所有的教訓(xùn)中,計(jì)劃都被忽略了。然而SCM 還在使用更復(fù)雜的設(shè)備以建立和維護(hù)復(fù)雜的環(huán)境,比如在多重平臺(tái)上建立多重基線(xiàn),多重環(huán)境等等。象所有人一樣,SCM不得不把項(xiàng)目做得更快,用更少的資金, 更聰明的方式并且要比以往都好。計(jì)劃則變得比以往任何時(shí)候都重要。在過(guò)去的10年里,人們一直相信這樣的話(huà):“讓他們?nèi)プ鯯CM。總得有人做它,然后其它 人都能迅速的學(xué)會(huì)使用它。”現(xiàn)在這句話(huà)已逐漸失去可信性。這個(gè)工作變得太技術(shù)化,也太復(fù)雜,對(duì)于需要學(xué)會(huì)這項(xiàng)操作的人來(lái)說(shuō),它依賴(lài)于太多的變數(shù)。
事實(shí)如此,SCM仍然相當(dāng)依賴(lài)于在職培訓(xùn)。沒(méi)有哪所大學(xué)或?qū)W院提供4年的SCM專(zhuān)業(yè)課程。現(xiàn)在學(xué)術(shù)界已認(rèn)識(shí)到這項(xiàng)工作所包含的復(fù)雜性。一些2年制的專(zhuān)科學(xué)院開(kāi)始提供SCM的認(rèn)證課程。1998年,我曾與3個(gè)在讀博士生一起工作過(guò),他們各自的論文都與SCM及其功能有關(guān)。
如果這些都是真實(shí)的,則計(jì)劃不能被簡(jiǎn)單的認(rèn)為是“寫(xiě)一個(gè)SCM計(jì)劃。”計(jì)劃是一個(gè)非常好的開(kāi)始,但我們需要的不只是一紙解釋SCM所扮演的角色和責(zé)任的文章。SCM計(jì)劃中需要包括:
度量——多長(zhǎng)時(shí)間,多少,什么時(shí)候和哪里?
技術(shù)綜合——需要控制什么,誰(shuí)擁有它,誰(shuí)能得到它?
管理結(jié)構(gòu)——誰(shuí)在做什么,在哪里,什么時(shí)間,怎樣做?
可能性——如果發(fā)生了,會(huì)產(chǎn)生什么結(jié)果?
工作量跟蹤——需要人力及其素質(zhì),花費(fèi)的人時(shí)
轉(zhuǎn)包商——責(zé)任和權(quán)利
資源——預(yù)算,工具許可證,培訓(xùn),管理開(kāi)銷(xiāo)
矩陣式管理——分布的工作隊(duì)伍
管理轉(zhuǎn)換——非正式到正式到分領(lǐng)域
記錄保存——保存什么,哪里保存,保存多長(zhǎng)時(shí)間?
管理——誰(shuí)管理,管理什么,他們?cè)鯓舆M(jìn)行管理?
過(guò)程——可重復(fù)的標(biāo)準(zhǔn)化程序
實(shí)案1
去年,東南部某大型宇航公司的一位SCM 經(jīng)理推薦購(gòu)買(mǎi)一個(gè)自動(dòng)化的SCM系統(tǒng),這個(gè)系統(tǒng)可以滿(mǎn)足SCM組列出的所有要求。管理部門(mén)暫時(shí)擱置了此推薦,希望其它工程部門(mén)給出這個(gè)工具的評(píng)審意見(jiàn)。最 后此購(gòu)買(mǎi)計(jì)劃被取消了。工具的確給予了SCM部門(mén)支持,但它沒(méi)有對(duì)工程師們列出的開(kāi)發(fā)中需考慮的因素給予足夠支持。不久后,他們買(mǎi)了另外一個(gè)工具,這個(gè)工 具滿(mǎn)足了SCM、軟件工程師、軟件質(zhì)量保證、測(cè)試、集成以及管理層的所有主要需求。
實(shí)案2:
最近到一個(gè)位于新英格蘭的私人企業(yè)訪(fǎng)問(wèn)(此企業(yè)不為政府所有),我發(fā)現(xiàn)工程師在使用SCM 中最擔(dān)心的是所謂限制。他們被錯(cuò)誤的引導(dǎo)認(rèn)為SCM意味著正式的管理,受限的訪(fǎng)問(wèn),創(chuàng)造性的解決方案受到限制等等。當(dāng)我解釋資料能通過(guò)一系列的非正式管理 步驟被轉(zhuǎn)換為正式的管理基線(xiàn),而且SCM并不等于完全禁閉或瓶頸,他們變得熱切想加入到SCM的建設(shè)中來(lái)。一些會(huì)談之后,一個(gè)逐步規(guī)范建立正式的SCM方 法通過(guò)了,以取代非正式的管理和資料收集,這樣可以產(chǎn)生基線(xiàn)項(xiàng)。每個(gè)人都對(duì)此而感到欣喜。工程師們很快意識(shí)到他們可以與SCM一起像一個(gè)團(tuán)隊(duì)一樣工作來(lái)解 決問(wèn)題,而不是兩個(gè)只關(guān)心自己和使用自己的方式解決問(wèn)題的獨(dú)立組織。更重要的是,SCM組懂得,當(dāng)他們走出自己的辦公室走到工程師中間時(shí)(即給予支持-面 向服務(wù)),他們很快會(huì)變成開(kāi)發(fā)過(guò)程以及開(kāi)發(fā)團(tuán)隊(duì)的一個(gè)有機(jī)整體。
結(jié)論
在以上的兩個(gè)案例中,SCM 組和工程師們很快意識(shí)到他們可以象一個(gè)團(tuán)隊(duì)一樣工作解決問(wèn)題,而不是兩個(gè)各不相干不相往來(lái)的獨(dú)立體。一流的SCM運(yùn)做只能通過(guò)對(duì)SCM的4個(gè)主要功能進(jìn)行 周到的計(jì)劃才能實(shí)現(xiàn)。隨著自動(dòng)化的SCM工具和基線(xiàn)應(yīng)用變得越來(lái)越復(fù)雜,SCM的基本原則已經(jīng)開(kāi)始有了新變化。SCM支持工程師,管理資料并提供維持基線(xiàn) 完整性的服務(wù)。如果你所工作的地方,SCM不是這樣工作的,那么現(xiàn)在該是時(shí)候問(wèn)一聲:為什么我們不是這樣?
關(guān)于作者
Bruce Angstadt是紐約韋伯斯特的Xerox公司的軟件過(guò)程改進(jìn)經(jīng)理。他為政府和產(chǎn)業(yè)公司做了35年工程支持方面的工作。他最感興趣的領(lǐng)域是技術(shù)培訓(xùn)和軟 件配置管理。在為Xerox工作之前,他曾受雇Bell工作室的Navy和Harris公司。他同時(shí)還在加州的Systems Technology Institute of Malibu大學(xué)講授一系列配置管理的課程。他畢業(yè)于佛羅里達(dá)州的奧蘭多的Rollins College,是心理學(xué)和企業(yè)管理雙學(xué)士。原文: http://www.neco.com.cn/DRNECO/Content_002/SCMmore%20than%20support%20and%20control.htm