JIRA - Defect Tracking System

By Anand Ramdeo on May 5, 2011 Comments

Jira is a very powerful tool and can be used as defect tracking system as well as planning tool for Agile projects. In this article, I will describe some interesting ways in which Jira can be configured and improve your productivity - with respect to defect tracking systems. Like many tools, Jira provide you capabilities and how you use it to increase your productivity is up to you.

Lets start with project categories. When you login in to Jira, in the top left corner there are two links for Project and Project Categories. Using project category you can define how projects should be categorized. For example, you might want to categorize projects based on - whether they are being dealt by Team A or Team B, whether its a new development or ongoing maintenance and so on.

Creating new categories and changing them is very easy and probably self explanatory. Categories can be changed from the project view , i.e click on Administration and select the project you want to change. This will give you various options which can be changed for this project, including project category.

One thing you might want to keep in mind is, there could be only one category for the project. So you can not have categories in the lines of Team A / Live project or Team A / New project. But you can always give categories descriptive names like Team A - Maintenance project, Team A - Live project though.

After defining appropriate project categories, you can start exploring / creating various roles using role browser. For smaller teams this might not be very useful, but for larger teams roles can be used very effectively for triaging defects, creating notification schemes and so on.

Third important configuration setting for Jira could be Events. Events are very powerful and acts like triggers. With events, you can specify interesting things like how Jira screens will look like when specific event is triggered, what workflow operations will be available after specific event and who will get notification for this event. For example, if you want to change notification scheme (For example - Do not send emails for comments) or workflows (For example - It should not be possible to close defects directly, even if it is invalid defect it should be resolved, marked as invalid and some one else should close it) etc can be configured here. In order to make changes here, you need to create / modify notification / workflow schemes and associate them with the events.

That brings us to the Workflows, but what is workflow? Workflow is very important feature and lets you configure what happens in every step, how defects / issues are transitioned from one state to another and what options should be available in every transition. All these transitions work as trigger and you can specify conditions, validators or post transition functions for every transition.

Most of the operations in Jira are configured as schemes. Jira lets you create various schemes for workflows, notification & permissions. You need to create separate schemes, because you might have need for different scheme for different projects. For example, if you have resources from vendor working on a project, you might need separate permission scheme for them. Schemes are even used to control look-n-feel of Jira, to decide which fields will be visible on every transition and so on. These can be achieved using Screen schemes.

One of the most interesting feature of Jira is configuring dashboard. On Jira, you can have multiple dashboards and on every dashboard you can publish reports, which are useful for you, may be status of defects, defects for components / projects and so on. This will allow you to get up-to-date information on the Jira front page. In order to configure your dashboard, you need to build your query using the Find Issue option and built chart from the result set. These charts can be published on the home page / dashboard and now whenever you visit Jira dashboard, these charts will be updated with latest information.

So in nutshell, you start with categorizing your projects and defining appropriate roles and users. You than configure various issue types (Defects, stories, sub-tasks) and fields (Priority, Severity, blocking issues, releases and so on) and define events and what should happen when those events are triggered. You also create various schemes for notifications, workflows, screens etc and apply them to projects as needed. After project is configured properly, you configure dashboard to display up-to-date information based on the various queries.

Have you used Jira in any other interesting way? Please leave a comment and let us know.

blog comments powered by Disqus
Finished reading? Browse all posts »