Unfeature 3: Advanced Search   by Ryan

For our next unfeature we’re talking about advanced search capabilities.

Unfeature

If you aren’t familiar with the term, it often involves a huge form like the one shown here.

Wow!

Bugrocket will never have a form that resembles this screenshot.

Besides the obvious length and visual complexity problems of this UI, is it really all that useful? Do you need to find only bugs which someone has specified affects only Windows 95? Or only bugs which affect Windows 95 and were marked P4 and which Joe is a commenter and which the assignee changed to Mike between March and June of this year?

We consider that to be plain old busy work that no one should ever have to do. Even filling out those fields in the first place is busy work no one should have to do!

Also, having so many specific fields to search by is a misfeature. How many times have you seen ‘results’ along the lines of:

Try more general keywords. or Try fewer keywords. or Zarro Boogs found.

The more separate fields you fill out with specific criteria the more often you end up right back on the advanced search page twiddling knobs and controls.

Trade-Off

Searching should generally be a last resort. On the average small team’s project you can probably just guess where the bug you’re looking for is! But what if you aren’t sure one exists at all. Clearly a method of searching is going to come in handy someday.

For the first bit of Bugrocket’s travels we had few enough bugs to go through that it was a mere 30 second job to look through the list and use something old-school like your browser’s ‘Find’ feature. This worked pretty well since on a small team you can also just sort of call out “hey did we bug that XYZ issue?”

That doesn’t scale though. 300, 500, 1000+ bugs on 2, 5, 10+ lists… You’ll start to see a problem. So we needed to be able to search, but we don’t want to spend any time doing it (and we certainly don’t want the bug entry process to require 20 fields to be filled out).

Conclusion

We think the best searching experiences are the ones where you just type something sane, and you get useful results. So we just put a search box in the tickets menu. You type what you’re looking for — we’ll try to find the text in:

  • the title
  • the tags
  • the first comment

And we’re also supporting some extensions that you can incant to make magic happen, for example:

  • status:closed
    to find closed tickets (also works with other statuses)
  • assignee:mike
    to find tickets assigned to the first person who’s name looks like ‘mike’
  • reporter:joe
    same deal for reported by ‘joe’

Short versions of these will also work (s:, a: and r:).

You get the best of both worlds: the 99% case of just ‘find me a bug about facebook’, and you can also dig a bit deeper if you need to — but we do it without packing an advanced search page full of dropdowns and checkboxes.