MILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">作者簡介:
我一哥們,國內最好的軟件開發設計師,是頂級的配制管理高手,我收藏,給大家看看,高手如何做配制管理
李文華,軟件架構師,現就職于國內某大型軟件公司,具有豐富的軟件開發管理經驗,個人對項目管理、軟件工程、軟件過程改進、軟件建模及模型驅動開發有濃厚的興趣。
關鍵字:
日構建、持續集成、項目管理
XP方法中把日構建列為軟件開發管理中的最佳實踐;敏捷軟件開發中也把持續集成當作是保證軟件項目成功的一個原則。無獨有偶,2003中國軟件技術大會,上海微創軟件公司技術總監蔡培講述了微軟公司的軟件開發管理,演講中提到微軟軟件開發管理中的一個重要實踐,也就是日構建。(日構建和持續集成本質上是一樣的,只是前者的頻度是每日一次,而后者則并未限定頻度。為了便于講述,本文中不再區分這兩個概念。)
關于日構建的作用和意義,書籍和網絡上已有相關文章介紹,本文不再贅述。本文假設讀者已經充分認識到日構建或者持續集成的好處,并且正打算把它應用到企業的開發管理流程中去,但是對于如何做日構建和持續集成,無論從技術上還是管理上還比較迷茫,那么這里將務實地與大家交流一下相關的一些的經驗。
1.1. 日構建中的要素
歸納一下,日構建中有如下幾項要素:
1.1.1 版本管理
所有參與構建的開發工件都應該納入版本管理。有了版本管理,才能為了日構建穩定而可靠的輸入。版本管理工具要為日構建提供的支持僅需包括一個命令行客戶端工具。
1.1.2 流程自動化
日構建的處理復雜性依賴項目的大小以及加入的實際過程數量和內容而不同,但是不管怎樣,努力達到流程的全部自動化是日構建的一個要求。流程的自動化有利于提高日構建的運行效率,減少人工干預引入的錯誤可能。
1.1.3 為日構建定制的管理制度
日構建完整的流程不僅只涉及到開發人員,實際還涉及到需求人員、設計人員、測試人、員、項目經理等多個角色,是一天中各方工作成果的集中體現。如此重要的活動,并涉及到多個責任主體,必然也要制定相應的管理制度來規范各個角色的行為,以便保障該項重要活動的有序、有效進行。
1.2. 日構建的一些策略
1.2.1代碼統一管理
一般來說,只要軟件開發中全部使用了版本管理工具來管理開發輸出的工件,就具備了日構建的該項要素。實際情況中,無論采用微軟的VSS,Rational的ClearCase,還是開源的CVS,都可以通過特定的客戶端工具,以命令行的形式來獲得所需項目的最新版本(或者特定版本)的工件來進行構建。(這里之所以說是工件,而不特指代碼,是因為實際構建中的元素不僅有代碼,還可能包括其他一些參與編譯或者運行的工件,比如說元數據。)
日構建雖然是一個軟件企業的日常開發管理行為,但是它一般是以項目作為構建基礎的。不同的項目盡管不建議,但是還是允許采用不同的日構建工具、流程。
一般來說,我們會是先有版本管理工具,再有日構建的相應工具,而且,可能存在多個項目所使用的版本管理工具不一致。比如一個企業可能同時采用VB和Java開發不同的項目。那么采用VB的項目,基于與VirtualStudio的集成,可能更多選擇了VSS作為版本管理;而采用Java開發的項目則可能選擇CVS作為版本管理。對于一個軟件企業來講,為不同的項目選擇不同的配置管理工具可能是個無奈之舉,但是在選擇配置管理工具的時候,該工具是否能夠很好支持日構建應該成為一個考慮項。
下表給出了可以成功構造日構建系統的常見模式。
版本管理工具 |
日構建腳本工具 | |
C++/VB |
VSS |
Ant/Make |
Java/C++ |
CVS |
Ant/Make |
C++/VB/Java |
ClearCase |
Ant/ClearMake/Make |
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/
文章來源于領測軟件測試網 http://www.kjueaiud.com/