一、引言
软件项目经理不但要用管理知识管理整个项目.还要为他们的团队选择更好的技术实践在软件开发的众多技术实践中持续集成已经被越来越多的团队所采用持续集成对于软件项目管理的各个领域的管理有着积极的作用
持续集成的使用会给开发尉队的管理带来很多的好处.做为管理者的项目经理以及团队成员都可以从中受益
二、软件项目管理
1、什么是持续集成
“持续集成”起源于极限编程开发.是它的12个基本原则之一”持续集成”是一种软件开发实践.它要求开发小组的每个成员频繁的集成他们的工作成果.这个频度通常是至少每天一次有时甚至每天多次开发团队的成员频繁的整合他们之问的工作.这种整合不是简单的组装软件每次的集成通过一个包含测试的构建去尽快的探测潜在的错误.保证软件现有的功能不被破坏,自动分析现有代码的状态f有无重复逻辑.代码的复杂度等)并发布相关的报告。通过快速反馈,开发人员可以了解软件集成的情况.对不成功的集成进行快速的修改.从而提高软件开发的效率和质量
2、什么是软件项目管理
软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对人员(People)、产品(ProdU(2t)、过程(Protess)和项目fProject)进行分析和管理的活动。
为使软件项目开发获得成功.关键问题是必须对软件项目的工作范围、可能风险、需要资源(人、硬件/软件)、要实现的任务、经历的里程碑、花费工作量(成本)、进度安排等做到心中有数.掌握整个软件的开发进程
三、持续集成对软件项目管理的作用
l、对项目目标管理的作用
软件项目的目标是开发出可运行的、客户满意的软件系统持续集成有统一的代码库。要求开发人员定期地、不断地向代码库提交代码。新近提交的代码会经过编译与测试.与代码库中旧有的代码相整合,形成安全稳定运行的代码库.既软件系统。能够在最快、最短的时问内形成结果代码.逐步实现项目目标。在最短的时间内得到解决。
2、对项目时间管理的作用
生产力的发展过程是不断采用物化劳动取代人自身的劳动的过程,是不断自动化的过程。开发的构建过程中如果大量的采取手动过程不仅降低了团队的生产率.更严重的是它将许多不确定的因素引入到产品的构建过程.这使得发现以及解决问题变得异常困难。这样会更加地降低了团队的开发效率。持续集成的构建都是使用构建工具自动化地进行的通过使用持续集成工具将构建过程自动化.便于分析并找出问题。大大提高了团队的开发效率。
3、对项目质量管理的作用
持续集成过程要求编程人员事先编写好很多的测试用例.在代码的提交过程中就对代码进行测试.这样的及早测试能够最快速地发现软件代码中的错误和缺陷.及时修改,从而提高软件的质量。
4、对项目风险管理的作用
持续集成过程通常在开发人员提交代码后开始.服务器自动更新代码.编译,运行单元测试、功能测试、集成测试,进行部署这个持续集成的过程可以帮助开发人员快速发现并解决问题(编译失败,测试失败等)。与开发人员的机器相比,持续集成服务器运行在相对稳定、干净的环境中f减小跟踪调试的难度),持续集成过程的失败通常意味着最近一次更新破坏了软件现有功能或引入了新的缺陷。在持续集成过程结束后.除了构建结果,通常会生成代码分析报告(测试覆盖率等),帮助项目管理人员更好的了解并改善项目。5、对项目人力资源管理的作用。
6、对项目客户关系管理的作用
从客户和用户的角度看.一个可以稳定运行的软件系统才是最重要的。在使用持续集成工具的环境中,开发人员对源文件进行修改、提交。果在其中任何一个环节出现了问题.相关人员可以很快的得到反馈在没有使用持续集成工具的环境中.大量的问题只有在产品发布前进行最终集成的时候才会出现.开发团队往往在发布前承受着巨大的压力。并导致产品延迟发布或者在进行集成的过程中引入更多、更严重的缺陷。而持续集成的使用有效地避免了这些问题。融洽了客户关系,强了客户的满意度客户的满意是项目最终成功的重要标志之一。
7、对项目软件配置管理的作用
代码库把一个项目所有的源代码都保存在一个仓库里系统的当前状态始终是最新提交的代码.我们叫它主线(Main—Iine)。任何时候开发者都能把这个主线上的代码更新到自己机器上。我们叫它检出。开发者机器上的代码叫做工作拷贝(WorkingCopy)。
持续集成项目组都使用代码仓库.而且代码仓库中不仅有代码,还要求要把什么都放在代码仓库里,构建唯一的代码仓库。把用于构建的东西都放到里面去:测试脚本、属性文件、数据库、安装脚本和第三方库等等。甚至有的项目团队把编译器也检人(Checkin)代码仓库的。这样做的好处是保证了代码仓库的完整性和有效性.为持续集成的构建做好准备。这样的代码库的工作方式,为软件的配置管理提供了极大的方便
四、结束语
软件项目管理包括九大管理领域.这种管理在技术工作开始之前就应开始,在软件从概念到实现的过程中继续进行.当软件工程过程最后结束时才终止软件的复杂性也决定了软件项目管理的复杂性.软件项目管理的根本目的是为了让软件项目尤其是大型项目的整个软件生命周期(从分析、设计、编码到测试、维护全过程)都能在管理者的控制之下,以预定成本按期、按质的完成软件交付用户使用持续集成做为软件开发过程的一种实践.为软件项目管理提供了更好的保证.软件的项目经理可以考虑在你们的开发团队中使用持续集成进行软件开发。
参考文献: http://www.8manage.cn