大话项目管理工具之Jira篇
前言
上一篇文章谈的是知识管理工具 —— Confluence,它来自澳大利亚 Atlassian 公司。
非常凑巧的是,今天要介绍的 JIRA 也是来自 Atlassian 公司的。但他不再是知识管理工具了。而是项目与事务跟踪工具。被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。
背景
在谈 JIRA 之前。就不得不说说敏捷开发了。正式因为项目是基于敏捷开发进行的,因此才引入了 JIRA 这款适合于敏捷开发的项目管理工具。
当然。这里不会大篇章的介绍敏捷开发,之前的文章有具体讲过《敏捷开发系列终极之旅》。这里简单的再回顾一下敏捷开发的流程。
流程
说到敏捷开发。也是近几年非常流行的软件开发模式。而在敏捷开发中,又分了非常多种。在我们的开发过程中,选择的是 Scrum 。Scrum是一种灵活的软件管理过程。它能够帮助驾驭迭代、递增的软件开发过程。主要用于产品开发或工作管理。
Scrum敏捷开发。是对流程控制比較严格的。每一个环节都有一套完整的过程和严格的时间控制,我们项目组的主要开发步骤例如以下图所看到的:
介绍
了解了敏捷开发 Scrum 的流程之后。我们再来谈谈 JIRA 。正如前边所说。JIRA 是一款优秀的问题跟踪及管理工具。JIRA 採用 J2EE 技术,可以跨平台部署。当然,对我们来说。他还有最重要的一个功能,就是协助管理敏捷开发,在经过 Sprint 计划会议之后,产品经理把讨论好的 Sprint 任务列表加入到 JIRA 的 Story 中。
并且都包括着开发的详细业务,开发用时。技术难度等。
组员们可以去 JIRA 上任意选择自己喜欢的任务领取。于是,就開始了一次开发迭代。
功能
考虑到 JIRA 的安装和配置都比較简单,并且网上也有非常多这方面的教程,这里就不再赘述了。这里推荐一篇文章,就是讲 JIRA 的安装和配置《 jira5.0+greenhopper6.1.6的安装》。当然我这里也有一份比較具体的教程,是项目开发时用于培训的,因为篇幅比較多,就不再博客上贴了,有须要的联系我即可。这里。我打算选几个重要的功能跟大家说一下。
- 项目
安装好 JIRA 之后。须要首先创建一个项目。这里我们以权限系统为例。
简单的介绍一下新项目的加入以及设置。
- 问题类型
项目加入好之后,JIRA 默认的是 Bug 类型。而我们要进行的是管理敏捷开发流程。因此须要相应于敏捷开发中的 Task,这就须要手动的改动一下默认的 Issue 及 Issue 的顺序。
- 工作流
JIRA 是基于工作流进行的,并且他也提供了非常强大的工作流管理。JIRA 提供的默认工作流为五个状态:Open。Close,Resolve。In Progress,ReOpen。
而我们真正使用的时候。这几个状态往往满足不了需求,比如,一个正在进行的任务,突然发现不符合条件进行,须要挂起,那么应该放到哪个里面呢?
GreenHopper看板上面会把Story。Task。Sub-Task等都列上来,而对于Story和Task在我们的思路里,是不希望它们是一样的处理流程,比如,对于Story我们仅仅希望它从Open到Resolve或Close就可以,不须要进入In Progress。基于这些问题。我们须要自己创建一个适合我们项目开发的工作流。
而 JIRA 正是提供了自己定义的工作流。让你自己去设置工作流。以满足工作的须要。
以下来看一下详细的配置。
首先,把默认工作流中用不到的状态去掉,然后保存。
到此处为止,我们就把不须要的状态已经删除了。当然,为了完毕我们自己的工作流。还须要加入一个状态。
到这里,自己定义工作流就完毕了。接下来还须要在配置一下工作流方案,这里就不再一 一介绍了。有须要的找我就好。
感受
因为之前的项目中,也用过一款国内的项目管理工具 —— 禅道,只是对于敏捷开发来说,基于 Scrum 的理念、开发流程等,总认为禅道有些不合适(个人感觉),不可否认,禅道已经做的非常好了。仅仅是感觉不适合我们这个敏捷开发的项目罢了。各位勿喷。
而熟悉了 JIRA 之后。发现 JIRA 更适合敏捷开发。
在 JIRA 的设计理念中。就存在对 Scrum 的一系列支持。当你開始一次迭代时,JIRA 会帮你记录不论什么一个时间点。由 待办 → 处理中 → 挂起 → 完毕 。
这几个状态能够相互转换。依据详细的条件、详细的任务、详细的环境相互转换。
没完毕一个状态时,都会有详细的记录。并且。JIRA 还会记录每一个人的工作量。统计每一个组员完毕的任务量。这在绩效考核中也是非常重要的一部分。
结束语
通过 JIRA。使得我们可以高速的实施敏捷开发,自己主动化的管理敏捷开发中的各个环节。使我们可以把精力集中到业务的实现、技术点的攻克上。
并且,有了 JIRA,在敏捷开发中,组员之间的相互协作也更加高效,不会再出现“有人忙得要死,有人闲的要死”的局面了。任务进行的条件无法满足时,可以先把任务挂起,又一次开一个新的任务,当前一个任务满足条件时。再又一次激活。
在我看来,敏捷开发就是把任务简化,把任务细化。然后把开发时间精细到每一个任务。在最短的时间内集中精力完毕任务。这也是为什么敏捷开发不提倡加班的原因。重要的不是敏捷开发的过程。而是敏捷开发的思想。
JIRA。不不过一款项目管理工具,同一时候也代表了一种敏捷开发的思想。