What Testers Should Know about Human-Computer Interaction
Human-Computer Interaction (HCI) is a discipline in software development that is not widely used but can be very effective. You can take a free online HCI course at Coursera. If you haven’t been fortunate enough to work in an organization that embraces HCI as part of its process, this will be a quick overview of what you are missing.
HCI is taken seriously in many universities because as the analogy goes, “a great draftsperson does not make a great architect.” You can know technological hardware front to back and code inside and out, but it takes great design to make software work for the end user.
Universities are running courses in HCI because the software industry needs people who understand how to design through a scientific method. It is not such a contradiction in terms. As you can see in the HCI User Usability Test of several similar websites, the team uses specialized tools and methods to elicit user responses.
This type of information provides incredible data from which to change the design of a website. It is based on experimentation and iterative changes founded on real research. There is special software that tracks mouse movement—such as ClickTale—and software for tracking eye movements. This kind of data shows how users actually use—not how you think they use—your website or software.
In HCI there are other tools—personas—that help define and design software. In a short video about personas and scenarios, Susan Weinschenk highlights how easy it is for developers or designers to make assumptions on user interaction. That is a fundamental problem. "Defining and Applying Personas to UX Design" goes into more detail about personas and applying them in practice.
HCI is a great practice to have in a software development process because it requires others in the process to adhere to certain principles of design and development. This makes testing the product easier at the end of the line. The HCI research and requirements feed nicely into a tester’s need for good requirements.
And HCI isn’t just for software—it can be applied in many fields. For example, here is an entertaining four-part video series about HCI design in the science fiction movie business!
Have you had any experience with HCI in your organization? What was its impact on the software development process?