Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries over the next few weeks. Thanks for all your past and future contributions.
The end user who spends their money on the product/offering they buy always wants the best value for their money. They are generally restless and sometimes very unforgiving when it comes to performance/reliability/stability of the product they purchase, this demand is all the more pronounced in the case of software. This is because with ever increasing choice of offerings available the consumer is literally spoilt for choices. Chances are that if the product falters on any of the expectations it would not only wean away the customers away, but would also generate a fair amount of negative publicity, something which companies can ill afford.
It is in this context that ‘usability’ becomes one of the USP’s of any software product worth its dollars. Every company today spends lot of money and time into understanding the consumer expectations/psyche/needs before getting into the development/designing of the product.
Put yourself in the consumer’s shoes and answer some of the questions below:-
- When you are considering of getting a new application for your handset, what if you cant even get a demo/trial of the application, would you be impressed enough to purchase the product?
- Imagine that it has an icon that you think will, for example, open up saved data. Instead it does something a whole different. Or that you just can’t find the feature you are looking for. Would you still want to purchase it?
- What if the application uses such terms you can not understand? Would you want to purchase it? Would you like to use the application?
- What if the application suddenly crashes without giving you any notifications about what caused the crash? Would you still recommend the product to others?
Chances are that you would have answered an emphatic NO to most of the questions if not for all of them. The consumer today is very demanding and they have lesser and lesser time and patience to learn the intricacies of a system before being able to use it. They want everything to be ready to use on the go without having to put in much efforts to be able to actually use it.
Researches have proven it beyond doubt that an application which scores high on usability ends up having higher customer satisfaction indexes and better sales figures in turn. Consider a gaming application for instance with very nice user interfaces and easy to understand key layout etc v/s one that has complicated navigation patterns and uses key combinations which are different then the normal games, which one of the two do you think you would want to play/use more?
The main goals of usability are to ensure a pleasant user experience that doesn’t stress your memory, to have an understandable user interface, simple enough to be learnt without help. Together these features make the application more appealing to the customers. They also improve the overall quality of the application. And it is a known fact that a happy customer is to come back to you!
Considerable thought needs to be placed on the usability aspect of the application before getting to the software development lifecycle as the former is an all –encompassing idea which has to be inculcated into every phase/aspect of the development process. Every member of the team has to think from an end user’s mindset and envisage what will and will not appeal to the consumers. An iterative approach which can be validated with the end user at every phase is the best way to go about ensuring a solution with high usability indexes.
Key deliverables of usability engineering can be broadly classified as the following:-
The functionalities should be arrived at after deliberations and consultations with a subset of the proposed target user group. It might also be a good idea to keep them involved during the overall process. Such an approach would ensure that the user interface and features support the task the user expects from the solution and wants to perform with the help of the solution. There should be as less element of surprise if not shock as is possible because the end user has certain expectations and they should be met. For instance if the user is trying to book a bus ticket on a certain segment and you end up booking train tickets, certainly it wont please the user one bit.
The navigation patterns, input mechanism and other user interaction points should be as simplified as possible. The user should be able to use the application without help or tutoring, as more often then not they don’t have the patience to read through the contents before being able to use the system. Every product has some core functionalities which should work as easily as possible, for instance if you are developing a dialer application, the user would want to be able to just dial the number by either punching it in or picking it from the contacts/call log applications, if you end up complicating this basic premise chances are that the user would be very frustrated. Another important thing to ensure is that your application doesn’t affect the built in applications or their functionalities in any ways.
Navigation options, option menu, selection choices, input fields etc should be simplified and easy to understand. In the case of settings etc the user should be notified in case they have exceeded the expected range/choices etc so that they are not left confused if the application doesn’t work as desired due to a faulty setting later on. The information displayed should be simple and easy to understand, you certainly don’t want user’s memory to be stressed trying to figure out the brass tacks of the application.
All features should be easily accessible with only a few key strokes, this is very important for applications catered for the mobile as the input choices are very limited with most phones having a basic keypad with no touchpad/mouse support. The user should not be expected to enter lengthy content, also avoid asking the user to enter/select too many things especially if most of them can be logically inbuilt into the system.
A thorough study of the target audience should be carried out to ensure that the application is smart enough to scale up/down depending upon the skill sets of the user. Typically the users of any mobile solution are a heterogeneous group of people with different skills/needs/expectations. The application should offer enough challenge for the experts but at the same time it should be easy enough to use for the novice users. For instance if you are designing a gaming application you should consider having levels of difficulties based on the user choices so that neither does it seem too easy for an expert nor is it too complicated/hard for a beginner.
Always remember bigger the accessibility range of the application, bigger are the resultant market acceptability of the application.
An application which has been designed keeping in mind the end user would ensure all of the above and this would in turn ensure a consumer delight. In fact the subjective objective of usability engineering should always be such that the user experiences subjective satisfaction when using the application.
A delighted costumer is more likely to bring in better recommendations and repeat business for a company as compared to a disgruntled costumer who might end up scaring away other potential buyers.
The bottom line would thus be that “Costumer is the king and he is always right”, and thinking from an end user's mindset and applying those learnings into the usability engineering of the solution goes a long way in ensuring the costumer does feel like a king when using the application.
---- Edited by Mayank on 17/06/2009 ----