Jira工作流项目设置操作指南
一、几个概念
在具体开始创建一个Jira的工作流项目之前,必须先了解几个Scheme概念,Scheme这里可以理解为“组合设计方案”。
Scheme | 相关设计元素 | 说明 |
Issue Type Scheme | Issue Type | 定义一个项目拥有哪些问题类型,例如缺陷、需求、变更请求、问题、建议等 |
Notification Scheme | Event | 定义一个项目的邮件发送规则,例如问题创建的时候需要发送给管理者,问题指派的时候需要发送给被指派人等。 |
Permission Scheme | Permission | 定义一个项目的操作权限控制规则,例如创建问题的权限,编辑的权限,查看的权限等。不包括工作流的权限和全局权限。 |
Issue Security Scheme | Security Level | 定义一个项目的单个问题的查看权限,例如可以对某个或某些敏感问题设定只有指定的人可查看。 |
Field Configuration Scheme | Field Configuration | 定义了一个项目中每个问题类型分别需要用到的字段,以及是否必填和默认值等信息 |
Issue Type Screen Scheme |
| 定义了一个项目中不 同问题类型分别对应的视图组合设计方案(Screen Scheme) |
Workflow Scheme | Workflow | 定义了一个项目和指定的问题类型对应的工作流。 |
Screen Scheme(不直接跟项目绑定) | Screen | 定义了一个视图组合设计方案,例如创建的使用用哪个视图,编辑用哪个视图,以及没指定视图的操作默认使用的视图等。 |
二、设计步骤
具体开始创建一个工作流项目之前必须按照上表中的相关设计元素一栏所列内容展开,本文按一般的设计思路顺序逐一介绍。
1、 确定需要用到的所有Issue Types,并在jira中设计好
2、 根据Issue Types确定需要用到的所有字段域,如果非系统默认字段,则需要在jira中设计Custom Fields,并添加一个Field Configurations,来对每个字段进行显示设置。最好添加一个Field Configuration Schemes来绑定issue type跟Field configuration的关联。
3、 根据不同的Issue Type来确定是否需要针对不同的Issue Type设计不同的Workflow,Workflow的设计是最关键的一步,需要全局考虑很多设计元素,例如Permission(工作流权限,谁或哪些角色可以进行工作流操作)、event(一般会使用到邮件通知event),screen(每一步工作流响应需要绑定到哪个screen)。
A、 画出workflow的状态转移流程图,方框代表状态,箭头代表触发状态转移的路径,箭头上的标注代表触发的动作。
B、 根据状态转移流程图确定每一个操作的权限控制,以及每一个操作结束触发的event(例如邮件通知)
C、 根据权限控制的需求,确定用户的组和角色设置(这个也可以在最初规划好)
D、 如果不能用默认的event,则必须自己创建event
E、 画出状态转移流程图后,千万不要急着在jira中设计workflow.
4、 根据上面的状态转移流程图,在jira中完成statuses的设计
5、 根据上面的状态转移流程图,确定每个操作需要绑定的视图(Transition View),并在jira中完成screens的设计,同时创建一个Screen scheme,并指定一些默认设置。
6、 添加一个Issue type screen scheme来设置issue type跟screen scheme的关联
7、 根据上面的状态转移流程图,确定每个操作是否需要绑定一些后置事件,例如邮件发送等,如果有则需要先设计event
8、 在jira中设计一个workflow,设计workflow需要用到的信息,上面都必须提前完成,需要特别强调的是,workflow一旦被绑定到项目,则不允许修改了,必须先取消绑定,再修改。在添加每个状态转移的操作(Transition)时,需要注意是否需要设定如下图所示的几个属性。创建好了workflow以后,再创建一个workflow scheme,并设定每个issue type跟workflow的关联。
9、 Notification scheme 和 permission scheme 的设计相对比较独立,根据自己的需要和规则在jira中完成即可。
10、 创建好了以上的所有信息以后,就可以正式创建项目了。创建好项目后,把上面的设计的各个scheme 绑定到项目。
三、其他一些建议事项
1、jira里的权限控制建议采用角色(role)映射的方式实现,既把用户和组映射到对应的角色,这样不同的项目可能分组的方式不同,但是角色基本都是一样的,简化管理。
2、灵活运用Components和versions这两个字段,因为这个两个字段可以由项目经理自己维护,决定增加还是删除值项,如果是自定义字段,则需要管理员维护。