作者简介: 我一哥们,国内最好的软件开发设计师,是顶级的 配制管理 高手,我收藏,给大家看看,高手如何做配制管理 李文华,软件架构师,现就职于国内某大" name="description" />

日构建和持续集成——软件开发管理中的最佳实践

发表于:2008-07-23来源:作者:点击数: 标签:软件开发管理实践构建
MI LY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"> 作者简介: 我一哥们,国内最好的软件开发设计师,是顶级的 配制管理 高手,我收藏,给大家看看,高手如何做配制管理 李文华,软件架构师,现就职于国内某大

MILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">作者简介:

我一哥们,国内最好的软件开发设计师,是顶级的配制管理高手,我收藏,给大家看看,高手如何做配制管理

       李文华,软件架构师,现就职于国内某大型软件公司,具有丰富的软件开发管理经验,个人对项目管理软件工程、软件过程改进、软件建模及模型驱动开发有浓厚的兴趣。

 

关键字:

       日构建、持续集成、项目管理

 

XP方法中把日构建列为软件开发管理中的最佳实践;敏捷软件开发中也把持续集成当作是保证软件项目成功的一个原则。无独有偶,2003中国软件技术大会,上海微创软件公司技术总监蔡培讲述了微软公司的软件开发管理,演讲中提到微软软件开发管理中的一个重要实践,也就是日构建。(日构建和持续集成本质上是一样的,只是前者的频度是每日一次,而后者则并未限定频度。为了便于讲述,本文中不再区分这两个概念。)

关于日构建的作用和意义,书籍和网络上已有相关文章介绍,本文不再赘述。本文假设读者已经充分认识到日构建或者持续集成的好处,并且正打算把它应用到企业的开发管理流程中去,但是对于如何做日构建和持续集成,无论从技术上还是管理上还比较迷茫,那么这里将务实地与大家交流一下相关的一些的经验。

 

1.1.      日构建中的要素

       归纳一下,日构建中有如下几项要素:

1.1.1    版本管理

所有参与构建的开发工件都应该纳入版本管理。有了版本管理,才能为了日构建稳定而可靠的输入。版本管理工具要为日构建提供的支持仅需包括一个命令行客户端工具。

1.1.2    流程自动化

       日构建的处理复杂性依赖项目的大小以及加入的实际过程数量和内容而不同,但是不管怎样,努力达到流程的全部自动化是日构建的一个要求。流程的自动化有利于提高日构建的运行效率,减少人工干预引入的错误可能。

1.1.3    为日构建定制的管理制度

       日构建完整的流程不仅只涉及到开发人员,实际还涉及到需求人员、设计人员、测试人、员、项目经理等多个角色,是一天中各方工作成果的集中体现。如此重要的活动,并涉及到多个责任主体,必然也要制定相应的管理制度来规范各个角色的行为,以便保障该项重要活动的有序、有效进行。

 

1.2.      日构建的一些策略

1.2.1代码统一管理

       一般来说,只要软件开发中全部使用了版本管理工具来管理开发输出的工件,就具备了日构建的该项要素。实际情况中,无论采用微软的VSSRationalClearCase,还是开源CVS,都可以通过特定的客户端工具,以命令行的形式来获得所需项目的最新版本(或者特定版本)的工件来进行构建。(这里之所以说是工件,而不特指代码,是因为实际构建中的元素不仅有代码,还可能包括其他一些参与编译或者运行的工件,比如说元数据。)

日构建虽然是一个软件企业的日常开发管理行为,但是它一般是以项目作为构建基础的。不同的项目尽管不建议,但是还是允许采用不同的日构建工具、流程。

一般来说,我们会是先有版本管理工具,再有日构建的相应工具,而且,可能存在多个项目所使用的版本管理工具不一致。比如一个企业可能同时采用VBJava开发不同的项目。那么采用VB的项目,基于与VirtualStudio的集成,可能更多选择了VSS作为版本管理;而采用Java开发的项目则可能选择CVS作为版本管理。对于一个软件企业来讲,为不同的项目选择不同的配置管理工具可能是个无奈之举,但是在选择配置管理工具的时候,该工具是否能够很好支持日构建应该成为一个考虑项。

下表给出了可以成功构造日构建系统的常见模式。

开发语言

版本管理工具

日构建脚本工具

C++/VB

VSS

Ant/Make

Java/C++

CVS

Ant/Make

C++/VB/Java

ClearCase

Ant/ClearMake/Make

 

原文转自:http://www.ltesting.net