IBM Rational 的 Rational ClearCase 是軟件配置領(lǐng)域的先導(dǎo),它提供了全面的配置管理──包括版本控制,、工作空間管理,、建立管理和過程控制。本文結(jié)合其他領(lǐng)域的一些知識,,對 Rational ClearCase 做了一個分析,,并嘗試回答問題:為什么要用 Rational ClearCase? Rational ClearCase 介紹IBM Rational 的 Rational ClearCase 是軟件配置領(lǐng)域的先導(dǎo),,它主要基于 Windows 和 UNIX 的開發(fā)環(huán)境,,并提供了全面的配置管理──包括版本控制、工作空間管理,、建立管理和過程控制,。 隨著軟件團隊人員的增加,軟件版本不斷變化,,時間的緊缺,,多種平臺的復(fù)雜環(huán)境,使得 Rational ClearCase 所擁有的特殊組件已成為當今軟件開發(fā)人員(工程人員和管理者)所需要的基礎(chǔ)工具之一,。 Rational ClearCase 的特點Rational ClearCase(以下簡稱 ClearCase)是業(yè)界非常優(yōu)秀的軟件版本控制工具和軟件資源配置管理工具,,在軟件開發(fā)過程中,采用 ClearCase 進行版本控制能夠?qū)崿F(xiàn)真正意義的并行開發(fā),,提高開發(fā)效率,。同時 ClearCase 作為商業(yè)軟件,擁有不斷進度,,滿足開發(fā)人員各種需求的動力,;但也擁有大型商業(yè)軟件的弊端,對需求或者缺陷的響應(yīng)速度慢,;以及常被用戶抱怨的復(fù)雜,! 其他配置管理工具,目前最流行的,,是 Subversion,,這個工具是一個開源的產(chǎn)品,是為了降低公司成本,,同時滿足開發(fā)人員想利用更少的過程,,約束以及控制,,而采用簡化的配置管理解決方案。Subversion 的優(yōu)點在于簡單,,方便,;但 SVN 也有一些不足之處,因為 Subversion 只是版本管理工具,,對于配置管理的支持比較缺乏,,例如完善的版本樹,便捷的項目級代碼管理,,代碼集成的支持等,。 UCM 太好了,,所以選擇 ClearCase!統(tǒng)一變更管理(Unified Change Management, UCM)是第三代的配置管理解決方案,,是用于管理軟件開發(fā)從需求獲取到版本發(fā)布整個過程中所有變更的“最佳實踐”流程,。UCM 定義了一個可以立即用于軟件開發(fā)項目的基于活動的代碼變更管理模式。 UCM 模式中最有名的就是 ClearCase 和 ClearQuest 的集成,,ClearQuest 中的變更請求(Change Request)關(guān)聯(lián)到 ClearCase 中的某個 Activity 上,,然后開發(fā)人員修改代碼時,必須選擇本次修改和哪一個 Activity 做關(guān)聯(lián),,這樣變更請求 -> Activity -> 代碼,,就有了清晰的關(guān)聯(lián)。 圖 1. UCM 示意圖在互聯(lián)網(wǎng)行業(yè),,對于“速度”有著瘋狂的崇拜,,因此在變更的響應(yīng)時間上要求快!快,!再快一點,!文檔,記錄似乎變得都不太重要了,,滿足用戶需求是第一位的,,產(chǎn)品質(zhì)量不可降低,這就造成信息還是必須的,,這個時候,,UCM 模式帶來的好處就凸顯:代碼變更可審計,簡化故障分析的復(fù)雜度,,為缺陷預(yù)防提供詳細的信息,,提高回歸測試分析的有效性,于是文檔似乎不重要了……如果多的好處,,誰不想要呢,?而 ClearQuest 工具在流程管理上的強大,,讓用戶不得不選擇 ClearCase 作為配置管理工具;同時簡化文檔的作用,,而把注意力專注到完成項目,,完成用戶上,也是目前流行的“敏捷”理論所推崇的,。 ClearCase 新功能 -- 給互聯(lián)網(wǎng)行業(yè)的用戶帶來提高開發(fā)整體工作效率的機會如果單獨作為一個文件版本管理工具,,和其他工具,例如 SVN 做比較的話,,ClearCase 沒有任何的優(yōu)勢,。但 ClearCase 作為商業(yè)工具,,它有著令人心動的未來: ClearCase 新版本 CCRC 的出現(xiàn),讓很多使用 Java 為主要開發(fā)語言的互聯(lián)網(wǎng)用戶來說,,有了更多的選擇:作為一個新的 ClearCase 客戶端,,和開發(fā)相關(guān)的代碼配置管理工作都可以完成;免除了龐大的工具安裝,,只需要在 Eclipse 中安裝一個插件即可,;同時插件模式的使用,使得 Java 開發(fā)可以和配置管理工作無縫的集成,。 CCRC7.1 中,提供了對 Code Review 的支持,,通過一個簡單的“通過選擇器顯示更改集”,,就可以把 UCM 模式下,任何一個 Activity 所修改的代碼查詢出來,,可以方便的做查看,,以及版本比較。這種方式下,,可以對任何一個任務(wù)修改的代碼進行 Review,,甚至不是自己所參加的 UCM Project 都可以。 例如開發(fā)人員 A 需要 Review 另一個開發(fā) B 在某一個任務(wù)上修改的代碼,,他只需要知道開發(fā) B 的任務(wù) ID 即可:
(查看圖 2 大圖)
(查看圖 4 大圖) 當大家還在抱怨 Code Review 不好做,,不知道這部分代碼是和那個需求關(guān)聯(lián)時,這個方案會讓 Code Review 變得異常的簡單,。 從開發(fā)人員視角來看,,似乎效率就是如何更快的修改代碼,但從整個研發(fā)模式來看,,快速的集成,,快速的編譯,,快速的測試,這些都是效率提升的體現(xiàn),。 ClearCase 在這些方面,,結(jié)合其他工具,很容易實現(xiàn)相關(guān)功能,。而其他一般的把版本管理工具,,是無法在這些方面有所突破的,除非整個工具支持二次開發(fā),。 互聯(lián)網(wǎng)行業(yè)的 ClearCase 流很多人在接觸到 ClearCase 的時候,,無不為 "Stream" 這個詞傷透腦筋,它和分支有和何不同,?它有什么好處,?但隨之使用的深入,你會發(fā)現(xiàn),,無論你的研發(fā)模式如何調(diào)整,,它總是能適應(yīng)你的各種應(yīng)用。 舉例來說:在互聯(lián)網(wǎng)行業(yè),,一般都有兩種不同類型的項目,,項目 A 是一個由很多小的需求組成的項目,設(shè)計后發(fā)現(xiàn),,在代碼上分析彼此沒有任何沖突,,另一個項目 B 則是一個龐大的項目,需求錯綜復(fù)雜,,完成設(shè)計后,,代碼關(guān)系如同蜘蛛網(wǎng)一樣復(fù)雜,同一個文件會被多個需求所修改,,甚至有類會被重構(gòu),。 這兩種項目,從研發(fā)流程來說,,應(yīng)該選擇不同的流程,,項目 A 需要簡單,快速,,不需要很嚴格的評審,,以及變更管理,項目 B 需要嚴格的評審控制,,變更控制,,避免項目失控。從配置管理策略來說,也應(yīng)該是適用不同的策略,,項目 A 可以把項目中的開發(fā)活動統(tǒng)統(tǒng)隔離開,,項目的各個任務(wù)之間不受影響,用最快的速度完成各自的開發(fā),,各自的測試,,代碼集成后也不會有太多沖突,和集成的問題,,因此可以采用集成流 + 開發(fā)流的模式,;而項目 B 需要盡能的集中,盡早發(fā)現(xiàn)不一致,,把集成的問題第一時間發(fā)現(xiàn),,第一時間解決,避免在項目后期陷入痛苦的集成工作,,因此需要每天做集成和編譯,,甚至每天做自動測試,回歸測試,,因此可以采用復(fù)用集成流的模式,,所有開發(fā)都復(fù)用一個項目流,,代碼的改動隨時會被發(fā)現(xiàn),,被解決。 雖然單流模式可能會讓項目很“痛苦”,,但和集成的痛苦相比,,可能是打針和做外科手術(shù)的區(qū)別。從對持續(xù)集成不太深入的了解分析,,持續(xù)集成就是要讓變化盡早的被發(fā)現(xiàn),,被解決,而復(fù)用流模式,,則是持續(xù)集成的最極端的場景之一:變化隨時被項目組的其他人員感知,,沖突隨時被解決,否則開發(fā)是無法進行下去的,,如果加上自動化的集成,,自動化的測試,這就是一個典型的項目內(nèi)部持續(xù)集成應(yīng)用,。 這兩種模式也有各自的優(yōu)缺點: 單流模式優(yōu)缺點:
多流模式優(yōu)缺點:
在不同的情況,應(yīng)該根據(jù)自己的實際情況選擇適合自己的模式,,匯總來說,,單流和多流模式適合的使用場景如下:
當然流模式的好處,,對于互聯(lián)網(wǎng)行業(yè)不僅僅在開發(fā)流和集成流的區(qū)別,,還有 Rebase,基線,,以及對于產(chǎn)品模式和項目模式的同時支持等等,。總的來說,,“Stream”就是一個大草原,,你可以按照自己的目標和具體需求,規(guī)劃自己的道路,。 對其他軟件研發(fā)相關(guān)工作的支持郭士納在《誰說大象可以跳舞,?》中描述 IBM 和其他公司的不同之處,就是在于提供完整的解決方案,,而不僅僅是某個環(huán)節(jié)的最佳實踐,。因此我們可以看 IBM Rational 在軟件公司的全套應(yīng)用:需求管理,架構(gòu)分析,,開發(fā)設(shè)計,,缺陷管理,持續(xù)集成,,自動化測試,,甚至是性能測試,代碼走查…… 當 ClearCase 和相關(guān)工具結(jié)合起來,,你會看到一個完整的研發(fā)工具平臺,,可以滿足任何研發(fā)環(huán)節(jié)的應(yīng)用。雖然這些工具都是商用工具,,有的還比較復(fù)雜,,但隨著時間的發(fā)展,,相信 IBM Rational 會逐步整合出一個簡單有效,統(tǒng)一的研發(fā)平臺,,再配合成熟的,,有技能的人員,加上完善的流程規(guī)范:穩(wěn)定,,而且平衡的質(zhì)量三角形就會呈現(xiàn)在你的面前,。 圖 5. 質(zhì)量三角形例如目前公司在試點敏捷方法,其中對于持續(xù)集成有工具上的要求,,我們采用開源的持續(xù)集成工具 CruiseControl 管理持續(xù)集成的策略,,但我們的代碼還是保留在 ClearCase 的 Stream 中。CruiseControl 可以自動的獲取 ClearCase 的代碼變更,,然后執(zhí)行編譯,,測試,部署等等活動,。 如果沒有 ClearCase,,會怎樣?配置管理工具是任何軟件公司都必須的,,只是需求不同,,造成功能不同而已。 因此沒有了 ClearCase,,你也需要選擇另一個配置管理工具,,例如 SVN,或者自己開發(fā)一個的配置管理工具,。 但有兩個問題需要在決策前考慮:工具的開發(fā)是否是你的主業(yè),?你做的會比商業(yè)工具更好嗎?只是如果選擇了商業(yè)工具,,那么商業(yè)工具應(yīng)對變化緩慢的問題,在這個速度至上的時代,,的確是需要工具廠商認真對待的,! 不得不說的 ClearCase 缺點感覺很復(fù)雜,需要輕量級的應(yīng)用,,提高用戶易用性 不知道是否是因為出身名門的緣故,,IBM 產(chǎn)品給人的印象就是龐大,復(fù)雜,。在 ClearCase 這個產(chǎn)品中,,雖然有很多很多好的功能,但對于不同的人來說,,也許甲只用兩個功能,,乙用另外三個功能,但兩人都需要把 ClearCase 安裝完整,同時在使用的時候,,由于功能的龐雜,,難免造成用戶抱怨:我需要的功能很簡單,但為什么工具要規(guī)定我必須要這么做,,太復(fù)雜了,! 如果 ClearCase 能針對不同的人,提供不同的版本,,或者說針對 Eclipse 的不同插件,,例如普通開發(fā),就是版本管理,;技術(shù)負責人,,需要 code review,編譯集成等工能插件,;集成人員需要提交,,Rebase 等功能插件……這樣可以針對不同人員的需求,提供輕量級的功能應(yīng)用,,同時易用性又可以更加貼近不同的用戶,,做的更好,這樣的產(chǎn)品是否會有更多人喜歡,? 互聯(lián)網(wǎng)是一個全世界都在關(guān)注的領(lǐng)域,但從 IBM Rational 的產(chǎn)品來看,,似乎沒有完全跟上這樣一個步伐,。舉一個簡單的例子,我們是使用 Eclipse Java EE 的版本,,在 Eclipse 中有一個重構(gòu)(Refactor)功能,,當我們在使用這個功能出現(xiàn)問題時,ClearCase 的開發(fā)人員和技術(shù)支持人員,,似乎都不了解這個功能,,這樣就無法給用戶提供及時的解決方案,用戶的抱怨就多了,,滿意度自然就降低了,。 當你面對一個選擇:一個功能弱小,滿足當前需求,,但不會出問題的系統(tǒng),,和一個功能強大,滿足未來五年需求,,但經(jīng)常有各式各樣,,大大小小問題出現(xiàn)的系統(tǒng),,決策者會選擇哪個呢? 一些看的長遠的公司應(yīng)該會選擇后者,,但這樣的選擇是有前提條件的:出現(xiàn)問題沒關(guān)系,,但解決問題的速度要快!就如同當下流行的一個比喻:在汽車飛馳的狀態(tài)下,,如果輪胎出現(xiàn)了問題,,要在不減速的情況下,更換輪胎,,只有這樣才能保持對競爭對手的壓力,,保證自己的市場份額。 從 ClearCase 在公司的實際使用來看,,我們選擇了后一個方案,,但出現(xiàn)問題后,解決的速度令人不滿意,。開發(fā)人員都知道,,作為一個配置管理工具,如果出現(xiàn)一個重大問題,,也許是工具問題,,也許是方案問題,也許是執(zhí)行問題,,就會意味開發(fā)人員無法正常工作,,甚至造成代碼出現(xiàn)問題。作為向服務(wù)轉(zhuǎn)型的公司代表,,IBM 應(yīng)該在這個方面做出表率:無論問題是由什么原因造成的,,IBM 應(yīng)該協(xié)助用戶去分析問題,解決問題,,只有這樣,,才能贏得用戶的信任,才能和用戶一同成長,。 總結(jié)ClearCase 無數(shù)配置管理中的一種,,它有著令人著迷的功能,也擁有很多讓開發(fā)人員抱怨的弊端,,作為配置管理員,或者管理研發(fā)工具的人員,,這些都需要了解,,然后根據(jù)自己公司的實際狀況,以及暴露出來的問題綜合考慮,,選擇真正適合自己的工具,。 無論選擇那種配置管理工具,,在工具切換時一定要做好充足的,甚至過分的準備,,包括實施前的介紹溝通,,實施中的培訓(xùn),實施后的技術(shù)支持,,這樣才能得到良好的回報,。 參考資料學(xué)習(xí)
|
|
來自: 旭龍 > 《RationalClearCase》