禅道 (Zentao) + SVN 的软件开发生命周期管理工作流程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hgstclyh/article/details/81206618

     下面是对全面采用禅道的敏捷开发模式进行整个软件开发生命周期的管理简单介绍和整理。需求->设计->编码->测试->交付->维护,整个周期的六个阶段全部用禅道对应的功能进行规范化管理。

岗位划分:1、产品经理(Product Manager)  2、项目经理(Developing Manager3、测试经理(Testing Manager4、高级程序员(一般担任开发小组长,Team Leader)5、程序员(Software Engineer6、前端工程师(UI Designer   以上2456属于开发组,3属于测试组。

适合项目:小型的应用类项目,可以采用SCRUM模型。大型的开发项目,可以整体采用瀑布模型,局部使用SCRUM模型。但Zentao一般用得多的也是小型应用类项目了。

具体开发工作流程如下:

1、与甲方做需求前期讨论     

负责人:产品经理参与者:项目经理、测试经理及其它有必要参与的人员外部需求讨论阶段不需要进禅道,用excel格式的会议纪要、邮件等进行沟通

2、与甲方一起确定需要进行开发的需求及优先级  

负责人:产品经理 参与者:项目经理把最终确定的需求,细化之后把细化的需求录入到禅道并设定好优先级,优先级为1的为下一个版本要实现的需求,这里要注意一定是细化的需求,比如:原始需求是支持多城市,定于415日上线区内其他4个城市,从这个需求细化出来的应该是具体到页面的需求,如:多城市_修改订单列表页面使之支持多城市...确定下一次发版后要完成的需求后,项目组内部开全会通报所有需求,测试经理开始准备测试用例

3、确定好将要发版的组件版本

负责人:产品经理     每一次发版的版本号规范如下:1)版本号第二位加1,第三位为0,如:V2.2.02)在正式发版之后,如果有小改,则第三位递增,如:V2.2.1V2.2.2...   

一般来说,按两周发布一个版本的周期发版在项目-版本中定义好版本,并把版本与需求关联起来(一个需求可以和多个版本关联,比如:需求002:订单列表页支持多城市的不同操作员只能看到本城市的订单,此需求牵涉到:订单中心组件V2.2.0、商品中心组件V2.2.0、微商城/PC商城组件V2.2.0这几个版本,都要关联上)

这里要注意的是,要分组件定义版本,要求所有组件的版本号都保持一致,举例如下:1)微商城/PC商城组件V2.2.02)订单中心组件V2.2.03)商品中心组件V2.2.04)门店系统组件V2.2.05)呼叫中心组件V2.2.06)门店APP组件V2.2.0在项目-版本-查看bug,可查看此版本下的bug的清单

4、根据需求细化并分配开发任务

负责人:项目经理  

禅道路径项目-任务,做开发任务分配的时候,一般来说都会从一个需求分出多个开发任务,任务是最原子的事务,一个任务只能是一个执行人

如:需求为:修改XXX页面使之支持不同城市的操作员只能显示本城市的信息。

分配出3个任务:1)修改XXX页面使之支持不同城市的操作员只能显示本城市的信息-详细设计2)修改XXX页面使之支持不同城市的操作员只能显示本城市的信息-后端编码3)修改XXX页面使之支持不同城市的操作员只能显示本城市的信息-前端编码

5、根据开发需求做设计文档

负责人:分配了任务的开发组相应人员

监督人:项目经理

根据情况安排编码程序员做设计文档(没有太大难度的功能)或者是由高级程序员或项目经理做设计文档(有一定难度的功能),统一放到SVN。(按需求组织

文档标题格式:设计文档_需求ID_需求标题,如:设计文档_需求001_修改XXX页面使之支持不同城市的操作员只能显示本城市的信息

6、编码阶段

负责人:分配了任务的开发组相应人员

监督人:项目经理、开发小组长

1)程序员根据禅道上的任务按计划编码和做单元测试

2)程序员每天早上要自己去开启分配给自己的任务,任务完成后点击完成。这里要特别强调: 采用禅道来分配任务并不是说不需要当面沟通,当面沟通依然是最重要的。禅道可与SVN集成,使得项目经理可以直接在禅道上review代码(社区版无此功能)

3)项目经理负责每天的代码review和解决技术难题

4)产品经理负责每天监控开发进度,发现情况及时沟通处理,产品经理根据任务的完成情况,及时修改需求的进度,使得甲方能及时了解进度情况,需求的进度统一写在备注。格式如下:研发完毕时间:2016-04-08晚上7点;测试完毕时间:2016-04-19晚上7点;发布上线时间:2016-04-20 2点。

7、编码完成,提交集成测试

1)项目经理自测后认为可以提交集成测试后, 在禅道路径项目-版本里,提交测试

2)项目经理把代码部署到测试服务器上

3)测试经理安排测试并提交bug(提交bug的时候,属于这次发版要修正的bug,严重程度设为1,其他不属于这次发版的bug,设为23

4)如果测试进入收尾阶段,即将定版的,项目经理把当前提交测试的代码在SVN上打一个对应版本的Branch分支(名称格式:V2.2.0_Testing),修改bug的人员集中在几个核心程序员上,减少引发新bug的几率,在通知核心程序员switch到此Branch后,立即修改SVN上的权限。设置从Trunk上删除核心程序员的读写权限避免人为错误,其他程序员在Trunk分支上继续后续的开发。

注意:1)测试-bug中提交bug的时候,务必要选择对应的版本号;2)每次项目经理更新文件到测试服务器,都要在钉群里通告大家,并附上此次更新修复的bug清单

8、测试完成,发版前的最后审核

在测试经理回归完所有1bug,认为可上线后:

1)测试经理报告产品经理可以发版了

2)产品经理自己要再做一次测试,确保品质

3)产品经理测试后也认为没问题了,提交给甲方进行发版前的验收测试(如果有必要的,也可让甲方在阶段7参与测试)

9、甲方确认可以发版,正式发版

在甲方进行验收测试认为可以发版后:

1)测试经理,进禅道路径测试-版本,修改已测试好的版本,设为已完成

2)项目经理把此次发版需要更新的代码、数据库SQL脚本打包出来

3)产品经理从禅道的项目-需求列表里导出(复制出)此次发版关联的需求为Excel文件,此文件就是提供给甲方的changelog文档

4)产品经理向甲方提供changelog文档,并让甲方签署上线确认书

5)项目经理把将要发版的文件小心谨慎地发布到生产服务器上

6)产品经理在禅道产品-发布中设定与项目-版本相同的发布,备注好发版时间和发版内容,并把版本和发布一对一关联起来

7)项目经理在发版第二天,在SVN上从Branch里导出一个Tag,名称格式:V2.2.0_Release

10、版本维护阶段

在发版之后,一般来说,还是会发现一些之前没注意到的Bug需要修改,因此,在下一次大版本发版之前,需要继续维护当前版本,具体做法如下:

1)项目经理从之前发版的Tag下的Release导出一个Branch,如:V2.2.0_Fixbug

2)测试经理根据客户处反馈的情况,继续发bug到禅道上,严重程度为1,版本号为V2.2.0

3)项目经理安排相关人员在V2.2.0_Fixbug分支下修改bug(一般来说,只安排专职负责旧版本维护的程序员去处理这些bug,最好是项目经理自己负责处理),这里要注意SVN的权限,此Fixbug分支只给具体修改的程序员分配读写权限

4)测试经理安排做回归测试

5234步骤循环进行,直到认为可以发版了,则确定版本号,比如为:V2.2.1,并从V2.2.0_Fixbug导出一个TagV2.2.1_Release,由项目经理更新的生产服务器上(发版前也要导出修改的bug清单给甲方确认)以上2345步骤迭代循环,直到停止维护此版本

11、停止维护老版本

在新版本即将发布前夕,一般是5天内,则停止老版本的维护

1)项目经理在告知相关程序员把本地的工作目录switchTrunk后,关闭svn上的老版本Branch的程序员读写权限

2)产品经理关闭老版本的发布,禅道路径产品-发布,设置此版本对应的发布为停止维护(这个步骤不能忘记,否则在bug里边选择版本的时候,没有被停止维护的发布对应的版本会一直显示出来)这里要特别注意的是: 不是说这一次发版完成了才开始新的一次发版之旅,一般来说,在步骤2完成之后,产品经理就要开始和甲方一起沟通下一次发版的需求了,然后是项目经理从需求分配任务,开始新一次发版之旅。这就是螺旋状上升的敏捷迭代开发之路

猜你喜欢

转载自blog.csdn.net/hgstclyh/article/details/81206618