Software has infiltrated almost every aspect of our lives. We use it to communicate with each other, to perform tasks at work, for entertainment, health and many other ways. Additionally, a wider variety of people, including non-technical, are relying more heavily on software. In order to fulfill this need, software must be easy to use while still serving a useful purpose. User experience design encompasses these qualities of software. To produce valuable software, engineers must ensure their software provides a good user experience.
User experience is a newer field of software engineering and is one I know little about. As a software engineer that develops applications that are primarily consumed directly by humans (as opposed to back-end services), a firm understanding of user experience is key to my success as a software professional.
The goal of this project was to learn about user experience design, how to evaluate software in the context of user experience and how to apply findings to increase the user experience. Half of the project was dedicated to research. I focused the majority of my research around the psychology of user behavior as I wanted to understand why some user experience solutions worked better than others.
The second half of the project was a series of five experiments, based on the research, applied to a test application that I manage as a personal project (See Figure 1). The application helps dispatchers schedule passenger trips. The majority of the passengers are senior citizens being transported between retirement communities and doctor visits.
Figure 1: Dashboard of dispatching application
In four of the five experiments, I was able to uphold my hypothesis. The biggest challenge in the experiments was determining how to measure success. As much as possible, I preferred quantitative data, but for some experiments, I had to rely more on qualitative feedback from users. As much as I was initially opposing qualitative measures over quantitative, I found qualitative measures (primarily user feedback) to be an accurate measure since ultimately I am trying to achieve user satisfaction.
From the research and experiments, I developed a number of conclusions:
- Interactive systems should not require the user to perform additional tasks outside of what is required from their goal. More importantly, the tasks that the system provides should be designed specifically for the user's goal. For example, forms should have the minimum number of required fields.
- User interfaces can be simplified by reducing the number of actions a user can take or the number of conceptual models. By simplifying the user interface, it is not only easier to use, but it becomes easier to learn for new users. Once a system is well-learned, the actions that users take become automatic, allowing the user's brain to focus more attention on their goals.
- Application responsiveness is the most important aspect of user satisfaction with a software system. Also known as human time, a system needs to respond in a certain window that the user expects a response. A time-intensive process can still meet this window by providing updates and feedback to the user.
Back to top