An issue tracker is a valuable asset for any serious software development. Beside serving as a bug database, the tracker can be easily leveraged for technical discussion. GitHub, a popular code hosting service, provides a basic issue tracking system. How does it compare against another established player, Google Code Project Hosting?
From using the service of Google Code for a while, I found out that there are some important things which really help any software maintenance workflow: voting system, custom grid view, and issues relationship.
An easy way to determine what the users want is by giving them the choices and let the popularity contest begins. Google Code simplifies this approach, there is no need to create an external survey. Every issue filed in the tracker can be starred by anyone. From the maintainer’s point of view, if he wants to have a glance on what to prioritize in the future releases, he can simply let the issue tracker shows the most voted ones. As an example, here is the state of PhantomJS issue tracker, sorted by the number of stars:
Currently GitHub does not offer such a voting mechanism. The workaround is rather simple, just add a short comment, e.g. ‘+1’, to an issue. Because you gave that comment, you are enrolled in the participant list. An issue which gets a very long participant list means that a lot of people are involved there. It is another form of popularity contest.
However, care must be taken so that the issue does not get exploded into a Reddit-esque discussion. Due to its popularity, controversial or opinionated issues on GitHub tend to attract a particular set of crowd which often add a ridiculous level of noise to the subject. Many project owners are fine with it (after all, it drives the traffic and increases the exposure). However, some others still prefer to keep the issue tracker to its original intention and not to become a replacement for Hacker News.
For managing the issues, GitHub gives you a very nice color-coded labeling system. As for Google Code, you still get labels but they are not as fancy. One thing where it beats GitHub is the custom grid view. If you arrange it properly, it can be a quick substitute to a Kanban board. Change the arrangement again and now you can see who’s doing what. As another example, here is the screenshot of Esprima issues in a specific grid view:
Slightly related to above dashboard, one thing I really like from Google Code is being able to set-up a blocking/blocked relationship between issues. Granted, it’s not as flexible as JIRA (where you can have various types of relation) and I also miss the dependency tree like in Bugzilla, but this basic link of two or more issues proves to be very valuable. For example, I can designate a master issue, that kind of umbrella or catch-all for a big story (see Esprima issue 189), and then have the sub-tasks as individual issues which block the master. I am not aware of the same blocking relation for GitHub, although I think using the combination of issue cross-references, labels, and milestones will be the equivalent approach.
Do you like your issue tracker? Which features help you the most? Tell us!