Newsletter sign-up
View all newsletters

Enterprise Java Newsletter
Stay up to date on the latest tutorials and Java community news posted on JavaWorld

What issue tracking system is best for you?

A review of Bugzilla, Trac, and JIRA

  • Digg
  • Reddit
  • SlashDot
  • Stumble
  • del.icio.us
  • Technorati
  • dzone

Page 2 of 2

Trac: A wiki-based solution with superb integration with Subversion

Trac is a lightweight open source wiki-based issue-tracking tool with excellent integration with Subversion. It does not provide as many features as Bugzilla, but it is easy and intuitive to use.

Installing Trac is not particularly difficult, though, like Bugzilla, you do need to work at the command-line level and make sure your system has the required dependencies. Trac uses Python, plus a few other associated libraries, and can run on MySQL, PostgreSQL, or SQLite. Trac can run as a standalone Web server or be installed on a "real" Web server such as Apache.

Compared to other issue-management solutions, Trac takes a different approach in several areas. The first, and possibly the most striking, is that Trac is in fact a wiki — any page can be modified by users with appropriate rights. Wikis are a powerful tool in today's development world: indeed, with a minimum of communication and training, every modern development project could probably put a wiki to good use. Trac is an excellent wiki for a development team, as it provides seamless integration between issue and release management, agile team communication techniques and the source code repository.

This leads to the other big innovation in Trac: its close integration with Subversion. The wiki syntax used in Trac lets you reference Subversion revisions, change-sets and even files. For example, a comment in an issue can contain a hyperlink to a particular Subversion change-set. The Trac wiki lets you add direct links to various objects using a special syntax. For example, "#21" refers to ticket No. 21, and [124] refers to change-set (or revision) No. 124. You can also browse the source code repository directly from within Trac, displaying both the actual source code and the modification history.

Trac provides a simple but powerful full-text search functionality, which lets you search not only tickets, but also wiki pages and change-sets. The search also recognizes the Trac wiki syntax, so you can go directly to a change-set, ticket or report simply by entering its number.

Another way to find tickets is to use the View Tickets view, which contains many useful predefined reports, such as Active Tickets, My Tickets, or All Tickets by Milestone. You can also create your own custom query, which you can build using an intuitive query builder (see Figure 5). More sophisticated reporting features are limited: there are no fancy graphs or charts, nor can you track ticket data over time, for example.

Figure 5. Building a custom query in Trac. Click on thumbnail to view full-sized image.

Entering a new ticket in Trac is easy (see Figure 6). As mentioned earlier, Trac's wiki-based architecture eases the insertion of links to other tickets, change-sets, or to files in the source code repository.

Figure 6. Entering a new ticket in Trac. Click on thumbnail to view full-sized image.

Once the ticket has been created, it can be viewed and updated by other users (see Figure 7).

Figure 7. Viewing a ticket in Trac. Click on thumbnail to view full-sized image.

The workflow in Trac is lightweight. Once a ticket is created, a ticket can be assigned to (or accepted by) a user. Once it has been fixed, it is marked as "resolved" (see Figure 8). There is no provision for a state between "resolved" and "closed," where quality assurance can verify the correction, as found in Bugzilla and JIRA. A more sophisticated workflow model is currently under development.

Figure 8. Available actions for a ticket in Trac

Trac provides many views that make daily issue-management activities easier, so you can easily navigate through the project, going from tickets to revisions to source code, and so on. The Timeline view is a powerful means of keeping tabs on a project. Any activity on the project displays here, including activity involving tickets and changes to the source code repository (see Figure 9).

Figure 9. The Trac timeline (from the Trac Web site). Click on thumbnail to view full-sized image.

The Roadmap view (see Figure 10) lets you track project progress through milestones (which can be synonymous with iterations, sprints or whatever you prefer). The Roadmap view gives a graphical view of the number of tickets closed compared to the total number of tickets for each milestone. Because tickets can represent tasks as well as bugs, this can also be a useful way to coordinate and track team activity and progress.

Figure 10. A typical Trac roadmap (from the SpringIDE Web site). Click on thumbnail to view full-sized image.

You can customize Trac to some extent. Because it's a wiki, you can modify the content of every page as much as you like. You can also tailor the look and feel somewhat by customizing the Cascading Style Sheets stylesheets and adding your own logos. You can also customize the main ticket fields such as priorities, severities and ticket types.

Trac is a solid lightweight issue-management solution well adapted to small teams, especially when Subversion is used.

JIRA: Nice if you can afford it

JIRA is a widely used and well-regarded commercial issue-management tool. It is well known in the open source community because Atlassian has been known to offer free licenses for open source projects.

Installing JIRA is a breeze because JIRA is implemented in Java. The JIRA installation packages come either as a standalone bundle, including a Tomcat Web server and a HSQL database, or as a war file that you can deploy to your own Java Web server. You can use it out-of-the-box with an embedded database or connect it to most any database compatible with Java Database Connectivity: MySQL, PostgreSQL, Oracle, DB2, and so on. However, according to the documentation, some databases (PostgreSQL and MySQL) do work better than others (Sybase and Oracle).

When you first start and connect to the JIRA server, a wizard helps you configure your server directories, administrator password and e-mail notification details. When you're finished, you are ready to use the actual product.

The JIRA user interface is a pleasure to use, and is intuitive. The home screen contains numerous graphical reports designed to give you a quick overview of the project's current status: the list of issues assigned to you, your "in-progress" issues, the number of open issues grouped by priority, and so on. A rich set of predefined issue filters and reports ease the discovery of information you are looking for.

Figure 11. The JIRA dashboard. Click on thumbnail to view full-sized image.

The JIRA search functionality (see Figure 12) lets you perform full-text searches with filtering on key fields such as issue type, status, affected or fix versions, reporter, assignee, and priorities, as well as by date. The JIRA search is simpler and less cluttered than the equivalent Bugzilla Advanced Search screen. Search results are displayed in tabular form, with many visual cues.

Figure 12. Searching for issues in JIRA. Click on thumbnail to view full-sized image.

Creating new issues is easy and requires minimum fuss (see Figure 13). The workflow resembles that used for Bugzilla issues, though with a few minor differences. An "In Progress" bug, for example, is a bug that has been assigned to someone and is being actively worked on. You can also tailor the workflow to your specific needs, adding or removing steps in the workflow.

Figure 13. Creating an issue in JIRA. Click on thumbnail to view full-sized image.

Like Bugzilla, JIRA is well adapted to large projects. JIRA handles multiple projects and project categories with ease, and you can set up permissions and various levels of security to limit who has access to particular projects, or even particular issues.

JIRA is highly configurable — from directly within the administration screens, you can modify everything from issue types and priorities to the look and feel of the Web site.

JIRA lets you manage versions and product releases in a simple, intuitive manner. You can define versions, track version releases and release dates, and generate release notes for a particular version with the list of all fixed and unresolved bugs for that release.

JIRA has a voting feature similar to the one in Bugzilla. You can also choose to "watch" an issue, to receive notification whenever the issue is updated.

Reporting in JIRA is limited to search results: there are no graphs or bar charts, and there is no easy way of keeping track of time-related data such as the number of resolved issues over time.

As mentioned, JIRA, unlike Bugzilla and Trac, is a commercial tool. JIRA comes in three versions: standard, professional and enterprise, with some of the more advanced features such as project categories, configurable workflow and issue-level security reserved for the higher-level products. Prices range from $1,200 to $4,800 for a server license. Atlassian, the editor, is also closely involved in the open source community and offers free licenses for open source and non-profit organizations (check out their Web site for more details).

Conclusion

These products reviewed are among the most widely used in the Java community. Bugzilla, with an uninspiring user interface, is rich in features, but undeniably cumbersome to install and to maintain. Trac is a good, lightweight solution that should be seriously considered by any development team using Subversion. JIRA is a solid, powerful solution, providing almost all of the features of Bugzilla, and more, in an eminently more usable (and more productive) form — but at a cost.

When choosing an issue-management solution, many factors must be considered. Features are important, but so are other factors: How big is your organization? Who is going to host and maintain the tool? What are your security requirements? Is your development style more suited to an agile, collaborative approach or to a more structured, traditional structure?

Also, before you make your decision, don't forget to try them out!

Would you recommend another issue-management tool not covered here? Respond in the discussion thread that appears below.

About the author

John Ferguson Smart has been involved in the IT industry since 1991, and in Java EE development since 1999. His specialties are Java EE architecture and development, and IT project management, including offshore project management. He has wide experience in open source Java technologies. He has worked on many large-scale Java EE projects for government and business in both hemispheres, involving international and offshore teams, and also writes technical articles in the Java EE field. His technical blog can be found at http://www.jroller.com/page/wakaleo.
  • Digg
  • Reddit
  • SlashDot
  • Stumble
  • del.icio.us
  • Technorati
  • dzone
Comments (17)
Login
Forgot your account info?

Bontq - Online Bug and Issue Tracking SystemBy Anonymous on August 15, 2010, 7:35 pmBontq is an online bug and issue tracking system. It provides the easiest way to manage projects, track bugs, add tasks and even store all your documentation. Our...

Reply | Read entire comment

respondBy Anonymous on August 9, 2010, 10:22 amDon't have cash to buy some real estate? You not have to worry, just because it's achievable to take the credit loans to solve all the problems. So take a short...

Reply | Read entire comment

VisionProject as Issue Tracking SystemBy Anonymous on July 29, 2010, 10:08 amWe are using VisionProject. It is a great system for Issue tracking and has helped us a lot. It is extremely good, since it includes everything from project management,...

Reply | Read entire comment

We use FIT Issue TrackingBy Anonymous on June 9, 2010, 3:06 pmwww.fittrackingsolutions.com We found it easier to configure and it is extremely flexible.

Reply | Read entire comment

Bug Tracking from a software houseBy Anonymous on May 26, 2010, 6:24 pmHaving used various systems we now use our own system that has its roots in our helpdesk systems. Take a look at http://www.bugcentre.co.uk

Reply | Read entire comment

View all comments

Add comment
Anonymous comments subject to approval. Register here for member benefits.
Have a JavaWorld account? Log in here. Register now for a free account.
Resources