孫恒一++段琳


摘要:傳統的軟件開發項目管理方式在人力資源受限、外包開發模式下逐步暴露出諸多問題。企業通過建立基于持續集成的研發項目管理模式,能夠實現項目從外包商管理到源代碼管理的轉變,實現軟件系統交付質量提升,實現軟件開發流程的高度可控,基于源代碼持續集成的研發項目管理方式必將成為企業精細化管理的有益補充。
關鍵詞:持續集成 項目管理 源代碼管理
中圖分類號:TP311.52 文獻標識碼:A 文章編號:1007-9416(2016)12-0066-01
Abstract:Many problems have been gradually exposed when human resources is limited and software development via outsourcing way in the mode of traditional software development project management. Through the establishment of R & D project management model based on continuous integration, enterprises can make the successful transition from project outsourcing management to source code management, can improve the quality of delivery, can achieve a high degree of controllability of the software development process. The way of R&D Project Management based on source code integration will become the beneficial supplement for enterprise's fine management.
Key Words:continuous integration; project management; source code management
信息系統研發項目的主要任務是完成系統需求、設計、開發、測試、發布等一系列工作,支撐信息系統與業務流程的融合貫通。當前,云南電網有限責任公司(以下簡稱云南電網)正處于信息化建設快速發展時期,各類信息系統的建設需求涌現,系統研發類項目也在不斷增加。
按照公司“管理精益、服務精細、業績優秀、品牌優異”的戰略目標,信息系統的建設在借鑒先進管理理念、支持業務實現精益管理的同時,也要實現信息系統建設項目本身的精細化管理。隨著云南電網項目管理向精益化轉變,系統建設的項目管理規范、技術標準、風險防控體系等逐步完善和深入、以及系統建設完成后自主運維的要求不斷加強,在當前云南電網人力資源有限的剛性制約下,信息系統研發項目的管理面臨新的挑戰。信息化專業人員深入系統的整個開發和迭代過程是研發項目精細化管理的根本要求。源代碼持續集成作為一種軟件工程實踐,其精細化的軟件開發方式十分滿足云南電網信息系統研發項目精細化管理的發展方向。
1 源代碼管理現狀分析
1.1 現狀
當前,云南電網信息中心信息系統項目的研發工作均是通過項目外包的方式進行的,項目核心資產-源代碼由外包廠商負責管理,僅項目驗收時作為交付物提交給信息中心,源代碼提交質量、版本無從考證。這種只關注項目流程和交付進度,一定程度上忽略研發項目內部管理的方式勢必造成諸多問題。
1.2 問題
問題集中表現為如下幾個方面:
(1)云南電網信息中心無法對項目驗收時外包廠商提交的代碼進行驗證,編譯、部署、運行無從下手。
(2)研發過程中的源代碼及系統版本管控困難,無法從每次版本更新中獲取最新的項目信息。
(3)盡管進行了安全測試等檢測步驟,但是仍然不了解源代碼內部運行情況,使得后期運維困難、風險管控薄弱。
(4)無法從項目源代碼的角度進行后期運維或升級改造的評估。
總之,云南電網信息中心在項目管控的核心缺失點在于對項目源代碼管控,如何管控源代碼成為解決以上問題的關鍵。
2 源代碼持續集成
持續集成是一種軟件開發實踐,即軟件開發團隊經常性的集成源代碼。一般的要求每個項目成員每天至少集成一次,也就意味著每天可能會發生多次集成。每次集成都通過自動化的構建(包括編譯、發布、自動化測試)來驗證,從而盡早地發現集成錯誤。持續集成的核心管理資產是項目源代碼。
2.1 技術特點
通過源代碼持續集成,能夠實現以下功能:
(1)通過多種版本控制類軟件(如Subversion,Git,CVS等等),實現各種類型的源代碼與持續集成系統的關聯,可以完成持續集成系統對源代碼的引用。
(2)通過持續集成完成源代碼構建、部署及發布,確保項目源代碼實時處于可用狀態。這一點在項目交付之后尤為重要,外包廠商提供的交付物后,云南電網信息中心項目負責人通過持續集成完成交付物驗證,確保項目源代碼可用。
(3)通過源代碼持續集成與代碼審查系統的融合,實現代碼查看及評審,云南電網信息中心技術專家通過源代碼評審工具完成代碼評估及驗證。
2.2 平臺工具簡介
云南電網信息中心應用的源代碼管控平臺是以源代碼為基礎,建立持續構建、部署、發布、測試的流程及實現機制,通過代碼評審系統Fisheye + Crucible完成代碼查看及審核,通過持續集成系統Bamboo完成代碼備份及保存。
如圖1的平臺工具實現原理圖所示,在與持續集成系統Bamboo綁定項目源代碼后,軟件研發人員提交代碼變更至版本控制庫,持續集成系統Bamboo觸發構建、部署、自動化測試等任務,完成對源代碼的審核并反饋;反饋機制中加入代碼評審系統Fisheye+ Crucible,為技術專家提供代碼評審工具。
3 項目管理應用實踐
通過搭建云南電網公司的源代碼持續集成平臺,建立統一的源代碼庫,解決公司信息系統建設以及后期運維、升級改造、測試發布過程中的管理問題,建立健全基于源代碼持續集成的研發項目管理體系。通過打造統一的管理模式,確保不同系統、不同開發廠商按照公司的管理要求開展項目建設和系統研發,實現項目從外包商管理到源代碼管理的 轉變。以統一、規范和精細的管理流程,確保系統交付質量,同時使公司信息人員深入技術細節,保障信息系統的建設自主可控。
3.1 項目過程管理
3.1.1 質量管理
由于源代碼是軟件研發項目的核心資產,有效管控源代碼質量能夠提升項目建設質量,從根本上保證項目安全穩定運行。
3.1.2 進度管理
管控源代碼開發進度即從根本上管控項目進度,為云南電網信息中心項目進度管理提供最有力的支撐工具。
3.1.3 問題管理
通過對源代碼的管控實現項目問題閉環管理,為項目立項、評審、開發、時運行、運維全過程管理注入更多管理元素,提升管理效果和力度。
3.2 代碼審批及版本變更機制
代碼審批的實現要求每次代碼更新都必須經過同行或者技術管理者審閱,也可根據項目實際情況進行部分核心代碼審批。如圖2所示代碼審批流程,提交審批后,根據評審意見進行修改或者直接完成評審進入持續集成。代碼審批使得團隊逐步建立良好的代碼開發文化,提升代碼質量。
相應的,代碼審批后可以根據評審結果運行一次持續集成任務完成構建、部署及測試,所有任務通過后,形成可發布版本進而保存、備份源代碼及項目資料。
3.3 源代碼審計
信息安全工程的實踐證明,在系統上線前進行源代碼的安全審計,可以消除大量安全風險和漏洞?;谠创a持續集成平臺,可以實現系統源代碼的安全風險審計,直接在源代碼迭代過程中進行代碼漏洞掃描和修復,大量減輕了系統發布后再進行外部掃描和安全整改的工作量。
通過源代碼審計能夠有效提升軟件產品后期運維的效率和質量,同時為軟件產品的升級改造提供有力支撐。
借助源代碼的審計的應用,云南電網信息中心逐步培養一批深入了解軟件產品開發細節、增強軟件項目管理手段的專家,為信息化項目人才建設貢獻力量。
4 結語
基于源代碼持續集成的研發項目管理必將成為云南電網精細化管理的有益補充。其基于持續集成的軟件研發特性使得源代碼作為項目管理的重要接入點成為可能。
參考文獻
[1]Jez Humble, David Farley.持續交付-發布可靠軟件的系統方法[M].人民郵電出版社,2011:121-126.
[2]董越.軟件集成策略:如何有效地提升質量[M].電子工業出版社,2013,183-190.