软件是否能够按计划发版本,除了严格执行计划外,版本控制必不可缺。
发版本能干什么?
- 治疗拖延症
- 发现软件中的bug
- 确保质量准确跟踪
项目如果经常遇到不能按时发布版本,排除计划做得不周详外,这里只讨论人的问题。很多个程序员都会有的病症“拖延症”,不到上线前一天不加班,不到上线前最后一晚不发版本。版本发完了,一堆bug 重复,周而复始,产品的进度、质量最终无法保证,团队努力付之东流。
现实场景:
A小组:
每天都很努力, bate 版本发布前一天,通宵加班,发布版本。第二天,测试如期收到了测试版本1.0 。
测试如期完成测试任务,发布了一份非常详细的测试报告。 结案陈词: 一万个草尼玛奔腾而过。
大大小小的bug不计其数。各种撕逼大会后,给出了一份修复时间表。继续修复 ,修复一周后,继续一万个草尼玛奔腾而过。
开发的过程中,开发时间是足够的,但是拖延症的作祟会让每次版本发布得非常仓促,
加上程序员的技术水平、责任心,会让这个过程变成了一个死循环,拖延了正式版本的发布时间。延期再延期。
治疗圣药:
发布Alpha版,内部测试版,每日构建。进行每日构建可以看得到每日的开发进度,这个构建时间并不一定是一天,但是这个周期最长建议不超过3天。
每日构建,可以可以让产品经理,技术经理等相关人员了解到产品的进度,同时也治疗了拖延症。程序员每日每日是否完成指定计划有了一个明显的度量标准。最起码,你看得见产品今天有了什么变化,看得见戳得着。
如果加上SVN或者Git的跟踪,每天写多少行,改了哪些行,敲了多少字,都可统计。
版本及版本号的管理
版本的管理有很多种,只要格式规范方便阅读即可。高大上国际范的版本号,问度娘或者谷哥就好。这里分享一下我自己所使用的方法。
软件版本
先从软件版本说起,我们使用4个版本进行软件版本管理 Alpha, Bate, RC, Release,详细可见下表
软件版本号
软件版本号你可以使用GNU的规范进行版本管理,也可以用windos的版本管理,以我们所使用的GNU为例
格式:主版本号.子版本号[.修正版本号[.编译版本号]]
例:
项目立项,开始开发
项目立项,主版本号0
每日构建Alpha版本,那么每天的版本号:
0.1.20150808.113_Alpha
.
.
.
0.1.20150812.113_Alpha
.
.
.
0.3.20150820.100_Alpha
要点:
- 主版本号我们从0开始
- 子版本号我们通过没个里程碑进行计算
- 修正版本号使用构建当天日期
- 编译版本号使用编译号
- 最后加上一个版本名
版本号里面加上日期的好处就是可以避免在测试过程中与开发所使用的版本不一致。如果不加上日期,这一幕会经常发生。
在一个创业团队当中,很多很多时候,产品、开发、测试、客服等等角色都是一个人在担任,你很难让每一个员工都有主人翁精神,
简单,粗暴,见效快的方式是就是每天构建版本,让问题当天就能呈现,有了这些统计数据你可以做更多的事情。产品开发的过程中坚持每日构建原则,效率和质量都能快速提升。