软件后期开发中的版本控制总结

主题

1.      在研发和测试过程中如何做好版本的衔接

2.      在程序部署到现场以后,如何做好版本控制

3.      版本和问题、缺陷之间的关系如何维护

4.      在项目实施过程中,实施人员对版本的关注点是什么?项目经理对版本的关注点是什么?

需要考虑的

首要:必须有明确的版本定义,及版本升级控制原则

1.         版本控制的目的:

ü  保证版本的连续和可跟踪(实现程序各版本的回退)

ü  指导研发团队,合理安排研发(修复)计划,控制版本的升级

ü  指导实施团队,选择合适版本,进行正确的项目实施

ü  衔接研发和测试,适时控制版本的发布

ü  避免程序代码混乱,修复过的bug被覆盖;

ü  记录版本发布信息,版本之间界限清晰;

ü  能够规范用户方版本的升级;

ü  各个团队能够实现并行开发,划分不同分支。

2.         从哪几个方面做好版本控制:

  1)研发过程中小版本如何控制:

ü  首先项目组需要版本规划,系统准备提交几个测试版,准备发布几个主要版本,每个版本分别包括哪些功能;

ü  在项目组内部,明确一下内部小版本序号增加的原则,什么情况下增加小版本的序号,控制人是谁等;

ü  在研发过程中,根据单元测试及问题修复情况,由控制人适时变更小版本号,并明示所有成员,并对文档和代码基线化。

ü  规划的几个主要版本完成时,应同时从开发区提交至受控区;

ü  各个子系统需要并行开发时可以使用SVN工具划分不同分支,采用分支合并技术控制程序版本;

ü  划分分支并行研发时,需要由专人负责分支的合并问题,注意做好合并时的测试工作,避免存在严重缺陷的分支合并到主干线上;

ü  注意:

a 小版本的变更,必须经项目经理审核,由控制人实施

b 要保证文档和代码的一致性

c 尤其注意sql库表和代码的一致性

  2)在研发和测试过程中如何做好版本的衔接

ü  首先项目经理要掌握什么时候提交测试,并确认提交的测试版本及对应的文档

ü  在测试区放置需测试的版本及对应的文档。

ü  应该在受控区放置相应版本的源代码,与测试区和发布区的版本相一致。

ü  提交系统测试时,必须明确测试版本号且在配置文件中写明。

ü  若采用模块开发方式,各模块可以定义不同的版本号,但配置文件中要有专门地方记录各模块的版本号,提交测试版本时应说明版本中包含的各模块的版本。

ü  缺陷修复过程中程序版本可以根据程序改动量的大小,由项目经理决定是否增加程序版本(此种情况主要是第三位的版本序号变更)。

ü  缺陷修复之后重新提交系统测试时,也应在测试区重新放置对应的测试版本,明确新的测试版本号。

  3)在程序部署到现场以后,如何做好版本控制

ü  准备部署到现场的程程序,必须在发布区,存放该版本的二进制文件及对应的实施文档

ü  程序部署到现场后,必须明确发布的版本号且在配置文件中注明;

ü  程序部署后,应尽量避免现场直接修改程序和频繁的重新部署程序;同时对于一些需求变更,应尽量避免直接修改,应收集并分析后在新的版本升级中统一考虑,减少成本版本升级的次数。(版本升级统一管理)

ü  程序版本需重新发布时,必须详细编写《系统发布日志》、《已发布版本缺陷》、《系统升级说明》等文档,并发送给现场实施人员,以便实施人员能了解新发布版本与现场版本的区别,以及升级时的注意事项等。

ü  对用户现场程序的重新部署(即版本升级),需要记录在《系统升级说明》,跟踪用户版本升级历史

ü  部署到现场之后的版本升级问题是一个很慎重的问题,必须做好升级前的测试工作,研发人员测试之后,现场实施人员最好能在客户环境下重新测试一遍再正式发布,避免出现影响用户正常工作的严重后果。

ü  程序上线后,大的版本升级应走正式的发布流程,并提交相关发布文档;小的问题修复及频繁的部署时,版本是否升级以及是否走正式的发布流程由项目经理视情况而定。

  4)进入维护阶段后,如何做好版本控制

ü  如果维护人员与实施人员不同,维护交接时需要注意将程序的版本信息交接清楚;

ü  维护阶段,重点做好客户反馈问题的跟踪;

ü  统一管理版本的升级:定期对问题进行分析,安排人员对系统进行改进,确认升级版本号,相关升级文档必须提供

ü  版本发布和版本升级要求详见“3)在程序部署到现场以后,如何做好版本控制”

  5)版本控制工具的使用

ü  程序源代码和技术文档目前统一基本所有项目都使用SVN工具;

ü  软开部门使用JIRA工具对程序bug进行跟踪和管理;

ü  电采目前JIRA工具对客户反馈的现场问题进行跟踪和管理;

ü  电政部门使用自己开发的项目管理工具,对维护阶段客户反馈问题进行登记和管理;

ü  移动运营和电力目前使用excel记录和管理需要修改程序的现场问题;

3.         在项目实施过程中,实施人员对版本的关注点是什么?项目经理对版本的关注点是什么?

(1)   实施人员关注的:

ü  “我”收集的问题,以何种渠道向项目组反馈

ü  “我”反馈的问题在哪个版本解决

ü  获取对应版本及文档的正确途径

ü  每个版本的详细发布文档内容,关注每个版本实现(或改进)的功能,以及存在的缺陷;

ü  版本如何升级,是否需要接收培训,是否需要事先模拟;

ü  如果需要用户培训,培训文档是否完备

(2)   项目经理关注的:

ü  系统整体的版本规划,一共计划出几个大的版本;

ü  规划的每个大版本主要包括用户哪些主要需求或者都有哪些功能模块、隐藏的主要缺陷有哪些;

ü  和版本对应的文档有哪些,是否准备好

ü  研发过程中小版本号什么时候增加,什么原则增加;

ü  并行开发时需要划分几个分支,分支合并由谁统一负责,分支合并的具体要求

ü  应该什么时候进行版本发布;

ü  每次版本发布时的版本号具体怎么定义。

ü  目前各用户使用的版本情况

可不考虑的

暂无