Recently, I've been thinking a lot about bug trackers. For those who aren't in the know, bug trackers are websites that allow software developers to, well, track bugs in their software.
More specifically they allow management of the entire life cycle of a bug report. Starting with the report itself which probably comes from a user of the software, all the way through to the final deployment of the fixed code in the application.
There are numerous free and paid for bug trackers out there - all of them suck.
Well, I guess that's a bit unfair, let me rephrase that, all of them suck if you aren't a developer.
Let me give you an example, you've recently downloaded the latest craze in social networking apps: TwitBook. You launch the app so you can share pictures of cats with your friends, only for it to crash on you. Disappointed, you helpfully decide to report a bug to the developer so they can fix it and you can finally share your "angry cat" picture.
You search for the app's bug tracker, and find a hideous looking page, styled mostly in military grey, that requires you to create an account - OK, fine, you really want this bug fixed so you go ahead, fill out some personal details, your age, name, address, favourite pizza etc.
Next, you get told to check your email and click the link, fine, pretty standard, I mean it's another step, but whatever. So, you open your email, validate your email address, all is good.
Yay! You are signed in, you click "New" - which you assume means "Report Bug", (because no-one is going to give you a button to generate new bugs in the application, that would be crazy).
Finally you can report the bug, you skim through the fields: Component? Version? Severity? Target Milestone? WTF? That's it, you give up, you're frustrated and pissed off, you decide to email your "angry cat" picture to your friends along with a rant about how bad TwitBook is.
This is only a slight exaggeration. This is almost exactly how Bugzilla behaves, and it's not alone. The real issue here is that every single bug tracker that I know of tries to use the same interface for two completely different audiences, who need to do completely different tasks.
Users just want to report a bug or request a feature, and get told when it's fixed. Developers need to triage bugs, categorize them, assign them, prioritize them, discuss them, get notified about them, change their status, link them to commits in the version control system of their choice, mark them as resolved... you just cannot provide the same interface for these two audiences and expect both to have a pleasant experience.
So, bug tracker developers, I implore you. Write a user facing version of your bug tracker, one that makes reporting a bug as easy as possible. One that is designed by an expert, and hides the complexity behind a veil of elegance. Then perhaps we can make users reporting bugs the norm, rather than the exception.