Giving the Human Touch to Software

[article]
Summary:
Yogita works as a QA/testing professional with Mindfire Solutions, and has written a number of articles on QA and testing strategies. Yogita is currently exploring thoughts of beauty as an area of testing and its relation to usability. Her role at Mindfire has been to implement Quality processes throughout the organization and build a dedicated testing team. The team recently published a White Paper “Porting projects: Test techniques,” downloadable from www.mindfiresolutions.com. Yogita can be reached at [email protected].

Usability—we talk about it seriously and some of us implement it religiously. But usually, we don’t think about how the user expects the software to behave, and most of us abandon the actual users while designing usability. As you might guess, a user’s most excruciating experience with software starts with usability issues. Even when software organizations commit substantial resources to usability testing, they often fail to impress their target users, as the usability provided doesn’t match the users’ expectations. Later, they unintentionally degrade the software quality when they are forced to cobble unforeseen changes onto the existing framework, which is ill-suited to support it.

Knowing the target customers’ expectations when implementing usability has proven fruitful for me. I’ll start with my own story.

My first assignment as a responsible tester was for an application we developed for a famous five-star hotel. The application was to be used in hotel restaurants, to make the order-taking job easy, efficient, and automated. It was an exciting project. Having worked as a hotel hospitality desk clerk in the past, I was comfortable and familiar with the industry. I had two reasons to celebrate. It was my first independent assignment, and more important, it was in the service industry, which was my first love. I thought it would come very easily, as I knew the ins and outs of hotel operations.

The testing experience was fun, but not easy. I suggested a few enhancement features and my client agreed. When all was said and done, we delivered the project on time and, we hoped, bug free. The application was introduced to their operation and I was waiting to hear congratulatory emails from my client, saying how they loved the application and how it made their life easy. I did receive some mail from my client a week later, forwarded from my manager.

The operation staff found the application difficult to use. Almost every other transaction got messed up, because they didn’t know what to input where. The on-screen instructions were not understandable. Even with a simple order, the steward had to go through five screens to reach the end. In no time, they all went back to using pen and paper to take orders.

I was startled—this was the simplest application I had tested so far. With five screens total, and only text boxes and command buttons to handle, how could anyone find it difficult? I had even checked the user’s manual and included a help menu. What was causing the problem? The program looked simple and beautiful every time I ran it.

I decided to speak with the individuals rather than worrying over it. The feedback was really surprising, as they told me what an unfriendly application it was. What looked simple to our team actually looked difficult to the users. So I spent some hours with them, getting an understanding of their expectations of the software and then redesigning the GUI and the application flow all over again. They have been using it painlessly for two years now.

Connecting Users’ Expectations with Usability

Before proceeding with the usability testing, you should try to determine the requirements of your target customer along with other usability needs. Knowing the user’s mindset helps immensely in designing a product suitable for users at different levels of sophistication.

In our initial application, the last screen used to pop up a message when the user clicked on “Finish.” It read, “To save the order, choose ‘Save’ from the File menu. To print the order, choose ‘print’ from the file menu. To exit the application, close this dialog box.” All the terms used in the above message looked very obvious and simple to my team and me. We took for granted that the rest of the world also knows what a file menu is and that clicking on the top “X” button will close a dialog box. But unfortunately, the hotel employees didn’t know about these conventions. Had we understood that a steward would not be familiar with computer terminology, the product could have been designed to suit a layman’s needs. The corrected version had “Save” and “Print” buttons on the last screen and a “close” button to dismiss the dialog box.How to Determine User Expectations

Your first step should be to understand what types of people form your user group and then determine what they may desire to see in the software. With almost every application, the targeted user or market segment is already decided. If it’s for a single organization, the group of users becomes very specific. If possible, try to interact with them to know what they expect from the application. Get help from the marketing team. They know the targeted customers better than anybody else. To obtain results that suit various users, the usability tests should simulate different user types with varied levels of expectations.

Determining user expectations is not all that easy. The work culture, age, skills, knowledge, computer expertise, pattern of usage, and a lot of other factors contribute to it. Within a known user group, the expectations will also vary, though not very drastically. Different kinds of tests, based on different user types, should be executed to estimate an average type that can be considered for implementation

How It Helps in Usability Testing

When the tester knows his target customer well, it helps him see the application with the user’s eyes and expectations. He can analyze the program as the user would. Predicting user expectations also becomes easier. In order to simulate real-life usability tests, it is necessary to estimate how intelligently the end user will behave with the application.

An application is a valuable and usable tool only when the end user can operate it with ease. In my case, I knew the hotel’s operation, I knew the tasks required of the application, but didn’t know anything about the people who would be using it. Hence I made the functionality flow easily, but failed to make usage flow easily.

When You Can’t Identify a Distinct Group of Users

Internet applications are more of a challenge, with Web sites that provide services to the general public around the world. Determining the expectations of an unknown user base is nearly impossible—but you can try to make the users definite by identifying the broader user bases. It may be that there are a number of different groups, but they must be defined and understood. You should never try to design for a wholly indeterminate set of users. Your marketing team may add some insight, and a human-factors specialist will also help. You should work with a representative user group that varies in terms of profession, age, and qualifications.

For a broad user base, no specific rule can be applied for determining user expectations. Albert Einstein said “Everything should be made as simple as possible, but not simpler.” This fits well in such a situation. Try to strike a balance in usability by making it moderately simple to suit the requirements of a large percentage of the user base.Seek an Expert’s Assistance

If your company is serious about usability and management is ready to throw money at acquiring resources for usability optimization, then consider outsourcing human-factors specialists (HFS) for large-scale projects.

A human-factors specialist designs the user experience in a way that optimizes speed, accuracy, and satisfaction. The usability firm may also provide strategic planning for the institutionalization of a user-centered design process. They can also contribute to usability assessment or implementation. Usability contractors provide a set of services that make development groups more successful.

These include

  1. expert review of existing designs based on ergonomic research
  2. design of user interface structures based on user needs and perspective
  3. development of user interface standards
  4. detailed design and specification of the user interface
  5. usability testing

Training Is No Remedy for Poor UsabilityOne preconceived notion about traditional desktop software is that the users can always be trained to put up with the usability drawbacks of the system. All too often, users are trained to use awkward workarounds that mask usability inadequacies.

Superficially, this appears to be a cost-effective short-term fix—until the consequences of these restrictive workarounds surface. Expecting users to adapt to usability deficiencies costs users a lot in terms of time and money; and costs the software vendor in terms of reputation and corporate image, and ultimately has a negative business impact.

>Attention to usability early in the development lifecycle can save you, before you sink a lot of work into software that the user won’t like. Usability should be considered early and validated before release to the market. The attitude that usability is more of an optimization issue than a necessity of the design can be a bottleneck in the product.

Getting to know the people will help determine more thorough and accurate user expectations. That’s the best way to make the user happy. Don’t make the mistake I made. Knowing the tasks that the application will be required to handle may not be enough to ensure good user requirements.

Acknowledgement

I would like to thank Dr. Eric Schaffer (Founder and CEO of Human Factors International) for sharing his expertise in this specialized domain and providing me with all the information that I required regarding human-factors specialists. I also owe a special thanks to Mahesh Menon, Business Manager, HFI (Asia) for directing me to the right people.

User Comments

1 comment
Alexandra Belousova's picture
Alexandra Belousova

It's obviously very important to be able to look at the project by your customer's eyes. Something that seems perfect for you can be seen absolutely unacceptable for them. All trusted software development companies develop projects according to their customers' needs, and Belitsoft (Belitsoft.com) also does the same.

March 4, 2013 - 6:16am

About the author

AgileConnection is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.