Quote


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


Showing posts with label User Experience. Show all posts
Showing posts with label User Experience. Show all posts

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.

Conclusion

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.

Sunday, June 6, 2010

User Experience Lesson from Twitter

Friends,

I was tweeting on the other day, and amazed by a simple feature in Twitter. The simple design of Twitter is the best evidence that they are not trusting their programmers with User Experience (Ux) design. I believe they have a separate Ux team. Well, I got one more evidence today.

It is well known that Twitter only allows 140 characters in one tweet. Twitter first displays 140 at the right top side, to remind you about this.





As you type in, it shows the number of characters remaining.





When you type in exactly 140 characters, the remaining number becomes zero. That's not all. If you type in further, any idea what happens? I expected that it would stop me and I will hear beep sounds, which I can interpret as "You stupid, you cannot enter any more characters". But that was not what happened. It allowed me to go ahead, only thing it did is the remaining character became negative.








Ok, what's great here? I found this feature amazing because of the following reasons.
  1. Usually the applications display how many characters you have already entered, instead of how many characters you can enter more. As a user my concern is how many characters more I can enter, not the other way. If it was other way, I would need a calculator to find out how many more I can type in.
  2. It will not stop you when you reach the upper limit. A typical programmer would have set the max length for the text box to 140, so that I can enter no more. In worst case, he would have put a message box too. What's wrong with this approach? When I reach the 140 char limit, I am stopped there, and I need to deal with the application right now. My thought process is broken. However, in this case, I can enter whatever I have in my mind, and later I can deal with the application limitation. In the case of a message box, it breaks the entire flow and shocks the user. Use message boxes very sparingly. 
  3. First it displays the remaining characters in grey color. Once you go beyond 140 characters, it becomes bold and reddish. They are using the colors effectively to communicate. Yes, I know that a small percent of total population is color blind, but all others will benefit from this.
  4. The Tweet button is enabled at the beginning. But once you type in more than 140 characters, it is disabled. You can edit your tweet to 140 characters, and then button is enabled again. This stops the user from making a wrong entry. What was the alternative? Enable the button always and when user clicks it, display a message box. But here, they stops the user from making a wrong decision altogether.
All these are advantages of thinking about user, more than technology. Thinking about technology and ignoring the user is the mistake we make quite often.

Kudos to Twitter.

PS: Do you want me to follow in Twitter? Click here.

Thanks,

Tuesday, April 13, 2010

A Forwarded Email

Some one forwarded me this image.


Interesting? If your company's application looks like this, it is time to learn some User Experience basics.

Thanks,


Sunday, February 28, 2010

User Experience Lessons from My New Mobile

User Experience design was my favorite topic for a long time. I am not sure when I fall in love with this topic. During initial years of my career I got lot of chances to design screens for Windows Applications. I was just imitating Windows at that time, and believe me, I got lot of appreciation. But now I realize it was a mistake, because I was imitating even the bad things in Windows. Later I learnt User Experience (Ux) basics, learn to design better interfaces. I love to read articles and books on this topic, which made me an expert in Ux, even though I lack practical experience in this area.

Even though I consider myself as an expert, I learnt a few tips from the new touchscreen mobile phone I purchased. Read on.

Lesson 1

I was using an old basic mobile earlier. It was simple to use. I don't remember any learning curve, when I first used it. When a call comes, in screen it will Display, Reject and Silence at the bottom of screen. There are three buttons below the screen. So to answer the phone, you can press button below Answer. To reject the call you can press button below Reject. To stop ringing, you can press button below Silence. Simple, no? When I purchased an advanced mobile, I expected a more simple interface. It didn't take long to realize I was wrong.

The first call in my new mobile came when I was in the waiting room of a physician. It was rather quiet there. Suddenly my phone began to ring. The manufacures had set the loudest voice for the ringing tone as default. Every one in the waiting room began to stare at me. I desperately took the phone from its cover. Where is the answer button? I looked at the screen, but couldn't see the Answer (or even the reject caption). What to do now? There are three buttons below the touch screen. One has an image of inverted [. The other one an inverted [x. And the third one with no image or caption. Now I am under pressure, looked at the images. No clue. When your intuition didn't work, the only way left is trial-and-error. As the ringing tone in the otherwise silent room is intolerable, I pressed the button [x.Alas, it was to cancel the call. I missed the call.

Why did I make this mistake? In computer world, image of an x means don't. So, it was obvious the image with x was for canceling the call. Then why didn't I realize it then? The answer is I was desperate at that time. So, the first lesson from this one is Never assume your users are always in a think straight mode.

Lesson 2

After a few calls I learnt to answer and make calls. Then the second mistake happened after attending a call. In my previous mobile, when a call comes, it will unlock itself. When I disconnect, it will be locked again. But in my new phone, it will be unlocked when a call comes, but doesn't unlock again when the call is disconnected. So, after answering a call, I simply put the mobile in my pocket. As it was unlocked and the touchscreen is so sensitive to detect my body movements, it started to make calls itself. I only came to know about this when my friend called me and said "I got a call from you, and when I answered I heard all the discussions in that confidential meeting.". What to do?

What's the reason for this mistake? I was simply assuming the phone was smart enough to lock itself, after the call. In fact, it was not. Why did I make such an assumption? It was there in my old phone. So the lesson learnt is: Your users will expect at least the features in a basic model, however advanced your product is.

Lesson 3

My previous phone got a keypad. So to type a number, I can just press the numbers in the keypad. In the new one I need to tap a button, to get the touchscreen keypad. Make my life a littile difficult. But that's ok.

In my previous phone, to search for a contact in the address book, I can type character by character. For example, when I type a it will display names starting with a, like Ajayaghosh, Ajayakumar, etc. Then I can press n, so it will display names starting with an, like Anand, Anil, etc. Then I can type u so that it will type names starting with anu, like Anup. This is like an incremental search. Whenever I found the name I want, I can stop searching.

But in my new phone, searching is a horrible experience. To type first character you need to go another screen (The keypad screen). Then after typing a you can come back and see how many names are displayed. You can type as many characters as you want before coming back to search screen, but you are not sure when to stop. For example, if there is only one name starting with a, you need to type only a. If there are lot of names with a, you need to type a few characters. In the previous phone, I need to type only the characters I need to. You can type and search at the same time. Well, what's the lesson learnt here?

It is obvious as the phone got a touchscreen, the keypad is gone. So, you need to provide a soft keypad, instead of the hard keypad. It brings more work for the Ux designer. As the interface goes advanced, it brings more challenges. The Ux desinger needs more talent to overcome these challenges. So, the last lesson is If you don't have enough talent, don't do the Ux designing.

That's all guys.