So occasionally when I order my lunch, the person serving me remembers me. Then, the conversation goes even smoother than “normally(Ordering sandwiches and GUIs)”:http://www.magpiebrain.com/archives/2004/04/28/sandwiches:

==

Server
The usual?
Me
Yes thanks

==

As Rajkumar “points out(Adaptive UIs)”:http://jroller.com/page/rmadhuram/20040428#adaptive_uis, its one thing for the user to learn from the UI, but another for the UI to learn from the user.

I talked before about a UI allowing the user to do more advanced things with the program – don’t limit them to long-winded wizards even if they are very easy to navigate – once the user knows what they’re doing they won’t thank you for making their job over complicated. UI’s can of course try and adapt to the user. For example, on first running the application you might display a welcome screen – subsequent visits wouldn’t. For the first time running a particular task you might start a wizard, but from the second invocation the user is presented with the option of opting out from the wizard.

Some UIs try and be far to clever for their own good. As Rajkumar explains, intrusive UIs which constantly attempt to second guess what you are doing can be a real pain in the ass (I have often wished for a slap command to use on MS Office assistants). By all means have your program try and learn what your user is trying to do, but unless you can do it properly don’t try it at all – you’ll just get in the way, look stupid and be a royal pain. The best UIs make you forget they are there. Don’t make yours one that people want to slap.