关于Daily Building

刚才令狐说:

刚刚我在一个小时之前下载了一个DeerPack,当时还是Alpha 1,过了一个小时,就看到论坛上说Alpha 2出来了,然后去同一个地址下载,就变成Alpha 2了

所以我们就这里开始简单讨论了一下关于Daily Building的话题。

我觉得不论是不是用XP,这个Daily Building都是很重要的,因为只有这样,才能准确地把握开发的进度,并且更好地保证软件的质量。

至于具体做法,说实话,我也没机会做过,据说有一些像FinalBuild这样的工具可以很方便地实现。当然对于不复杂的东东也是有很多替代方法的,比如老土的makefile,或是用一些脚本(shell、PERL、Python……),都可以实现。

剩下就是如何运作的问题。

我的设想是这样的:

每天一上班,质量部门就在SCM中创建一个Build版本分支,并把下班前一到两小时定为Build时间。

开发人员在Build时间之前把通过单元测试的稳定代码Commit到这个Build版本分支里。在Commit之后,开发人员可以继续进行开发工作,并在下班前将代码Commit到主开发版本里。

质 量部门在Build时间从Build版本分支中Check out出代码,并进行集成编译及测试,确定没有问题以后,就可以拥有一个相对稳定的版本。之后,比如第二天上班时,质量部门就可以把这个稳定的版本分支与 主版本合并,再创建一个新的分支,然后重复上面所说的过程。

这一迭代过程重复进行下去,软件项目就可以很扎实地一步一个脚印地进行下去,不容易出现失控的情况。

所以我认为,在软件开发工具中,SCM是最重要的工具。像CVS/SVN都可以很好地实现上面所说的功能,不过VSS就比较困难了。