下面是对全面采用禅道的敏捷开发模式进行整个软件开发生命周期的管理简单介绍和整理。需求
->
设计
->
编码
->
测试
->交付->维护,整个周期的六个阶段全部用禅道对应的功能进行规范化管理。
岗位划分:
1
、产品经理
(Product Manager) 2
、项目经理(
Developing Manager
)
3
、测试经理(
Testing Manager
)
4
、高级程序员
(
一般担任开发小组长,
Team Leader)5
、程序员(
Software Engineer
)
6
、前端工程师(
UI Designer
)
以上
2
、
4
、
5
、
6
属于开发组,
3
属于测试组。
适合项目:小型的应用类项目,可以采用
SCRUM
模型。大型的开发项目,可以整体采用瀑布模型,局部使用
SCRUM
模型。但
Zentao
一般用得多的也是小型应用类项目了。
具体开发工作流程如下:
1
、与甲方做需求前期讨论
负责人:产品经理参与者:项目经理、测试经理及其它有必要参与的人员外部需求讨论阶段不需要进禅道,用
excel
格式的会议纪要、邮件等进行沟通
2
、与甲方一起确定需要进行开发的需求及优先级
负责人:产品经理
参与者:项目经理把最终确定的需求,细化之后把细化的需求录入到禅道并设定好优先级,优先级为
1
的为下一个版本要实现的需求,这里要注意一定是细化的需求,比如:原始需求是
“
支持多城市,定于
4
月
15
日上线区内其他
4
个城市
”
,从这个需求细化出来的应该是具体到页面的需求,如:多城市
_
修改订单列表页面使之支持多城市
…
确定下一次发版后要完成的需求后,项目组内部开全会通报所有需求,测试经理开始准备测试用例
3
、确定好将要发版的组件版本
负责人:产品经理
每一次发版的版本号规范如下:
1
)版本号第二位加
1
,第三位为
0
,如:
V2.2.02
)在正式发版之后,如果有小改,则第三位递增,如:
V2.2.1
,
V2.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
,设为
2
或
3
4
)如果测试进入收尾阶段,即将定版的,项目经理把当前提交测试的代码在
SVN
上打一个对应版本的
Branch
分支(名称格式:
V2.2.0_Testing
),修改
bug
的人员集中在几个核心程序员上,减少引发新
bug
的几率,在通知核心程序员
switch
到此
Branch
后,立即修改
SVN
上的权限。设置从
Trunk
上删除核心程序员的读写权限避免人为错误,其他程序员在
Trunk
分支上继续后续的开发。
注意:
1
)测试
-bug
中提交
bug
的时候,务必要选择对应的版本号;
2
)每次项目经理更新文件到测试服务器,都要在钉群里通告大家,并附上此次更新修复的
bug
清单
8
、测试完成,发版前的最后审核
在测试经理回归完所有
1
级
bug
,认为可上线后:
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
)测试经理安排做回归测试
5
)
2
、
3
、
4
步骤循环进行,直到认为可以发版了,则确定版本号,比如为:
V2.2.1
,并从
V2.2.0_Fixbug
导出一个
Tag
为
V2.2.1_Release
,由项目经理更新的生产服务器上(发版前也要导出修改的
bug
清单给甲方确认)以上
2
、
3
、
4
、
5
步骤迭代循环,直到停止维护此版本
11
、停止维护老版本
在新版本即将发布前夕,一般是
5
天内,则停止老版本的维护
1
)项目经理在告知相关程序员把本地的工作目录
switch
到
Trunk
后,关闭
svn
上的老版本
Branch
的程序员读写权限
2
)产品经理关闭老版本的发布,禅道路径
“
产品
–
发布
”
,设置此版本对应的发布为
“
停止维护
”
(这个步骤不能忘记,否则在
bug
里边选择版本的时候,没有被停止维护的发布对应的版本会一直显示出来)这里要特别注意的是
:
不是说这一次发版完成了才开始新的一次发版之旅,一般来说,在步骤
2
完成之后,产品经理就要开始和甲方一起沟通下一次发版的需求了,然后是项目经理从需求分配任务,开始新一次发版之旅。这就是螺旋状上升的敏捷迭代开发之路