Brad's Books and Organizations

Books

Books

Organizations

Organizations

Hi, I’m Brad Feld, a managing director at the Foundry Group who lives in Boulder, Colorado. I invest in software and Internet companies around the US, run marathons and read a lot.

« swipe left for tags/categories

swipe right to go back »

It’s The Little Things – Or Why Windows Mobile Contact Search Sucks

Comments (20)

There is a great Bill Gates email from January 2003 titled Windows Usability Systematic degradation flame that is making the rounds on the web.  I love a good rant and even though this one is dated, Gates says in great detail what a large number of Windows users have summarized over the years as "shit – why won’t my damn computer do <blah>."

I’m a heavy computer user and have some variation of this thought on a daily basis.  One of my special talents is finding bugs and breaking things – just ask any of the companies that I’ve invested in who their most "useful" (where useful is a euphemism for "annoying") alpha tester is.  Think of me as helping improve software quality on planet earth.

Now – software quality is a complicated thing to measure.  Not all bugs are overt ones.  Let me give you an example of a particular pernicious Microsoft one that no one seems to ever prioritize to fix (no – I’m not going to pick on Windows Calculator again, although I could.)

I use a Windows Mobile-based Dash.  I expect I’ll try the iPhone again on July 11th now that it actually syncs with Exchange, but until then I’m tethered to my Dash.  I love the form factor and have trained my muscle memory to deal with having to press multiple keys to do things that I should be able to do with one keystroke – mostly due to design flaws in Windows Mobile.  I’ve used some variant of Windows Mobile for the past eighteen months (I think starting with Windows Mobile 5; I’m currently using Windows Mobile 6.1.)  If I were Mr. Windows Mobile UI Designer, I’d change a bunch of things, but it works well for what I need it for, which is primarily email, calendar, tasks, contacts, phone calls, IM, and twitter.  And sync.  My data needs to transparently sync with my Exchange server without me having to do anything.  Oh – and my BlueAnt bluetooth headset.  And I’m sure there are a few other things.

Here’s the problem – the sort algorithm on contact lookup is terrible.  I have a large contact list (5048 as of today).  Searching for "Stan Feld" should be immediate since that’s how it’s listed in the address book.  Progressively typing S then T then A then N should bring up "Stan Feld" immediately.  Typing "Stan Feld" into the To: field on the email program should be immediate.

Nope.  The delay is anywhere from 10 to 30 seconds.  At some point I decided to try to figure out the underlying algorithm.  My guess is that it’s doing a full table scan of first_name + last_name for each letter typed.  There doesn’t appear to be an index – either fixed or dynamic – and as a result the time for most searches is approximately linear based on the number of letters typed.

Now – if this problem was in Windows Mobile 5 but fixed in an update, I’d let it slide.  I’ve done at least three (I think four) major updates of the software since I’ve had my Dash.  There has been virtually no improvement in this feature.

Whenever someone asks me about my Dash / Windows Mobile, I tell them that I generally like it except for this one thing.  I then describe the thing. Occasionally I’ll show the thing.  And then I feel stupid that I’m still using this phone since I spend so much time looking up contacts or completing names in email fields.

Having written my share of sort algorithms, I expect this is less than 50 lines of code regardless of which language it is written in.  It is sophomore in college computer science type stuff, not PhD stuff.  Optimizing this to improve performance by 10x – 100x is maybe a day or two of a single programmer’s time.

This is not a Microsoft-specific problem.  I could have picked on anyone.  I’ve got a long list of Apple issues like this, plenty of Google issues including some remarkably silly ones, and – well – don’t get me started on the Yahoo ones.  All of the companies I invest in have problems like this.  It’s just an endemic part of software.  And one that users shouldn’t have to put up with.

It’s also not limited to software.  When filling up my car recently, the gas pump clicked off at $75.  I’d noticed this happening periodically, but now it was happening every time.  Gas is now over $4 / gallon.  Each of my cars has a 20+ gallon gas tank.  $75 doesn’t fill up the tank in any of them (and in at least one it doesn’t come close.)  There was a point in time when I’m sure someone decided that a way to mitigate credit card fraud at the gas pump was to limit the amount of each transaction to $75.  Now all that does is inconvenience a large number of customers with a mysterious cut off point.

If you develop products (especially software) for a living, never forget that people remember the little things.

  • Luke G

    I have the same issue in Outlook. Its painfully slow search is one of the factors that makes Xobni so darn useful (in certain contexts, at least).

  • Eric

    Hmm, that's not a good thing to have to put up with at all. . .

    Have you read about Google's OS for mobile devices (a.k.a. Android) much?

    • http://www.feld.com Brad Feld

      I’ve read plenty about it.  It’ll be interesting to see it when it eventually ships.

  • http://robjohnson.tumblr.com Rob

    You're getting closer to being a Mac guy — you remembered July 11. And I bet you didn't even use Google.

  • kip

    You know the discussion when they were looking for use case scenarios is “we'll never get someone with THAT many contacts.” Too bad the code isn't open source.

  • Dave

    Great post. What's interesting is that these are the sort of things that startups do really well, because without a customer base, compatibility issues, a development priority schedule, etc., they can focus on these obvious issues of usability. Then as they grow the cycle starts over again.

  • Zach

    On S60 I use an app called SkyeQuiKey by Skyestream. From the standby screen I can just start typing a contact name (or application or web bookmark) and the app will drill down as I type. There is no lag, it's instant. Once I get to the contact I'm looking for I can open it or initiate a call / SMS / MMS / email with one button press. It also has a history feature so my most-accessed content is always listed at the top for even faster access.

    It's probably the most useful app on my mobile. My guess is that something similar exists for WinMob.

  • Steve Bergstein

    One quibble and, I hope, a point: the performance of a search algorithm isn't a UI design issue – it's an algorithm issue. If they fixed the problem, the keystrokes you type wouldn't change at all – only the speed of the search.

    At one software company I worked at, I was told that “usability doesn't sell software” and that our CEO didn't “believe in usability.” It may well be true that usability doesn't generate sales. When I worked for “big consulting co,” we would evaluate software based upon a prioritized list of client-required features. I can't recall that “easy to use” was ever one of them. On the other hand, the software CEO worried a lot about adoption and penetration into our customers' organizations. I suspect that usability would have a big impact on that.

    Every engineer who designs anything to be used by another human being should be forced to read (at a bare minimum) Donald Norman's “The Design of Everyday Things” (see http://www.amazon.com/Design-Everyday-Things-Dona

    • http://www.feld.com Brad Feld

      I agree with the quibble.  I didn’t intend to imply that the problem was a UI problem.  I want the on Contact Search to work exactly as it does.  I just want the search algorithm fixed.  My UI issues with Windows Mobile are more far reaching, although I put them all in the category of “on the margin.”

  • Jim W.

    You may not want to spend more money on a WinMo device, but two programs can solve your problem. SPB Mobile Shell does what you describe by default – it's a complete navigation replacement for the core of that o/s. My preference is Voice Command however. It's just about 100% accurate dialing with my 2600-ish contacts.

  • Gary

    On the gas issue, it wasn't too long ago that the limit was $50 with a lot of stations… back then (2004) when gas was “cheap” and I had an H2 (thankfully I opted out of that before gas prices started rising), I remember constantly being frustrated by the “fraud detection” system…

  • http://www.bijansabet.com bijan sabet

    Great post brad.

    the funny thing about the “Bill Gates rant” is that I don't think he was mad enough.
    After going trying for over an hour and not being able to download Windows MovieMaker, I think my head would have exploded if i was the ceo/founder of msft at the time.

    something tells me that emails was sanitzed.

  • http://blog.salestrakr.com Paul Freet

    I don't get how this can possibly be so slow. Our salesforce-automation program Salestrakr does a search for first name, last name, company name AND sound-alikes. Just using partial letters such as 'sta'. And returns a result within 2-3 seconds using Ajax OVER THE INTERNET! Has Microsoft lost it? (did they ever have it?)

  • Kelly Taylor

    I often hear the 80/20 rule invoked as an excuse for not making things perfect. Just because the 20% of your features that get used often are well built doesn't mean the rest of your app can suck. Thanks for the post Brad.

  • The BiggerIssue

    The point you are all missing is this… you paid for it. Regardless of the company that created the software that sucks, regardless of how bad it sucks, the fact that you are compaining means you already gave them your money. This once again proves that a company's money is better spent on marketing than R&D.

  • Bob

    Windows Mobile does suck especially after having a BlackBerry. I am moving to an iPhone.

  • Luke G

    I have the same issue in Outlook. Its painfully slow search is one of the factors that makes Xobni so darn useful (in certain contexts, at least).

  • http://intensedebate.com/people/rnjohnson rnjohnson

    You're getting closer to being a Mac guy — you remembered July 11. And I bet you didn't even use Google.

  • http://intensedebate.com/people/bfeld bfeld

    I’ve read plenty about it.  It’ll be interesting to see it when it eventually ships.

  • kip

    You know the discussion when they were looking for use case scenarios is "we'll never get someone with THAT many contacts." Too bad the code isn't open source.

  • Dave

    Great post. What's interesting is that these are the sort of things that startups do really well, because without a customer base, compatibility issues, a development priority schedule, etc., they can focus on these obvious issues of usability. Then as they grow the cycle starts over again.

  • Jim W.

    You may not want to spend more money on a WinMo device, but two programs can solve your problem. SPB Mobile Shell does what you describe by default – it's a complete navigation replacement for the core of that o/s. My preference is Voice Command however. It's just about 100% accurate dialing with my 2600-ish contacts.

  • http://intensedebate.com/people/Zach Zach

    On S60 I use an app called SkyeQuiKey by Skyestream. From the standby screen I can just start typing a contact name (or application or web bookmark) and the app will drill down as I type. There is no lag, it's instant. Once I get to the contact I'm looking for I can open it or initiate a call / SMS / MMS / email with one button press. It also has a history feature so my most-accessed content is always listed at the top for even faster access.

    It's probably the most useful app on my mobile. My guess is that something similar exists for WinMob.

  • http://intensedebate.com/people/bfeld bfeld

    I agree with the quibble.  I didn’t intend to imply that the problem was a UI problem.  I want the on Contact Search to work exactly as it does.  I just want the search algorithm fixed.  My UI issues with Windows Mobile are more far reaching, although I put them all in the category of “on the margin.”

  • Gary

    On the gas issue, it wasn't too long ago that the limit was $50 with a lot of stations… back then (2004) when gas was "cheap" and I had an H2 (thankfully I opted out of that before gas prices started rising), I remember constantly being frustrated by the "fraud detection" system…

  • bijan sabet

    Great post brad.

    the funny thing about the "Bill Gates rant" is that I don't think he was mad enough.
    After going trying for over an hour and not being able to download Windows MovieMaker, I think my head would have exploded if i was the ceo/founder of msft at the time.

    something tells me that emails was sanitzed.

  • Paul Freet

    I don't get how this can possibly be so slow. Our salesforce-automation program Salestrakr does a search for first name, last name, company name AND sound-alikes. Just using partial letters such as 'sta'. And returns a result within 2-3 seconds using Ajax OVER THE INTERNET! Has Microsoft lost it? (did they ever have it?)

  • http://intensedebate.com/people/kelly_taylo4868 kelly_taylo4868

    I often hear the 80/20 rule invoked as an excuse for not making things perfect. Just because the 20% of your features that get used often are well built doesn't mean the rest of your app can suck. Thanks for the post Brad.

  • The BiggerIssue

    The point you are all missing is this… you paid for it. Regardless of the company that created the software that sucks, regardless of how bad it sucks, the fact that you are compaining means you already gave them your money. This once again proves that a company's money is better spent on marketing than R&D.

  • Bob

    Windows Mobile does suck especially after having a BlackBerry. I am moving to an iPhone.

  • Eric

    Hmm, that's not a good thing to have to put up with at all. . .

    Have you read about Google's OS for mobile devices (a.k.a. Android) much?

  • http://intensedebate.com/people/steve_bergs2127 steve_bergs2127

    One quibble and, I hope, a point: the performance of a search algorithm isn't a UI design issue – it's an algorithm issue. If they fixed the problem, the keystrokes you type wouldn't change at all – only the speed of the search.

    At one software company I worked at, I was told that "usability doesn't sell software" and that our CEO didn't "believe in usability." It may well be true that usability doesn't generate sales. When I worked for "big consulting co," we would evaluate software based upon a prioritized list of client-required features. I can't recall that "easy to use" was ever one of them. On the other hand, the software CEO worried a lot about adoption and penetration into our customers' organizations. I suspect that usability would have a big impact on that.

    Every engineer who designs anything to be used by another human being should be forced to read (at a bare minimum) Donald Norman's "The Design of Everyday Things" (see http://www.amazon.com/Design-Everyday-Things-Dona

  • lostdummy

    I must agree with that “little things” part – since now we are in 2010 (over 1 year after this post), past WM6.5, and I still had problem to do such basic elementary thing as search my contacts by (part of) number.

    That “minus” to Windows Mobile is offset by how easy it is to “do it yourself” – with any c# background, it was easy to write my own contact search/dialer. BUT that should not be required in well designed UI , especially not for such basic usability scenarios.

    On a side note, one issue that I encountered while making that small contact program could maybe explain your 30sec searches of only few thousands contacts – since my initial solution had slow search for only 400 contacts.

    It turns out that it is not search algorithm that is problem, but very slow response time for Windows Mobile API call to retrieve single contact info. Just by initially loading all those contacts in local program memory made searches instant, even using dumb search algorithm (at a price of initial 20sec load of all contacts).

  • lostdummy

    I must agree with that "little things" part – since now we are in 2010 (over 1 year after this post), past WM6.5, and I still had problem to do such basic elementary thing as search my contacts by (part of) number.

    That "minus" to Windows Mobile is offset by how easy it is to "do it yourself" – with any c# background, it was easy to write my own contact search/dialer. BUT that should not be required in well designed UI , especially not for such basic usability scenarios.

    On a side note, one issue that I encountered while making that small contact program could maybe explain your 30sec searches of only few thousands contacts – since my initial solution had slow search for only 400 contacts.

    It turns out that it is not search algorithm that is problem, but very slow response time for Windows Mobile API call to retrieve single contact info. Just by initially loading all those contacts in local program memory made searches instant, even using dumb search algorithm (at a price of initial 20sec load of all contacts).

  • http://www.vncomputer.org/ Mike

    Damn, that's crazy…

  • http://www.vncomputer.org/ Mike

    Damn, that's crazy…

  • http://www.vncomputer.org/ Linda

    Damn, that's crazy…

  • http://www.vncomputer.org/ Linda

    Damn, that's crazy…

  • EquiPro

    I'm losing it. I don't understand why I have to choose to locate a contact on my WinMo 6.1 device by EITHER “name” or “company”. Really?? REALLY??? Sometimes I can remember someone's name or part thereof, AND sometimes I can sort of remember their company name or part thereof. If I have to choose to look them up by either one OR the other, but not both simultaneously, what will happen is what often happens: I can't find them easily. Ridiculous. Absolutely ridiculous.

  • EquiPro

    I'm losing it. I don't understand why I have to choose to locate a contact on my WinMo 6.1 device by EITHER "name" or "company". Really?? REALLY??? Sometimes I can remember someone's name or part thereof, AND sometimes I can sort of remember their company name or part thereof. If I have to choose to look them up by either one OR the other, but not both simultaneously, what will happen is what often happens: I can't find them easily. Ridiculous. Absolutely ridiculous.

Build something great with me