版本管理 单产品多分支,频繁发版,问题求助

pangzheng871214@163.com · 2012年06月29日 · 7 次阅读

产品现状   首先介绍一下公司情况,我公司主要从事 ERP 相关的业务,产品属于定制化的模式,即通过多年的业务经验,将行业内的一些通用的、常用的业务需求抽象出来,做一个标准化产品,然后在具体客户实施的时候再加入一些客户需求。   我们的开发模式和传统的开发模式有点不一样,因为 ERP 的产品在功能上有很多共同点,所以集团专门做了一套用于内部 ERP 产品开发的软件,简单点说就是在 VS2008 的基础上又加了一层,使我们在开发简单程序时只要拖拖控件写一些简单的控制脚本即可。遇到比较复杂的逻辑,才会交给程序员编写,然后生成 DLL 文件给开发人员调用即可。

面临的问题   目前我们的配置库有三个,分别是开发库、受控库、产品库。每次客户要发版更新的时候,假设周五,我们在周四白天会从开发库切一个版本出来,然后进行编译部署;接着提交给测试人员进行测试,然后有问题的话开发人员再修改覆盖(如果重新编译的话时间太长);最后得到一个相对稳定的版本去给客户更新。这时候问题就来了,目前面临的问题主要有以下几点:   1、由于我们的产品底层的东西比较多,导致在编译部署的时候会有点慢(一个版本编译部署完成大概要 1-2h)   2、开发人员提交的程序,在他们本地环境自测没有问题,但是放到集成环境下编译就会出现一些问题(各模块各程序间交互比较紧密)   3、发版时的修改 BUG 费时费力,严重影响测试人员和实施人员的工作效率,有时候修改了某个 BUG 会引起另一支程序的报错

临时解决方案   1、版本冻结,为了保证编译版本的稳定,在出货前一天版本进行冻结,不允许代码和程序签入   2、自动化脚本辅助,通过自动化测试脚本,对一些简单的模块、简单的操作进行覆盖,从而减轻测试人员的压力,也能更早更及时发现问题

  在此想向各位大神请教,对于类似的做产品的公司,单产品多分支且版本更新比较频繁的情况下,其他公司的出货流程是怎样的?有没有比较高效的解决方案,小弟跪求!

1)对于编译部署慢的问题,更新硬件,看是否能解决。硬件不能解决的再去优化产品。1-2h 看对什么项目了,我现在的项目构建一次 5 个小时左右。 2)针对第二个问题是很普遍的问题,很正常。通知研发组,以后受控库每天下午 1 点开始编译(大概 2-3 点左右完成)。完成后会发通知。出现问题的必须当天解决完再走。 3)修改 bug 是否费力,主要看研发人员的能力了。

多多自动化,减少人工干预。

总之,分支太多了,问题很容易累计,信息容易丢失,不容易协调。

客气了。有问题我们再一起来研究

对 ERP 产品不是很懂。只是觉得有没有可能优化模块的划分?比如把底层独立为一个模块,各个模块再形成自己的开发库和稳定库。每次要发布之前,保证各模块的稳定库里有符合要求的代码,然后再提取稳定库里的代码集成到系统的稳定库编译。

如果分支很多,模块就显得更重要。把具有共性的东西抽象为一个模块。各分支只需要管理自己的东西,其他都由公共模块提供。这样会降低开发人员的 load。同时,尽可能在代码里设置编译开关。也有助于提高效率。

另外,对于程序本地编译没问题,提交到集成库就有问题的情况,能否要求开发人员频繁更新本地环境?尤其在提交代码前,最好能更新一次。

嗯,这个模块划分的思想很有启发,我会去尝试尝试的,多谢多谢

需要 登录 后方可回复。