jasmine214--love

          只有當(dāng)你的內(nèi)心總是充滿快樂、美好的愿望和寧靜時,你才能擁有強壯的體魄和明朗、快樂或者寧靜的面容。
          posts - 731, comments - 60, trackbacks - 0, articles - 0

          SCM 不僅僅是支持和管理

          Posted on 2011-01-18 13:15 幻海藍夢 閱讀(183) 評論(0)  編輯  收藏 所屬分類: 版本管理配置管理

          SCM 不僅僅是支持和管理

          軟件配置管理(簡稱SCM)給使用者支持,管理資料庫,并維持基線的完整性。先進的自動化工具,基線的生成,維護和產(chǎn)品的交付都要求細(xì)致和細(xì)節(jié)化的規(guī)劃。為了工作更有效率,SCM必須輔以每日的強化,更新和維護。

          不管你走到哪,面對什么人,只要你問起“SCM是一個支持組織還是管理組織?”即使你問的是兩個在同一項目中工作的同事,你也很有可能得到兩個不同的答案。那些疑心這是個坑人的問題或想顯得懂得挺多的人可能會回答:“當(dāng)然兩者皆是。”但一旦要繼續(xù)問“兩者皆是”是什么意思?他們通常都會有更重要的事要先處理。

          真正的答案是SCM是一個集支持與管理為一體的組織,但當(dāng)它被正確的運用后,人們不得不開始考慮第三個要素,服務(wù)。

          如果你跟軟件工程師談起這個問題,他們可能會告訴你,他們的確需要支持和一定量的管理,但不要太多。管理人員則一般會說管理是一個相對更重要的問題,如果這些管理不太耗資金和時間。一個有10年甚至更豐富經(jīng)驗的老SCM人,譬如一位一線主管或經(jīng)理會同意這位管理人員的意見,也會堅持認(rèn)為有些時候這些資金和時間是不可避免的需要投入的。一個SCM新人則很有可能會同意那些軟件工程師的意見,并力圖盡其可能的幫助他把工作完成。

          這個問題變成了“SCM怎樣才能在項目工作量增加的情況下,既能很好地完成支持、管理工作,又為項目提供服務(wù)?

          支持SCM是一個提供支持的組織。它能給予項目工程師,項目本身,公司本身提供支持,甚至在很多情況下它也能對公司客戶提供支持。

          管理SCM也是一個管理組織。它能對各種規(guī)格說明,文檔,圖表,需求,工具,軟件及其它可交付物進行管理。

          服務(wù)SCM同時還是一個服務(wù)提供者。它提供各種支持并管理產(chǎn)出。這個看似簡單的詞卻是一個成功的SCM系統(tǒng)中最重要的關(guān)鍵詞。

          SCM工作人員通常應(yīng)具備兩項能力:一是對公司工作提供支持,另一個則是管理產(chǎn)出。但當(dāng)這兩種工作被混淆,亦即SCM人員嘗試管理開發(fā)人員工作的時候,麻煩和瓶頸就出現(xiàn)了。一般在這個時候,真正的SCM就會被繞過,人們通常用的籍口是“算了,以后再修改。”

          這樣一來,SCM經(jīng)理的責(zé)任就包括:

          l         確保SCM工程師都經(jīng)過專業(yè)正式的培訓(xùn),并且有一定量的資源(包括預(yù)算和工具)來有效的完成工作。

          l         確保每一個項目支持方案既能夠量身定做,又能平衡支持與管理。

          l         確保SCM的功能非常靈活,能夠適應(yīng)工程師、客戶、項目或公司本身不斷變化的需求。

          前景預(yù)測:

          SCM的任務(wù)在過去的20-30年中并沒有太大改變。然而,SCM工作的環(huán)境卻有了相當(dāng)大的變動;而且這種變動很有可能繼續(xù)下去。軟件的應(yīng)用語言變了:從Basic, COBOL和FORTRAN,到Ada和Pascal,再到C++,Java等等。但這并未能真正給SCM沖擊,畢竟代碼換了個名字還是代碼。

          真正的給SCM帶來影響力的沖動,來自于自動化工具和配置庫系統(tǒng)的使用。

          工具從版本控制和半自動化構(gòu)造,發(fā)展到能建立和監(jiān)視整個軟件開發(fā)和產(chǎn)品環(huán)境。工具已變得更復(fù)雜精密,供應(yīng)商也越來越多。不久前,對于SCM來說選擇工作中需要的最佳操作工具還只是小菜一碟,但在如今的市場,在做出決定之前新的論點得先被提出來。對于各個工程部的代表們來說,在著手工作之前先根據(jù)他們自己的要求,考慮、評估和衡量各種可使用的工具和這些工具的工作能力,變得越來越重要。

          今天SCM可使用的自動化工具,及其應(yīng)用于制圖方面的工具,都比以前的類似功能的工具要先進強大許多。但被問及“難道沒有一個工具是可以做所有這些工作的嗎?”時,答案仍然是否定的。主要原因在于,SCM的操作環(huán)境仍在不斷發(fā)展著。

          在近幾年里,SCM 一直在處理代碼和一些文件,這些東西通常都被塞在基線里,因為這樣一來,它們能相當(dāng)方便地被管理。但隨著基于WEB的配置庫的引入,不斷發(fā)展的商業(yè)離岸銷 售和子合同分包應(yīng)用,基線,正如當(dāng)初所定義的,迅速的變成了一個很自然的概念。想想你最后一次看到一個功能基線,分配基線或產(chǎn)品基線是什么時候的事了?可 能是某次你處理硬拷貝文件或打印的程序表的時候?而在一個電子化的辦公室里,你再找不到這些東西了。現(xiàn)在的趨勢是以查閱現(xiàn)有的受控版本(如代碼,文檔和需 求等等.)取代查閱基線版本;較早前則是這些受控的版本做為被歸檔的基線版本查閱。

          在過去,大部分的程序同時有三種基線操作:功能線,分配線和產(chǎn)品線(或需求線,設(shè)計線和產(chǎn)品線,或其它類似配套的描述性標(biāo)簽)。美國航空航天局(NASA) 曾經(jīng)嘗試建立了一個有9條基線的系統(tǒng),不過這個系統(tǒng)持續(xù)時間并不長。NASA,還有其它許多開發(fā)人員,認(rèn)為了解受控項在哪條基線上非常重要,并且一直往這 個方向努力。這關(guān)系到受控項已被基線化,這樣它就不能在沒有經(jīng)過正式的處理流程前被改變,并且還需要給這個受控項的電子部分取個名字。

          是什么把他們的注意力終于從之前的3條基線上挪開呢?是SCM和其它開發(fā)工程師不斷提出一問題,譬如“這個在不同文件中使用的JPG文件放在哪里呢?”“構(gòu)造腳本和make 文件也應(yīng)該受控嗎?”和“我們可以在哪里管理公司的重用資產(chǎn)或重構(gòu)?”

          于是問題變成“控制委員會是管理文件還是文件包含的信息?”和“控制委員會管理的是軟件代碼還是別的?如果是,它是怎么工作的?又是怎么生成的?”在過去,SCM管理代碼,有時候也包括文件。在我們正在開始處理應(yīng)用的環(huán)境中,什么能被基線化呢?更簡單的問題是“什么東西是不能被基線化的?”

          答案:SCM能基線化所有針對某項目需要的東西,或使之可用。

          答案:SCM能管理所有格式的資料,所以它能給人們支持并為項目提供一套完整的服務(wù)。

          經(jīng)驗教訓(xùn):

          如果你不指望太多,看看SCM的標(biāo)準(zhǔn),手冊,指南,說明書等等,會發(fā)現(xiàn)SCM有4個主要功能:

          1.       標(biāo)識

          2.       變更管理

          3.       狀態(tài)報告

          4.       審計和驗證

          在幾乎所有的教訓(xùn)中,計劃都被忽略了。然而SCM 還在使用更復(fù)雜的設(shè)備以建立和維護復(fù)雜的環(huán)境,比如在多重平臺上建立多重基線,多重環(huán)境等等。象所有人一樣,SCM不得不把項目做得更快,用更少的資金, 更聰明的方式并且要比以往都好。計劃則變得比以往任何時候都重要。在過去的10年里,人們一直相信這樣的話:“讓他們?nèi)プ鯯CM。總得有人做它,然后其它 人都能迅速的學(xué)會使用它。”現(xiàn)在這句話已逐漸失去可信性。這個工作變得太技術(shù)化,也太復(fù)雜,對于需要學(xué)會這項操作的人來說,它依賴于太多的變數(shù)。

          事實如此,SCM仍然相當(dāng)依賴于在職培訓(xùn)。沒有哪所大學(xué)或?qū)W院提供4年的SCM專業(yè)課程。現(xiàn)在學(xué)術(shù)界已認(rèn)識到這項工作所包含的復(fù)雜性。一些2年制的專科學(xué)院開始提供SCM的認(rèn)證課程。1998年,我曾與3個在讀博士生一起工作過,他們各自的論文都與SCM及其功能有關(guān)。

          如果這些都是真實的,則計劃不能被簡單的認(rèn)為是“寫一個SCM計劃。”計劃是一個非常好的開始,但我們需要的不只是一紙解釋SCM所扮演的角色和責(zé)任的文章。SCM計劃中需要包括:

          度量——多長時間,多少,什么時候和哪里?

          技術(shù)綜合——需要控制什么,誰擁有它,誰能得到它?

          管理結(jié)構(gòu)——誰在做什么,在哪里,什么時間,怎樣做?

          可能性——如果發(fā)生了,會產(chǎn)生什么結(jié)果?

          工作量跟蹤——需要人力及其素質(zhì),花費的人時

          轉(zhuǎn)包商——責(zé)任和權(quán)利

          資源——預(yù)算,工具許可證,培訓(xùn),管理開銷

          矩陣式管理——分布的工作隊伍

          管理轉(zhuǎn)換——非正式到正式到分領(lǐng)域

          記錄保存——保存什么,哪里保存,保存多長時間?

          管理——誰管理,管理什么,他們怎樣進行管理?

          過程——可重復(fù)的標(biāo)準(zhǔn)化程序

          實案1

          去年,東南部某大型宇航公司的一位SCM 經(jīng)理推薦購買一個自動化的SCM系統(tǒng),這個系統(tǒng)可以滿足SCM組列出的所有要求。管理部門暫時擱置了此推薦,希望其它工程部門給出這個工具的評審意見。最 后此購買計劃被取消了。工具的確給予了SCM部門支持,但它沒有對工程師們列出的開發(fā)中需考慮的因素給予足夠支持。不久后,他們買了另外一個工具,這個工 具滿足了SCM、軟件工程師、軟件質(zhì)量保證、測試、集成以及管理層的所有主要需求。

          實案2:

          最近到一個位于新英格蘭的私人企業(yè)訪問(此企業(yè)不為政府所有),我發(fā)現(xiàn)工程師在使用SCM 中最擔(dān)心的是所謂限制。他們被錯誤的引導(dǎo)認(rèn)為SCM意味著正式的管理,受限的訪問,創(chuàng)造性的解決方案受到限制等等。當(dāng)我解釋資料能通過一系列的非正式管理 步驟被轉(zhuǎn)換為正式的管理基線,而且SCM并不等于完全禁閉或瓶頸,他們變得熱切想加入到SCM的建設(shè)中來。一些會談之后,一個逐步規(guī)范建立正式的SCM方 法通過了,以取代非正式的管理和資料收集,這樣可以產(chǎn)生基線項。每個人都對此而感到欣喜。工程師們很快意識到他們可以與SCM一起像一個團隊一樣工作來解 決問題,而不是兩個只關(guān)心自己和使用自己的方式解決問題的獨立組織。更重要的是,SCM組懂得,當(dāng)他們走出自己的辦公室走到工程師中間時(即給予支持-面 向服務(wù)),他們很快會變成開發(fā)過程以及開發(fā)團隊的一個有機整體。

           結(jié)論

          在以上的兩個案例中,SCM 組和工程師們很快意識到他們可以象一個團隊一樣工作解決問題,而不是兩個各不相干不相往來的獨立體。一流的SCM運做只能通過對SCM的4個主要功能進行 周到的計劃才能實現(xiàn)。隨著自動化的SCM工具和基線應(yīng)用變得越來越復(fù)雜,SCM的基本原則已經(jīng)開始有了新變化。SCM支持工程師,管理資料并提供維持基線 完整性的服務(wù)。如果你所工作的地方,SCM不是這樣工作的,那么現(xiàn)在該是時候問一聲:為什么我們不是這樣?

           

          關(guān)于作者

          Bruce Angstadt是紐約韋伯斯特的Xerox公司的軟件過程改進經(jīng)理。他為政府和產(chǎn)業(yè)公司做了35年工程支持方面的工作。他最感興趣的領(lǐng)域是技術(shù)培訓(xùn)和軟 件配置管理。在為Xerox工作之前,他曾受雇Bell工作室的Navy和Harris公司。他同時還在加州的Systems Technology Institute of Malibu大學(xué)講授一系列配置管理的課程。他畢業(yè)于佛羅里達州的奧蘭多的Rollins College,是心理學(xué)和企業(yè)管理雙學(xué)士。
          原文: http://www.neco.com.cn/DRNECO/Content_002/SCMmore%20than%20support%20and%20control.htm
          主站蜘蛛池模板: 绥棱县| 崇州市| 唐山市| 九龙坡区| 湖南省| 边坝县| 黑龙江省| 桐城市| 林口县| 五华县| 湘潭市| 荣成市| 民县| 张家口市| 霍邱县| 土默特右旗| 筠连县| 金溪县| 松桃| 博白县| 柳河县| 岐山县| 庐江县| 敦化市| 乌拉特前旗| 敖汉旗| 惠州市| 嘉义市| 临武县| 门源| 太康县| 西宁市| 太和县| 潮州市| 金沙县| 乌兰县| 新平| 馆陶县| 离岛区| 海兴县| 涞水县|