Some recent discussions here along with
our current ramp up has had me thinking about our own bug / issue
tracking, which so far has simply been a shared Google Spreadsheet.
This has worked perfectly fine for our small team in prototyping /
prepro, but is not expected to scale. I've been wondering if there's a
way we could make GMail work as a bug database. It seems like it's
nearly the perfect tool:
* Web based
* Labels, which are far superior to categories / folders
* Excellent search
* Discussion history on bugs
* Quick / easy / familiar interface
* Supports attachments for screenshots etc
The main trick would be getting the workflow right in a multi-user environment. So here's my brainstorm on the main activities associated with bug management and how they might (or not) map to GMail.
Describe a bug
Presumably we have an email account (a real gmail user). Submitting a bug is simply writing an email from your work account to the bug tracker user. Subject is the short description, Body is the long description / repro steps / attached screenshots etc.
Store the bug info
Since all emails go to the bugtracker user, that's the database.
Categorize a bug
Categorization is done via GMail labels. This is a bit tricky since labels wouldn't synchronize correctly if the tracker was forwarding things to you, or if you were pulling stuff via pop/imap. I do think that it's possible to actually synchronize changes among the team by writing a google gadget or something, but I'm exploring how we might be able to do this with nearly 0 implementation effort. So in order to label stuff, do queries on labels, and perform most other management people would need to be logged into the bugtracker@OurCompany.com account. This is problematic for us since we use Google Apps for domain to host all our work email and you can't be logged into both your work account and the bug account simultaneously. Not an issue if you don't use gmail for work, but we'd need to create another Google Apps account with a different domain like OurCompanyBugs.com. We'd probably want to do one tracker per project, so projectX@OurCompanyBugs.com. Fortunately this is trivial.
Assign a bug
This is actually just a specialized form of categorization. Each team member is a label name. Assignment occurs by labeling the bug with one more user labels.
Get a list of bugs assigned to me
Click on your name label. Done.
Get a list of bugs assigned to all programmers that are less than 6 months old but only if they were assigned on a Friday (or some other complicated search)
Write the query once and save it off with the Quick Links gmail labs add-in. There's other label features that could be useful like SuperStars for indicating severity icons etc.
Comment on a bug
Reply to the email. Also has the nice side effect of bubbling the conversation to the top of the inbox.
Close a bug
Again, just a label. Archiving the email thread removes it from the Inbox (which is just another label). So open/closed status is simply whether or not it has the Inbox label.
Any comments, suggestions, and more importantly reasons why this might not work at all are appreciated. :)