Monday, 26 January 2009

Advanced search for advanced users

    German language is very famous for giving one-word description for very peculiar things. Advanced search functionality which forces user to fill several controls with different ranges is not exclusion. It can be described by word benutzerunfreundlich (User unfriendly). This is very good word because its pronunciation is as unfriendly for English-speakers as substance it describes.
    About five month ago I’d met introducing this functionality with a great skepticism and finally yesterday advanced search functionality has been finally removed from one of our products called Lupris.
    Lupris is system to perform research in goods data base to mine data for another system called XUT. Main feature of Lupris is browsing large amount of data. It also allows inputting market notes to the goods. Data records about goods are quite inhomogeneous and can belong to one of 16 different types. Some of those attributes like “Price”, “Short Name” and eventually “Type” are ultimate for all. Others like quantity for one type and weight in kilos for another can be treat as the same fields and merged in reports.
    Advanced search pretended to be good addition to existing full text search: product owners decided to create powerful search for advanced users. And eventually this functionality appeared to be poorly tested, badly developed and unused.
    This is very usual how so called functionality for advanced users terminates. But why advanced search is so unpopular? I'd better explain more generally: why functionality for advanced users is so unpopular? During my last visit to customer, I discovered that actually advanced functionality in our system already unknown to end-users! I have several reasons for that:

  1. In complex systems even advanced users are often advanced in one direction, but very naïve in another. That’s why advanced users rarely have common definition how things like advanced search should look like.

  2. Advanced users are rare. Unless we are are talking about usual enterprise systems, not something very specific or software development tools. Otherwise they are simply outnumbered by common users, which will find advanced search functionality at least useless.

  3. Among 10 advanced users there should be one even more advanced who will blame functionality in any case.

    In fact we should not prove why functionality for advanced users won't be used, but vice versa:
Before introducing functionality we should prove that it will be used

    Statement that advanced functionality would be popular one day is implied from very dubious assumption that every common user wishes to be advanced. That's not true at all: even for people who uses computer on daily basis.
    From technical point of view there are even more reasons: E.g. advanced search is very difficult to test and for bug fixing. Practically if your advanced search form has 10 input fields there should be like 100 possible cases just to conduct surface test of happy path.
    I have good example how quite large and successful company had burned its fingers on that. Microsoft has hundred of millions users and millions of advanced users and probably could count on strong community of advanced users, but their bid was IMHO wrong when they created search companion in MS Windows XP
    They were even forced to introduce Windows Desktop Search as something more usable. And since then many people still believe that advanced search can be usable an masse. XUT and Lupris product owners still appreciate advanced search and promotes it in XUT and other products within our organization. Ironically, they all use Apple, Sun and prefer open source products having apparently strong anti-Microsoft sentiments, but still repeat the same way of thinking. It reminds one of the suggestion about Microsoft
Can’t Live With ’Em and Can’t Live Without ’Em