基于源代码持续集成的研发项目管理应用研究
2017-04-15孙恒一段琳
孙恒一++段琳
摘要:传统的软件开发项目管理方式在人力资源受限、外包开发模式下逐步暴露出诸多问题。企业通过建立基于持续集成的研发项目管理模式,能够实现项目从外包商管理到源代码管理的转变,实现软件系统交付质量提升,实现软件开发流程的高度可控,基于源代码持续集成的研发项目管理方式必将成为企业精细化管理的有益补充。
关键词:持续集成 项目管理 源代码管理
中图分类号: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 源代码审计
信息安全工程的实践证明,在系统上线前进行源代码的安全审计,可以消除大量安全风险和漏洞。基于源代码持续集成平台,可以实现系统源代码的安全风险审计,直接在源代码迭代过程中进行代码漏洞扫描和修复,大量减轻了系统发布后再进行外部扫描和安全整改的工作量。
通过源代码审计能够有效提升软件产品后期运维的效率和质量,同时为软件产品的升级改造提供有力支撑。
借助源代码的审计的应用,云南电网信息中心逐步培养一批深入了解软件产品开发细节、增强软件项目管理手段的专家,为信息化项目人才建设贡献力量。
4 结语
基于源代码持续集成的研发项目管理必将成为云南電网精细化管理的有益补充。其基于持续集成的软件研发特性使得源代码作为项目管理的重要接入点成为可能。
参考文献
[1]Jez Humble, David Farley.持续交付-发布可靠软件的系统方法[M].人民邮电出版社,2011:121-126.
[2]董越.软件集成策略:如何有效地提升质量[M].电子工业出版社,2013,183-190.