关于持续集成的一点想法

目前团队里面我们团队是使用JAVA语言编写代码,分模块的方式合作,大家编写了自己的maven模块以后deploy包artifactory中,
然后有一个gateway项目整合所有的maven模块,这样方式是JAVA开发的基本流程吧。但是有一个点,我觉得有问题的地方是,大
加都是在自己的项目中完全的编写好了自己的功能以后,才将自己的功能合并到gateway项目中,这样会存在一个比较严重的问题,
那就是合并起来会非常的困难,编写模块的人考虑的本模块的细节,没有考虑如何与gateway整合,也没有考虑如何与其他模块进行
交互,在整合的时候,又需要去修改maven模块中的实现细节。一两个模块还好,如果需要整合的模块比较多,那么这个问题就会比
较的严峻了。

项目在漫长的开发前期没有得到整合,也就意味着无法部署,也无法集成测试,导致在很长一段时间内看不到工作成果,也无法量化项目进度这样很容易导致项目延期。更加严重的后果是,一次性完成集成。变更的地方太多,需要集成测试验证的点会比较多,测试压力。就会出现测试同事,前面半个月休息,后面半个月加班赶进度的
情况。

理想的持续集成情况是,项目在创建以后,就已经能够独立运行,没完成一个小的feature,在自测完成以后,我立刻集成到集成开发分支,在集成分支上进行集成自动化测试集成不成功,或者集成测试不通过,也不应该继续集成,必须停下来,将当前的问题解决。如此的反复迭代项目,我们任务在集成开发分支上的功能点,就是已经开发完成的功能点
,以这样的方式来进来项目进度的评估。看板工作流程,工作完成的标准也是这个标准。

关候于持续集成,还要一点。如果团队人数比较多,我们分配任务的时候,不要任务打的太散,避免一件事情能够一个做的情况却交给了多个人做。尽量避免代码集成和人员沟通的成本。