前言
工欲善其事,必先利其器!敏捷开发的持续交付,一定程度上导致了交付的碎片化,我们需要好的管理工具。
来自澳大利亚的 Atlassian 公司推出的 JIRA和 Confluence 是敏捷开发的两大利器,它们彻底地贯彻了敏捷开发所倡导的去中心化、协作、集体讨论、信息共享、灵活、透明、可视化等原则。
JIRA 是项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域(很多开源项目就是用 JIRA 收集和管理缺陷与交流)。
Confluence 用于企业知识管理与协同和构建企业 wiki。JIRA 与 Confluence 相互结合,更是相得益彰。
下面我将详细介绍通过实战总结的 JIRA 和 Confluence 的使用攻略以及两者的融合(由于公司用的是英文版,所以下面所有的功能点和截图都是英文的,截图中的敏感信息也做了遮盖处理,如有不便,敬请谅解)。
JIRA:一站式敏捷管理神器
JIRA 是完全按照敏捷开发管理所需要的所有要件来开发的,完美支持 Scrum和看板方法,其易用性、灵活性、扩展性得到业界广泛认同,可谓是“谁用谁喜欢”。下面我精选了一些亮点和大家分享。
Epic, Story 和 Sub-task
在敏捷开发中,工件有下面几个层级:
Epic - 史诗故事。包含某个特性或子项目的相关用户故事,便于用户故事归组。
Story - 用户故事。具有业务价值的端到端交付,你懂的。
Sub-task - 用户故事下需要分配给不同人处理的子任务,不可单独交付,比如前端开发与后端开发,上、下游组件开发等。
在JIRA中,所有的工件都统称Issue,而每个Issue可指定一个Issue Type,上面提到的Epic,Story和Sub-task分别是一种 Issue Type。
JIRA 的 Issue Type 非常丰富,而且可以自行定义,对应真实的工件类型,如Support Case、Change Request、Enhancement 等。下面重点讲一下敏捷中最重要的几种Issue Type的层级关系。
Epic
由于一个 Epic 包含若干个用户故事(Story),在新建或编辑Story时,可以通过 Epic Link 的属性把该 Story 指向一个已有的 Epic,从而建立两者的隶属关系。
Story
具有业务价值的端到端交付。满足INVEST原则。
在 JIRA 中,Story 级别的Issue不仅限于 Issue Type 为 Story。所有非 Epic 和 Sub-task 的 Issue 都可视为 Story 级别的 Issue。
Sub-task
如果一个Story需要拆分成任干个任务交给不同人或团队完成,可以在Story中新建Sub-task并分配给相应的人或团队。Defect也是一种Sub-task。独立测试团队对某个Story进行测试时发现Defect,应该在该Story下创建Defect (Sub-task),把两者关联起来。
如下图,在一个Story级别的Issue中,可以按“More”按钮,然后按“Create Sub-Task”按钮来新建Sub-task。