Skip to Content
Author's profile photo Former Member

8 tips for designing user friendly applications

When we design and develop applications our goal is to provide tools which help our users do their work. During the design phase of the application many times we don’t pay attention to small details which at the end can cost our users time, effort and frustration. In extreme cases they might even abandon our software. If this happens we have failed in our goal. In this blog I will describe some practical tips to help you design and develop user friendly applications.

 

  1. Consistency – If your application is consistent your end user will have a lot less to learn and that is a good thing. If each car was designed differently we wouldn’t be able to access just about any car, grab the steering wheel, press the gas and start driving. The same principle applies to software. The more they look and behave similar, the easier for the user to “drive” them. So what does it mean to be consistent? Use the same terminology across the application, always locate the controls in the same place and in the same order in all pages, use the same control types (design patterns) for the same tasks. There are many more examples.
  2. Be creative but not inventive – You can combine known design patterns but don’t invent new ones. You have a great idea to solve a design problem? Make sure your solution is known to the users or at least it exists in other applications. Will you fly in an airplane which nobody has tried before? If you feel you are onto something really innovative make a prototype and let your users test drive it. If they like it that’s great. But if they don’t, find a better solution.
  3. Simplicity – Less is more. Don’t pile on the features. Find out what are  the needs of your users and deliver just that. Remember that your users want to use your application because it helps them do their job and not for the extra fancy features. Let’s say your application was a Hot Dog stand. You want to make sure your users can get some mustard, mayo, and catsup (maybe some pickles). But that’s it. If you get this right your chances of seeing happy customers are very good.
  4. Be task oriented -Always have in mind the main task and the tools the user needs to complete it. Let’s say you are developing an application which allows a customer to send newsletters. So we first identify the main task which in this case is creating the newsletter. What are the actions he needs to perform? He needs to save and delete. We might want to offer him some templates to select from. He needs a visual editor and a source editor in case he wants to do the HTML himself. And finally he needs to send it. So now that we have a list of the features we need we take care of the layout of the application with a nice toolbar over a slick rich text editor.
    You might say well this is a no-brainer but you would be surprised by how many times we start thinking about the cool features before we have identified the main task and its actions.
  5. Terminology – Use concepts the users know from their daily job. They might not be as familiar with terms from the backend or from ABAP as you are. You don’t want users entering your social security number on your salary input field by mistake (or maybe you do) but that’s not the point. They point is that in order to avoid mistakes and confusion the users need to be able to understand what they are being asked.
  6. Language – Speak to your users in a language they can understand. Talk like a person, not like a robot.
  7. Error handling – When something unexpected happens let the users know that there is a problem that the system cannot resolve and guide them to overcome the problem. Don’t let them feel as if they broke the system. Don’t tell them the error id because they don’t care. Don’t tell them to contact the system administrator because they will get furious. Users make mistakes all the time so be prepared for them and help the users recover. (Did you know that the key you use the most is ‘Backspace’?)
  8. Test – The most important thing is to try your application on another human being. When designing something for other people we can’t rely only on our intuition. We need to make sure our design is intuitive, but how? To test your design build a quick mockup with Power Point, Visio, Balsmaiq or the tool of your choice. You can make either a very low fidelity prototype with a piece of paper or very high fidelity one by creating your mockup with Visual Composer. Now go out to the hall and grab the first person you find and ask him to give you some feedback on your mockup. Seat him in front of the monitor and run a simulation of the application. This activity is called a usability test. It is by far the most valuable feedback you can get. If you run this a couple of times you will start to see a pattern. You will see that your users stumble over the same issues time after time. When this happens ask the participant to tell you how he would have expected to do the task. By running the simulations you identify usability issues and you collect valuable feedback on how to fix the problem. Put the feedback back in your design and try the test again with a different person just to make sure that this time the user interface is intuitive.

Assigned Tags

      11 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member
      I believe that no two users are alike and they may have their own preference and if we include personalization feature in our application, we can give the end user more flexibility what they want on their screen.
      Using Rich client technologies is always an option to make the end user understand what an application is built for, So when the user opens the application for the first time, he gets something which is rich in media and easy to understand and once he understand it, he can switch off the fancy feature as it does affect the performance of the application.
      Regards
      Anurag Chopra
      Author's profile photo Former Member
      Former Member
      Blog Post Author
      Hi Anurag, the thing is that most business users usually don't personalize their applications and if they do they do it only once. By making your application too flexible and too customizable you add another layer of complexity. I'm not saying you shouldn't do this at all. But you should research your users and find out what they expect from their applications and you should find out what added value does it provide for the user.

      You mention giving the user the option to turn off "fancy features" if it affects performance. Again I would suggest to find out what is the added value of developing something which affects performance. Do you have a solid use case for this? How do we expect our users to find out which fancy feature affect performance the most? As designers and developers our job is to make the balance between "coolness" and performance even thought at times is hard to sacrifice the fancy features.

      Author's profile photo Former Member
      Former Member
      Hi Eitan,

      IMHO , maybe the mistake we make is we assume that business users exist in a different world. The fact is these users use internet web shops , social n/w sites , collaboration apps , mobile apps etc., So they are more capable and smarter ,than we give credit for ,  when it comes to handling UI complexity.

      And nowadays people don't differentiate between a business application and the rest. Why should we ?

      I have seen many a customers complain on the number of clicks they to make to even simply approve something.Users adapt to complexity , this they can learn.But if an app has too many clicks they can change that over time. I guess we should trust that business users are more capable and give them flexible (multi-dimensional) applications.

      And about performance , if introducing a fancy feature cause a performance problem , its the limitation of the server/client that is the problem. We should fix it instead of reducing the features . 

      In an ideal world things are different , but I believe this is the only way we can deliver applications of the future.

      Bharath

      Author's profile photo Former Member
      Former Member
      Blog Post Author
      Hi Bharath,
      Thanks for your comments. I agree that users are smart and can handle complexity. Let's just take one step back because we are using the term "Business User" without a proper definition. For me a business user is a regular person who uses the internet, social networks, mobile apps, etc. but for our use cases he is using the software in a business context. Therefore our goal is to provide the tools he needs to help him do his job.
      What I meant by simplicity is find out what tools the user needs and provide that. Sometimes your user will need very complex UIs. Great, design for that. But no more and no less.  By providing features nobody requested you will be waisting your resources and making the UI complex for no reason. Always have a valid use case for your designs.

      Now if you had to choose from two solutions for your use case, one is "fancy" but slow and the other one is boring but quick, which one would you would prefer? (assuming you had optimized peformance for both)

      BR,
      Eitan

      Author's profile photo Former Member
      Former Member
      Hi Eitan ,

      Nice to see your reply.

      I definitely understand the reasoning behind your definition.I am just guessing that in the near future these restrictions might not stand good .

      1. Considering the rate at which innovation happens these days , we can only be at the top by providing features more than what customers request for.

      2.For your question ,  I would choose the faster UI . But why should a fancy UI be slow. (I do understand why :))

      Windows XP was better compared to its successor Vista , because fancy UI alone doesnt help. But Windows 7 doesnt make compromises and already showing good promise. Why think of a Vista like choice , when we can do a 7 ?

      Just a different perspective.

      Thanks for your reply.
      Regards
      Bharath

      Author's profile photo Siarhei Pisarenka
      Siarhei Pisarenka
      Hi Bharathwaj

      >I have seen many a customers complain on the number of clicks they to make to even simply approve something.

      I think, that the key phrase here is "customers complain on the number of clicks". Sometimes the critical business function of an application is just hidden too deeply inside all other auxiliary features that it's too hard to use it in a daily work. Then performing just the critical function covering the main business case can become so routine and annoying thing for a customer that he/she will even try to search for another software in which the business case implemented in a simpler and faster way without tons of necessary clicks.

      BR, Siarhei

      Author's profile photo Former Member
      Former Member
      I would probably add step 9.  Communicate often with the business user.   Simplicity is nice.  It makes the application quicker to develop.  However, today's business user usually wants more.  So give them the chance to request more.  Preview the application, prototype the application, draw the screen on a white board, ask a ton of questions.   In most cases you'll find that they expect more than what they ask for.  I work in a GMP environment rework is VERY time consuming.  It would actually takes a lot less time if you do the upfront work.

      Performance?  It's always an issue.  I would say the cool new features are not always a performance issue.

      Author's profile photo Former Member
      Former Member
      Blog Post Author
      Thanks for your comment.
      Indeed communication with users/customers at an early stage of the design process is very important and can save a lot of time at a later stage.
      Author's profile photo Siarhei Pisarenka
      Siarhei Pisarenka
      If I were a business user of the application designed according to the eight principles I'd just happy 🙂 Other cool features? Why not, but they shall not hide my critical functions covering my main business cases that I work with day-by-day. And one more thing - each my critical feature must be  accessible for me with just one, maximum two, mouse clicks.
      Author's profile photo Former Member
      Former Member
      We at SAP are still struggling to impress the masses with the user interface of our application.
      Rich client technology comes to our rescue and we can look into some alternatives with good user acceptance.
      Anurag 🙂
      Author's profile photo Former Member
      Former Member
      Blog Post Author
      Hi Anurag,
      If you have some good examples I'll be happy to see.

      Regards,
      Eitan