skwpspace yan pritzker’s home on the web

skwpspace is Yan Pritzker's home on the web

Blog :: Photography :: About Me

TwitterCounter for @skwp

Get the news feed
Get updates by email
Follow me on twitter

hello, i'm yan

This blog is about startups, blogging, Ruby On Rails, virtualization and cloud computing, photography, customer service, marketing, ux and design, git, and lots more.

Top Posts

planypus

I'm the founder of Planypus, the place to share your plans!

cohesiveft

Accessible, manageable, virtualized application stacks ready to download or deploy to the cloud!

flickr

PorstiluxwiresKeri JohnsrudMichelleConcerttributeherekittyapartment story (color)

Archives

Contact

Reach me at yan at pritzker.ws

Posted
3 January 2007 @ 12am

Tagged
software, thoughts

Bugtracking in the new millenium: how to build a better mouse..err..bug trap

It’s not Bugzilla’s fault that it sucks. When most of the bug tracking projects out there were started, we didn’t know rss, we didn’t understand tagging, we thought in terms of fields and hierarchies, and we thought proper usability and web design were out of our reach and not as important as getting a functional product out. Unfortunately some of the newer ones aren’t quite getting it right either. Well it’s time for a change. Someone has to build a better bug tracker, and here’s what you need to do it:

  • Tags. I don’t need to fill out the ten fields _you_ think my bug should have. I want to use my own system to organize bugs how I want. Instead of giving me 5 dropdowns, give me one textbox and a del.icio.us-style autocompletion system with tag suggest. Instead of the minute it takes me to fill out a bunch of dropdowns, I’ll just type “priority:1 release:2 interface backend !important”. I also want the del.icio.us people-networking system. I can suggest someone look at a bug using a tag “for:bob”. I suppose I can assign them to “assign:frank”, but I prefer that engineers ‘take’ bugs. Most tags will be free of semantics, leaving the user to create his own categorization system, but we can have a few helpful things like a special meaning for project or people tags.
  • Intelligent Bug Search. How many times have we had duplicate bugs input into the system by people too lazy to search for similar bugs that had already been reported? While I enter my bug data I want a panel alongside it to do a search for me in the background while I’m typing. Search should be based on keywords in my bug title and description. It should suggest a list of bugs which I can mouseover for a preview and pull in data from them as appropriate or simply abandon my entry in favor of another already reported bug.
  • N-dimensional reporting system based on tags. Use my tags to create graphs. Which release is having the most bugs? Is there a particular feature that is in trouble? A particular engineer who is swamped with bugs? All these things can be done by manipulating tag queries. No custom work needed, just give me the flexibility.
  • Easy state flow. Engineers should take bugs from a queue (self-assignment). As such, I want each bug to have an instantaneous “take”, and “put back” toggle. It should take one click for the bug to become mine or to be put back (with a comment on why it’s been put on hold). Maybe the toggle is between three states: “mine”,”nobodys”,”on hold” (meaning its mine but I won’t work on it right now). Nonetheless it should require only one click.
  • Automatic flow of tickets. Most successful projects these days have some sort of email reporting system…if there is a bug in production an email may be generated. The bug tracker should accept these emails into a queue. They should be easy to turn into bugs with a few clicks after a review: “discard/hold/make bug”. On that note, I want to be able to submit bugs by email too with special tags in the email so I don’t have to visit the site. Or a bookmarklet or browser plugin to do this. Give me the ability to tag incoming emails and set up filters based on source (for example support tickets from one channel, auto-generated exception reports in another channel). Also, desktop widgets.
  • RSS. There is no way to have a successful bug system without rss feeds for everything. Subscribe to the full feed, or based on any number of tags. The del.icio.us subscription system is pretty effective here (subscribing to tags, or people).
  • Good design. Color code and sort bugs properly. Give elements normal padding. Make the system visually pleasing. The nicer it looks the more I will feel comfortable in looking at it as I’m putting in bugs.
  • Proper URLs and bookmarking. The newer bugtrackers like collaboa are already doing this. Something like bugs.com/ticket/123, or bugs.com/tickets/tag/project:foo. This also gives power users a easy way to construct queries or bookmark their favorite locations. All urls should be human understandable. No “?queryparams=crap”.
  • Easy set up. It should either be packaged and sold as a virtual appliance or as a hosted service. Bug tracking is not my core business and it’s a waste of resources to set up and maintain such a system in house. This of course implies proper upgradability (auto-updates) in the case of the virtual appliance.
  • Extensible. Each action in the system should trigger an eventing system (script-based, or webservices based). For example, if I mark bug123 fixed, I can have a onFixed hook that invokes “mywebservice.com/fixed/bug123″ based on my configuration. Or it invokes the script “scripts/events/fixed” passing the bug as a parameter. The implementor can do what they want there..useful for tying into other project management systems, etc
  • Modular, portal-like. Now that I have good urls and rss feeds for everything I can easily set up a pageflakes/netvibes style portal view where I have a number of boxes containing my favorite searches (JIRA does this in a half assed and overcomplicated way, but not as simple and powerful as just having good URLs and rss feeds). Let me color code my boxes and move them around on my screen as I please.
  • What did I miss?


    7 Comments

    Posted by
    zimbatm
    3 January 2007 @ 10am

    Distributed. I would like to track tickets associated with my discributed SCM branch, but also on the upstream.


    Posted by
    Yan
    3 January 2007 @ 4pm

    Of course I forgot to list SCM integration explicitly…but the automatic ticket flow system should allow plugins…so we should be able to cross-link issues with commits.


    Posted by
    zimbatm
    3 January 2007 @ 9pm

    Yeah but you missed my point I think. I want the tracking system to be distributed along with the SCM. That way, the bug list is also distributed.


    Posted by
    Yan
    3 January 2007 @ 10pm

    @zimbatm

    Yeah I agree with you, that would be a good idea. Maybe a darcs-like implementation where I can record my source changes and bugs at the same time and then merge them upstream or have people look at my local repository and progress. On the other hand..bug trackers are most useful when everyone is on the same page..so if you’ve ‘taken’ a bug it should probably be marked as such in the global bug repository..not sure what you gain from having the actual bugtracking info distributed?

    What are your thoughts?


    Posted by
    Riel
    4 January 2007 @ 8pm

    Nope… I really can’t think of anything else, you’ve nailed it on the head.

    These are great notes for us as we’re building http://www.smrty.com to track issues and time spent on them. several of these are in there already, but there are a couple of real gems in your outline.

    the intelligent bug searching especially is a great idea, it’s really the missing link in terms of the typical bloat of the same bug being reported over and over again.

    Now figure out how to combine inteligent grouping of emailed in bugs so there is some auto grouping of like bugs that helps an admin sort them?

    Just thinking, people still just want to fire off an email whenever they have a problem.

    I have a question?

    Why don’t more apps have a “report a bug” link built into them… instead of fishing around in the contact section and being led down the garden path of their “knowledge base” (i hate that term) with no clear end in site… then you can direct the reporting style much more succinctly… so as I think about it, the only logical solution would be a hosted app that ties into your application and let’s users see common bugs reported as they are entering theirs.

    Pardon my mental process here… this is really good stuff.

    And by the way, my initial impressions of planyp.us are great, very well thought out application.

    Riel Roussopoulos
    IXLD Media Inc
    http://www.ixld.com


    Posted by
    yan
    4 January 2007 @ 8pm

    Riel

    Thanks for your comments! Good to see someone working on this problem.

    Time tracking is one thing I forgot to mention. Lots of bugtrackers leave this one out and I think it really helps to know that your release is 2 weeks behind due to bugs. Not sure estimation is worthwhile cuz it’s rarely close to being correct, but after you’ve solved the bug putting down how long you spent could be useful, but it has to be super easy, like one click inline editing, not waiting for a new page to load because that’s a major deterrent.

    As far as intelligent grouping, not sure if you’ll get any more intelligent than just having some dedicated support people sorting things. You could also maybe employ machine learning like bayesian or latent semantic indexing to try to sort bugs into buckets (interface problems, backend issues, etc), but in most cases the user reporting the bug has no idea where it came from and most users only see the surface manifestation in the interface anyway…

    I think I know why apps don’t have report a bug: people hate dealing with support emails. So they intentionally or subconciously make it difficult for users to send feedback. They’d rather have the user waddle through an hour of documentation reading…somewhere along the line we software guys forgot that the customer always comes first.

    Thanks for your comments on planypus..we are working through a big redesign right now as there are still many usability issues. We finally got a designer on board so expect some nice changes failry soon :)


    Posted by
    Riel
    4 February 2007 @ 6am

    I think the support mails should be sorted automatically into the bug tracking software: have a pop3 read that just sucks in anything sent to BUG@domain.com into the bug reporter, people are comfortable with email reporting, while it’s not the easiest to track and report on the receiving end, if it was integrated into the application it would be able to be uploaded to a “bucket - as you call it :)” and sorted from there (the sorting is our biggest problem right now, dealing with the duplicates.

    As for the timer, we just have a one touch link that turns on / off the timer as you’re working on issues.. the link is at the top of each issue, so as you start to read it, it’s easy to click the “TIMER” - or “SWITCH” as we call it… then as you reply or update the bug report later (assuming you’ve worked on it) you simply click the link again to stop the timer… or start a new timer on a new issue which will automatically turn the first one off.

    Thanks again for the mental work here Yan, I’m going to share this with my whole team.

    “Riel Roussopoulos”:http://riel.roussopoulos.net


    Leave a Comment

    Cafepress vs Zazzle: the good the bad and the ugly Planypus passes 1000 users!