Wednesday, October 26, 2011

JIRA for Agile Management Primer (1)

JIRA is a long time bug/issue tracking tool. Since it defines project concept as a set of issues that go through a life cycle of a list of states to finish, and conceptually a project really is a hierarchy of working tasks(issues), it becomes a project management tool as well. A project can be any thing, so JIRA can have very broad usage.

Actually, JIRA has been adopted by many projects, eg., jBoss, Hibernate, Zend Framework, Skype, and Apache.

Architecturally, JIRA offers integration in different ways to make itself live in a ecosystem. It supports RPC(Remote Process Call) protocols such as SOAP, XML-RPC, and REST. It integrates with IDEs such as Eclipse by using Atlassion IDE. It also integrates with source controls, such as Subversion, CVS, VSS, Git, and others. Typically, GreenHopper, a JIRA plug-in, extends JIRA for agile project management by offering framework for planning and organisation tasks, workflows and reporting, making JIRA a powerful agile development platform.

JIRA has some key concepts that help understand the model quickly.

Issue
An issue can represent many things like a software bug, a development task, a helpdesk ticket. Anything that needs to be assigned and acted on is an issue, and JIRA tracks them. At this end, an issue is abstraction of all sorts of these things. It seems that in JIRA, issues are flat, not hierarchical, but in practical cases, we often see decomposing tasks and manage them in different granularities.

Project
A project represents a collection of issues. As mentioned above, issues are hierarchical in nature, JIRA brought in Component concept that represents a logical grouping of issues within a project. This seems that JIRA uses 3-levels to manage issues, instead of treating issues being decomposed into arbitrary levels of depth, making the model easier. An issue can associate directly to a project, or associate to one or more components.

Version
Optionally, JIRA allows specifying project version to an issue. There are two types of versions: Affected Version and Fix Version, meaning the project version that the issue has been identified and the project version the issue is or will be fixed respectively.

Workflow
It represents the lifecycle that an issue walks through. It also reflects how JIRA tracks and manages issues. Following diagram (Figure 1) shows the states machine of a JIRA issue.

Figure 1: an issue walks through these transitions and states to finish
(source: http://confluence.atlassian.com/display/JIRA/What+is+Workflow)

1 comment:

vadi said...

Hey, nice site you have here! Keep up the excellent work!








Agile Project Management