Keys to testing for user experience
One of the best ways to get into the mind of the user is to gain a good understanding of the environment in which the user operates. Don't just look at the system, look at the environment holistically. What sort of stresses and distractions could the user be subject to? What are the demands on his or her time? How can the application meet those demands in a way that the user finds applicable and worthwhile? These questions should be asked during the design phase and should be followed up by in-depth interviews with users even before user testing becomes available.
Creating realistic test case scenarios is another reason why understanding the environment is important. Field conditions can be quite different from what is expected. There is a tendency to stick with management's idea of what life in the field is like. After all, they should know. Unfortunately, they often don't know.
There can be a considerable gap between management's idea of day-to-day operations and reality. Management tends to keep its eye on the big picture and details sometimes get lost. So, you should start with the people who will be using the application on a regular basis and work your way up the chain of command. This will enable you to modify requirements so that they meet everyone's approval.
Another important reason to interview the users in the field is to determine what unusual circumstances they've had to cope with and how they have worked around the legacy system to accommodate these problems. This will give you a good idea of those elements which should be incorporated into the design of the new application.
Remember that software development is a team activity. Everyone, from the design group to the end user is a part of that team. You may be supplying software to a particular business, but it is the people in that business who will use the application, and report its quality to their superiors. This will determine the reputation of your company. And so testing for user experience is not only an important part of software development, it is also a way to maintain good customer relations and a profitable future.