Thursday, September 10, 2009

Can your user recover any problem easily?

Usually, software developers, they assume that they build application without any problem.
Even if you estimate all possible problems and fix them before publishing. There are always some problems you don't/can't oversee. Some problems in your application cannot be handled directly like network problems, hardware problems or problems of client's PC may affect your application. So what should we do? We have to accept these kind of problems that we cannot control. And let users to handle the problem.

The bottom line is that, "when users encounter any problem, they are able to recover problem easily; if possible without losing their unsaved data." As they try to recover and start application again, they want to continue what they did before occuring problem. Image that, you are working on preparing presentation, then suddenly the application has been crashed and closed. It's really irritating. Preventing to unwanted conditions, you should let users recover problem easily and continue to work what they did.

You should avoid just showing "We're sorry but we are unable to process your request at this time. A general application failure has been detected. ".

Ok, at least, for users it's nice to know to understand "this is problem". But it's not enough. You have to show the way how to cope with this problem.

Instead of this, i'll give you an example on firefox. When you open more than one tab and read some text, suddenly a problem occures and firefox is closed. When you restart firefox, you see a dialog box, it's written, "do you want to open previous session or a new window". As you see user can recover the problem easily.

Second example that i can give is blogger.com. While writing, blogger.com saves what you wrote peridodically. Even if undesirable problem occur, you can continue to write.

Monday, September 7, 2009

Can a bug be a feature?

A bug is a big scary thing which happens to a developer. I will tell you a short story about a bug.

Think about a few widgets in a page, when user click on a widget a dialog box with content is displayed and other widgets
are not available to be clicked. I mean, user cannot click on a another widget when a widget is opened. In the same time,
one widget can be displayed.

On a widget, there is a radio list. when use click any radio station, it's started to play.
In the beginning of development stage, event if close radio list dialog box, selected radio station
still plays. People say that, "hey! it's a bug". It should be turned off, after closing the radio list window.
We fixed the bug.

Then manager came to use the application, then he said, "what if i want to listen a radio, while i use different widget."
I mean he wanted to listen a radio, while reading a news or checking a weather condition.

Suddenly the bug was a feature.