Saturday, March 08, 2008

Review: Project Management with Jira

According to the Jira website, Jira is...

JIRA is a bug tracking, issue tracking, and project management application developed to make this process easier for your team. JIRA has been designed with a focus on task achievement, is instantly usable and is flexible to work with.


I had already been a casual user of Jira, but due to a business need I needed to look into it a bit further. I am rather impressed with the product, so I wanted to share some of my experiences.

Try Before You Buy

Atlassian, the company that publishes Jira really got this one right. Once you register on the site for free you can then download the application and generate a 30-day key. The key is tied to the "server ID", so you need to install Jira first before you generate the key. Once you plug in the key you now have access to the Enterprise edition, fullt functional in every way.

In my case we wanted to get some real-life experience, so we started using it to manage a real project. The project ran longer than the 30-days, but to Atlassian's credit, I went back to their website and generated another key that allowed us to use Jira for an additional 30-days. I did this several times, so you could potentially evaluate the product for many months if you needed to.

Sales Calls - None!

When you sign up on the Atlassian website and generate a product key, you will receive an automatic email from a Jira sales representative that says something to the affect of "call me if you need help". Besides that automatic email, I received no emails or calls from a sales representative. I really appreciated this.

The Install

This was incredibly easy. You simply download the zip/tar, decompress it, and run the start script. Jira has a stand-alone download option that ships with Tomcat and by default uses Hypersonic DB, which for evaluation purposes is all you need. The longest part of the install process for me was downloading the Jira distribution and copying it up to a server.

The Tools - Security

Jira has quite a few options for security. You can manage users locally, or point Jira to an LDAP server (which I have not tried yet). The users can then belong to groups, and users and groups can be assigned to projects. Each project as "users", "developers", and "admin" roles, and you can define what each of those roles mean on a per-project basis. And if that isn't enough, you can create individual issue level security schemes, and specify the visibility of comments and work logs.

In short, the security capabilities will meet all but the fringe use cases. You can read more about Jira's security setup in the Jira on-line documentation.

The Tools - Mailboxes, Workflows, and More...

There are just way too many good features to explain each in detail, so perhaps a quick summary will suffice.

  • Jira can listen to a POP3/IMAP mailbox and auto-create new issues for you.
  • Define workflows, the steps from project creation to completion.
  • Create custom issue fields, with a dozen or so field types built-in.
  • Backup everything to, and restore from XML files.
  • Turn on logging/profiling on the fly to debug Jira performance issues.
  • Built in SOAP and XML-RPC interfaces (although creating a SOAP client to connect to Jira was non-trivial in my case)
  • Run Jelly scripts to perform maintenance tasks.
  • Customize resolutions, priorities, and statuses.
  • CVS (and SVN with a plug-in) integration.
  • Integration with FishEye and Crowd, other Atlassian products.
  • And more...


The easiest way to find out if the tool has the features you will need is to just download it and try it out. For me this provided much more information than just reading the documentation on the Jira website.

Enhancing and Extending Jira

Jira makes it pretty easy to create plug-ins that you can distribute as a jar file and just drop into Jira's lib folder. Each plug-in jar file has an atlassian-plugin.xml file in it that described the nature of the plug-in to Jira. The plug-in may include reports, admin tools, extensions to the project and issue interfaces, or resources like images and CSS files. And not only can you add features, you can also extend existing ones in order to change their behavior.

This is all well and good, but I quickly found some limitations. First, the documentation is typically light on needed information, is buggy, or is a little old. In general I found that I needed to do a bit of searching between the Jira documentation, issue tracking system, and the forums in order to get the information I needed, and it still didn't answer all of my questions. For the rest I took a look at existing plug-ins to see how they had solved the problems.

Beyond the documentation one missing piece I found was that you can't use the Jira persistence engine without tweaking Jira's configuration files. This is problematic for me because I want to stay away from that, as altering Jira's configuration will make upgrades harder as I would need to re-alter the config for each upgrade, and retest the application as well.

In all fairness this is often not needed, as you can often attach arbitrary properties to whatever business object you want. In my case though, the Project object does not support this, so I needed to look at other alternatives for persisting additional project properties.

So mixed results here, but in general Jira plug-in system is pretty good.

If you need to perform customizations that go beyond a simple plug-in, paying customers of Jira can download the Java source code of Jira. This allows you to change the guts of Jira to your hearts content. Of course, this will make upgrading extremely difficult, but it is nice to know the option exists. This is also useful if you want to see what Jira is doing under the covers, making plug-in development a little easier.

The Cost

Software is expensive, especially if it isn't your standard home-user type software. So for what Jira is, it is fairly inexpensive, with options from around $500 to $4000. This also includes a year of upgrades plus email support for a year. This is a deal compared to other business applications.

For open-source teams the deal is even sweeter. You can use Jira for free! This would explain why a lot of open-source projects have adopted Jira.

In Summary

Features great, extensibility not bad, the price good. If you are looking for an issue/bug tracking tool and want a little more than the open-source alternatives, Jira is a great choice.

13 comments:

mcannon said...

Mate - great write up, thanks for the nice words!

FYI just on the extensibility thing, you can actually add properties to any entity in JIRA, including projects. If you ask on the developer forum, they should be able to give you the code snippets to do so. (I think it's something like EntityUtil.getPropertySet(GV).setSTring(key, value) or close :))

m

andreask said...

Actually there's a slightly neater way to get a handle on your own custom propertyset since JIRA 3.12. Check out the JiraPropertySetFactory

PM Hut said...

Hi Robert,

This is an excellent post.

I am interested in publishing an article comparing Project Management Software on PM Hut. Have you/or anyone else of that matter, written such an article. If yes, then please use the "Contact" form on PM Hut to contact me.

Thanks a lot!

Robert Hanson said...

mcannon and andreask, thanks for pointing out those options, I will check them out when I get into the office today.

I am also planning on reviewing FishEye and Crucible. All of them are really great products, and have allowed me to streamline our development processes.

Robert Hanson said...

Thanks "PM Hut", I only took a quick look, but the site looks pretty useful. It is nice to see a site like that focused on the topic.

clipper6513 said...

Thanks Robert,
I am a first time user and I'm drowning in the schemes and workflows. How did you wade through all layers?

Robert Hanson said...

Clipper,

It took a lot of patience, but once you "get it", everything starts making sense.

Hmmm... it sure would be nice if there was a book on using and customizing Jira.

adam g. said...

Clipper,

Try forums.atlassian.com for help on wading through schemes, workflows and all things Jira.
Very helpful, very responsive group of users and developers. My only advice is to search before you post a question.

sexy said...
This comment has been removed by a blog administrator.
Dave said...

JIRA can now be purchased for $10 USD for 10 users! Definately worth a look at, we are using it for 100 users and are happy we made the change (from bugzilla).

Robert Hanson said...

@Dave, yeah, I think that happened last year. BTW - I am still a very happy Jira user. I also run their Crucible and FishEye products. Crucible makes peer code reviews (which are so important) fairly painless, and FishEye is great for searching for old code examples in your repository (among other things).

Project Management Software said...

A Project Manager is like a midwife – he/she will deliver the project and then moves onto the next one. The Project Manager cares for the product up until the point when the product is delivered – then hands the responsibility

Anonymous said...

I have found that JIRA's customization can be very confusing in terms of configs and work flows, issue types, custom fields, etc. One should be confident and willing to do a lot of homework when taking on the implementation of anything other than out-of-the-box functionality.

Jira is also one of these products that its makers believe is so good that if you want to understand how to use it, you have to pay extra for recorded instructions, or ask other users who might have figured out how to do something you wanted to do. Lastly, if you want support, nevermind that you already have an account, a username and a password. For support, you have to create another user id and password... and then you are allowed to ask other users if they get it.