孫恒一++段琳
摘要:傳統(tǒng)的軟件開發(fā)項目管理方式在人力資源受限、外包開發(fā)模式下逐步暴露出諸多問題。企業(yè)通過建立基于持續(xù)集成的研發(fā)項目管理模式,能夠?qū)崿F(xiàn)項目從外包商管理到源代碼管理的轉(zhuǎn)變,實現(xiàn)軟件系統(tǒng)交付質(zhì)量提升,實現(xiàn)軟件開發(fā)流程的高度可控,基于源代碼持續(xù)集成的研發(fā)項目管理方式必將成為企業(yè)精細(xì)化管理的有益補(bǔ)充。
關(guān)鍵詞:持續(xù)集成 項目管理 源代碼管理
中圖分類號:TP311.52 文獻(xiàn)標(biāo)識碼: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
信息系統(tǒng)研發(fā)項目的主要任務(wù)是完成系統(tǒng)需求、設(shè)計、開發(fā)、測試、發(fā)布等一系列工作,支撐信息系統(tǒng)與業(yè)務(wù)流程的融合貫通。當(dāng)前,云南電網(wǎng)有限責(zé)任公司(以下簡稱云南電網(wǎng))正處于信息化建設(shè)快速發(fā)展時期,各類信息系統(tǒng)的建設(shè)需求涌現(xiàn),系統(tǒng)研發(fā)類項目也在不斷增加。
按照公司“管理精益、服務(wù)精細(xì)、業(yè)績優(yōu)秀、品牌優(yōu)異”的戰(zhàn)略目標(biāo),信息系統(tǒng)的建設(shè)在借鑒先進(jìn)管理理念、支持業(yè)務(wù)實現(xiàn)精益管理的同時,也要實現(xiàn)信息系統(tǒng)建設(shè)項目本身的精細(xì)化管理。隨著云南電網(wǎng)項目管理向精益化轉(zhuǎn)變,系統(tǒng)建設(shè)的項目管理規(guī)范、技術(shù)標(biāo)準(zhǔn)、風(fēng)險防控體系等逐步完善和深入、以及系統(tǒng)建設(shè)完成后自主運維的要求不斷加強(qiáng),在當(dāng)前云南電網(wǎng)人力資源有限的剛性制約下,信息系統(tǒng)研發(fā)項目的管理面臨新的挑戰(zhàn)。信息化專業(yè)人員深入系統(tǒng)的整個開發(fā)和迭代過程是研發(fā)項目精細(xì)化管理的根本要求。源代碼持續(xù)集成作為一種軟件工程實踐,其精細(xì)化的軟件開發(fā)方式十分滿足云南電網(wǎng)信息系統(tǒng)研發(fā)項目精細(xì)化管理的發(fā)展方向。
1 源代碼管理現(xiàn)狀分析
1.1 現(xiàn)狀
當(dāng)前,云南電網(wǎng)信息中心信息系統(tǒng)項目的研發(fā)工作均是通過項目外包的方式進(jìn)行的,項目核心資產(chǎn)-源代碼由外包廠商負(fù)責(zé)管理,僅項目驗收時作為交付物提交給信息中心,源代碼提交質(zhì)量、版本無從考證。這種只關(guān)注項目流程和交付進(jìn)度,一定程度上忽略研發(fā)項目內(nèi)部管理的方式勢必造成諸多問題。
1.2 問題
問題集中表現(xiàn)為如下幾個方面:
(1)云南電網(wǎng)信息中心無法對項目驗收時外包廠商提交的代碼進(jìn)行驗證,編譯、部署、運行無從下手。
(2)研發(fā)過程中的源代碼及系統(tǒng)版本管控困難,無法從每次版本更新中獲取最新的項目信息。
(3)盡管進(jìn)行了安全測試等檢測步驟,但是仍然不了解源代碼內(nèi)部運行情況,使得后期運維困難、風(fēng)險管控薄弱。
(4)無法從項目源代碼的角度進(jìn)行后期運維或升級改造的評估。
總之,云南電網(wǎng)信息中心在項目管控的核心缺失點在于對項目源代碼管控,如何管控源代碼成為解決以上問題的關(guān)鍵。
2 源代碼持續(xù)集成
持續(xù)集成是一種軟件開發(fā)實踐,即軟件開發(fā)團(tuán)隊經(jīng)常性的集成源代碼。一般的要求每個項目成員每天至少集成一次,也就意味著每天可能會發(fā)生多次集成。每次集成都通過自動化的構(gòu)建(包括編譯、發(fā)布、自動化測試)來驗證,從而盡早地發(fā)現(xiàn)集成錯誤。持續(xù)集成的核心管理資產(chǎn)是項目源代碼。
2.1 技術(shù)特點
通過源代碼持續(xù)集成,能夠?qū)崿F(xiàn)以下功能:
(1)通過多種版本控制類軟件(如Subversion,Git,CVS等等),實現(xiàn)各種類型的源代碼與持續(xù)集成系統(tǒng)的關(guān)聯(lián),可以完成持續(xù)集成系統(tǒng)對源代碼的引用。
(2)通過持續(xù)集成完成源代碼構(gòu)建、部署及發(fā)布,確保項目源代碼實時處于可用狀態(tài)。這一點在項目交付之后尤為重要,外包廠商提供的交付物后,云南電網(wǎng)信息中心項目負(fù)責(zé)人通過持續(xù)集成完成交付物驗證,確保項目源代碼可用。
(3)通過源代碼持續(xù)集成與代碼審查系統(tǒng)的融合,實現(xiàn)代碼查看及評審,云南電網(wǎng)信息中心技術(shù)專家通過源代碼評審工具完成代碼評估及驗證。
2.2 平臺工具簡介
云南電網(wǎng)信息中心應(yīng)用的源代碼管控平臺是以源代碼為基礎(chǔ),建立持續(xù)構(gòu)建、部署、發(fā)布、測試的流程及實現(xiàn)機(jī)制,通過代碼評審系統(tǒng)Fisheye + Crucible完成代碼查看及審核,通過持續(xù)集成系統(tǒng)Bamboo完成代碼備份及保存。
如圖1的平臺工具實現(xiàn)原理圖所示,在與持續(xù)集成系統(tǒng)Bamboo綁定項目源代碼后,軟件研發(fā)人員提交代碼變更至版本控制庫,持續(xù)集成系統(tǒng)Bamboo觸發(fā)構(gòu)建、部署、自動化測試等任務(wù),完成對源代碼的審核并反饋;反饋機(jī)制中加入代碼評審系統(tǒng)Fisheye+ Crucible,為技術(shù)專家提供代碼評審工具。
3 項目管理應(yīng)用實踐
通過搭建云南電網(wǎng)公司的源代碼持續(xù)集成平臺,建立統(tǒng)一的源代碼庫,解決公司信息系統(tǒng)建設(shè)以及后期運維、升級改造、測試發(fā)布過程中的管理問題,建立健全基于源代碼持續(xù)集成的研發(fā)項目管理體系。通過打造統(tǒng)一的管理模式,確保不同系統(tǒng)、不同開發(fā)廠商按照公司的管理要求開展項目建設(shè)和系統(tǒng)研發(fā),實現(xiàn)項目從外包商管理到源代碼管理的 轉(zhuǎn)變。以統(tǒng)一、規(guī)范和精細(xì)的管理流程,確保系統(tǒng)交付質(zhì)量,同時使公司信息人員深入技術(shù)細(xì)節(jié),保障信息系統(tǒng)的建設(shè)自主可控。
3.1 項目過程管理
3.1.1 質(zhì)量管理
由于源代碼是軟件研發(fā)項目的核心資產(chǎn),有效管控源代碼質(zhì)量能夠提升項目建設(shè)質(zhì)量,從根本上保證項目安全穩(wěn)定運行。
3.1.2 進(jìn)度管理
管控源代碼開發(fā)進(jìn)度即從根本上管控項目進(jìn)度,為云南電網(wǎng)信息中心項目進(jìn)度管理提供最有力的支撐工具。
3.1.3 問題管理
通過對源代碼的管控實現(xiàn)項目問題閉環(huán)管理,為項目立項、評審、開發(fā)、時運行、運維全過程管理注入更多管理元素,提升管理效果和力度。
3.2 代碼審批及版本變更機(jī)制
代碼審批的實現(xiàn)要求每次代碼更新都必須經(jīng)過同行或者技術(shù)管理者審閱,也可根據(jù)項目實際情況進(jìn)行部分核心代碼審批。如圖2所示代碼審批流程,提交審批后,根據(jù)評審意見進(jìn)行修改或者直接完成評審進(jìn)入持續(xù)集成。代碼審批使得團(tuán)隊逐步建立良好的代碼開發(fā)文化,提升代碼質(zhì)量。
相應(yīng)的,代碼審批后可以根據(jù)評審結(jié)果運行一次持續(xù)集成任務(wù)完成構(gòu)建、部署及測試,所有任務(wù)通過后,形成可發(fā)布版本進(jìn)而保存、備份源代碼及項目資料。
3.3 源代碼審計
信息安全工程的實踐證明,在系統(tǒng)上線前進(jìn)行源代碼的安全審計,可以消除大量安全風(fēng)險和漏洞。基于源代碼持續(xù)集成平臺,可以實現(xiàn)系統(tǒng)源代碼的安全風(fēng)險審計,直接在源代碼迭代過程中進(jìn)行代碼漏洞掃描和修復(fù),大量減輕了系統(tǒng)發(fā)布后再進(jìn)行外部掃描和安全整改的工作量。
通過源代碼審計能夠有效提升軟件產(chǎn)品后期運維的效率和質(zhì)量,同時為軟件產(chǎn)品的升級改造提供有力支撐。
借助源代碼的審計的應(yīng)用,云南電網(wǎng)信息中心逐步培養(yǎng)一批深入了解軟件產(chǎn)品開發(fā)細(xì)節(jié)、增強(qiáng)軟件項目管理手段的專家,為信息化項目人才建設(shè)貢獻(xiàn)力量。
4 結(jié)語
基于源代碼持續(xù)集成的研發(fā)項目管理必將成為云南電網(wǎng)精細(xì)化管理的有益補(bǔ)充。其基于持續(xù)集成的軟件研發(fā)特性使得源代碼作為項目管理的重要接入點成為可能。
參考文獻(xiàn)
[1]Jez Humble, David Farley.持續(xù)交付-發(fā)布可靠軟件的系統(tǒng)方法[M].人民郵電出版社,2011:121-126.
[2]董越.軟件集成策略:如何有效地提升質(zhì)量[M].電子工業(yè)出版社,2013,183-190.