A good programmer is a lazy programmer, because he writes minimum code.

Tuesday, August 24, 2010

Tips to Make Your Applications More User Friendly

User Experiece design is not kid's play. If you want to make your applications more user friendly, you need to put lot of effort and money. But, if you are just a developer, doing the UI design, here are some tips that can help you.

1. Don't ask users what they want.

If some one from Microsoft comes to you and asks you "ok, we are going to develop next version of Windows. Could you please tell us what all new features you want?". Can you tell them the new features, you want? Well, you can give one or two suggestions, but not awesome features, which make you think that why don't Microsoft bring it earlier. Why can't you tell them? The answer is simple. You don't know what you want.

Then, how can you find out what users want? Watch what users are doing. It will give you much insight on what users want. Also, talk with them and try finding what are their goals.

2. Add a memory to your application

In Windows, click on Start, and then Run. The Run dialog box comes. What you see there? The last application you have run. Click on the drop down and see a list commands you entered in the past. Windows remembers not only the last command you have run, but also a list of commands you have entered so far. We see this in most of the applications, but developers normally forget to implement this in the applications they develop.

Most of the time users enter same value to a textbox in our application. So, if the application can remember what the user entered last time, it saves lot of key presses for the user.

Many Ux experts believe that this is the most powerful tool, that can make applications user friendly.

3. Use message boxes sparigly.

The easiest way to give feedback to the user is a message box. In web applications, this may be a littile difficult, still you can overcome it with Javascript. But remember easiest way may not be the best way.

What's wrong with message boxes? It breaks the flow and upsets the user. Why this message box has come? Did I do any thing wrong? Is my data lost? These are the questions that comes to users' mind. Simply a message box breaks the feel good factor of users.

When I say this to some one, I always have to answer this question. "I see message boxes in applications developed by Microsoft or even by Google. If it were so bad, why don't they avoid it?" The answer is there is a trade off. When they avoid a message box, it gives them more work. Some times they will go for it, some times they will just put a message box.

When I say message boxes it includes confirmation boxes also. By confirmation box, I mean the message box comes with a question. Typically, "Are you sure you want to do it?" kind of messages. It helps the users, if they clicked some where by mistakes, but it irritates then when they deliberately want to do it. "Yes, I am sure. That's why i clicked on this." may be a typical response.

Now, how can we avoid message boxes?
  1. Avoid message boxes to report normalcy. If you clicked on a Save button, and the application saves data, this is just normal. Avoid putting a message box to say "Your data is saved".
  2. What if user gives a bad command? Use your creativity to find out alternatives to message boxes. Remember no need to give a good output for a bad command. If the user gives right command, give good output. If the user gives bad command, give bad output. One exaple is from Internet Browsers. What happens when you enter a wrong URL? Then also it displays a page, which says some thing like "Address not found". It didn't throw a message box. If you give right URL, it displays the right page. Otherwise it displays wrong page. Fair, no?

  3. Another problem is when users give incomplete input. Users click the Submit button before entering all mandatory fields. In that case what we can do? One solution is assumme incomplete data. For example, say there is a country drop down in an application. In the drop down there is an "(All)" option, and also all countries in the world. If you select any country and click Submit, the data for that country will be shown. And if you select "(All)", it will show data for all countries. Now, what if the user doesn't select any thing in the drop down and click Submit? The application can safely fill "(All)" for the missing input and show the result. There is no need to show a message box here.
  4. Make ncorrect input impossible. Another problem is when users enter incorrect data. For example, if there is textbox user can enter the Gender. As it is a text box user can enter some invalid value here, which will force you to show a message box. Obviously in this case, the solution is to put a drop down or radio buttons instead of the text box.  
  5. How can we avoid confirmation boxes? Well, you need to warn users before they perform some critical task, like deleting all values from the database. What heppens if you simply allow them to delete? Yes, I agree we cannot get away with confirmation boxes completely. But there are cases when you can avoid it. I have seen one application which confirms every thing you do. When you click on a Save button, it will ask you "Are you sure to save it?" or if you click on Delete button, it asks "Are you sure you want to delete?" likeways. One problem with this approach is confirmation boxes work only if they happens occassionally and unexpected. If the user expects it, she will just click Yes or No, without even reading the contents. But it helps if it is unexpected. For example, the user clicks on a delete button by mistake instead of Save button. If the application confirms only deletion, a message box comes, which alerts the user instantly. She understands some thing wrong happened. This helps her. But what if the save button also has a confirmation box? She expects it so she clicks yes or no without reading the contents, and yes, the damage is done!
  6. Another way to avoid confirmation boxes is allow users to undo the action. Instead of confirming the deletion, the application can allow the user to delete it, and if she did it by mistake, she can undelete it.

4. Watch out mistake users make.

In hotel industry they believe customer is always right. In the same way belive that users are always right. if they make a mistake, that is your problem. I have heard developers saying if the users don't use the application correctly, the developers cannot help. But think, why can't they use it correctly? That means you need to improve usability of your application.

Understand people use computers to avoid mistakes. So, if they again make mistakes, there is a problem.

At first you may think that an ATM Application has nothing to do with people forgetting to collect their card from ATM. But think again. Why do they forget? Their primary target when they come to ATM is collect money. If they get money first, they will happily go, leaving behind their cards. But, if the application gives back the card first, people will collect it and wait for money. Not the other way.

In the similar way think about your scenario and how to improve your application.

5. Follow the Standards

If you are developing a windows application, web application or a mobile application, understand the standards in that platform and follow it. Users may not know all the standards, but they follow it subconsciously. It helps them to do things right intuitively. It may be small things like putting ... in buttons, which lead to another screens, or using blue color for links. But they make a huge difference.

Well, if you don't break standards, how can you try innovation? Yes, you need to break it occasionally, but make sure you do it for the benefit of users, not for your personal preferences. Alan Cooper says in his famous book About Face "Break the standards only if you have a good reason". But don't make it an excuse to ignore standards. And if you break it, break it consistently.


These just a few tips. Keep in mind your users and their target and you can make your application more user friendly.

Click here to leave a comment.


  1. Hi Kishore,
    I saw your article in the next site:


    To me, is very very pedagogical article. I'm doing a similar application in wpf (VB.NET) for a project of school.
    Honestly i'm not so smart with the programmation in VB.NET. The goal of my application is export the items of my listview to the archive XML. So far so god, I have not been able to do because i'm new in this language. Could you explain me how i can export data from my listview please? if you have a time, you can explain me how import data to my listview. This application is very important to me.
    Thank you from France.

  2. I forgot give you my email adresse: