(3) 持續集成
持續集成能夠把終的一次大規模的集成調試過程分散到項目開發時間表的每一周、每、甚至每個小時。讓項目中的各個人員都能夠隨時掌握當前的整體進度,并迅速發現集成過程中出現的問題并進行解決[1]。
開發小組應制定持續集成的制度,一般情況下每日構建一次,可以利用Ant等構建工具進行Java應用程序的構建。小組成員應在每個功能開發完成后,及時向版本控制系統(如CVS)提交代碼,而且不應該向版本控制系統提交有問題(編譯通不過)的代碼。
每日構建、持續集成,讓項目進度跟蹤工作更加容易。當項目小組每天重新編譯系統時,已完成與未完成的功能清楚可見,小組成員能夠簡單地從軟件的表現知道距離整體完成還有多遠。
4.新技術引入
技術創新是一種具有探索性、創造性的技術經濟活動。在開發過程中引入新技術,不可避免地要遇到各種風險。通過T形軟件開發、充分論證、多階段評審、同行經驗等措施可降低新技術風險。
(1) T形軟件開發
在項目開發早期,開發小組應該建立系統的架構,解決關鍵技術難題、開發系統的基礎構件,并對系統所需要應用的技術做深度探索。例如:基于JavaEE5構建聯網售票系統,涉及到分布式事務處理、海量數據存儲、異構平臺互連等關鍵問題,應該優先處理這些問題;對開發所涉及到的EJB3、JSF、JBoss Seam、Eclipse RCP等技術,要做深度探索。
圖1 在第一階段以“T”形開發系統骨架[2]
越是技術復雜度高的項目,越應該早地處理技術難題。如果在項目開發的中期或后期才發現架構有問題或是關鍵技術難題不能解決,則為時已晚。
(2) 充分論證
新技術開發是探索性很強的工作,潛在著許多失敗的風險。在可行性分析階段,要廣泛搜集相關信息,設計多種可行方案,進行充分論證。在制定決策時,情報的數量和質量致關重要。掌握的信息越多、越準確,才能作出正確的的決策,項目失敗的風險也相對減少;反之,承擔的風險會增大。
(3) 同行經驗
針對新技術,由于沒有經驗可借鑒,因此在探索過程中要充分利用互聯網,通過搜索同行經驗,往往事半功倍。要充分利用世界日益平坦化的優勢,對于不能盡快解決的問題,可以先放一放,可能過不了幾天,網上有相類似問題的解決方案了。
5.技術兼容性風險
硬件產品之間、系統軟件(操作系統、中間件、數據庫管理系統)與主機設備之間、系統軟件之間、應用軟件與系統軟件之間以及應用軟件之間,都可能存在兼容性問題。往往系統集成的項目越復雜,兼容性問題越有可能存在。
(1) 設計先行
在做系統的總體設計方案時,務必把好相關產品的選型關,確保網絡、主機、系統軟件與應用軟件之間不要存在較大的技術兼容性問題。在網絡平臺建設方案中,明確相關設備的技術參數和配置要求。
(2) 售前產品測試
在做項目招投標工作時,要求投標方在售前提供產品兼容性測試,以避免在項目實施過程中才暴露技術兼容性問題。涉及應用軟件開發的集成項目,要在開發工作的早期,做技術兼容性測試,以避免在項目開發后期才暴露技術兼容性問題。
例如,我們在開發深圳市汽車客運站售票及站務聯網調度系統時,為了確保技術兼容,在做硬件招標時要求小型機設備廠商提供售前技術兼容性測試工作,并將測試結果做為評標指標。在深圳市軟件測試中心對IBM、SUN、HP三家公司提供的小型機進行測試時,暴露了許多應用軟件、應用服務器、數據庫和操作系統之間的技術兼容性問題,如果這些問題在系統實施時才暴露或處理,勢必會拖延項目進度。