Having been in a PhD program called “Human-Centered Computing” and working on visualization for more than 4 years now, I find myself keep stumbling across the question of what is human-centered design. Is it about understanding the users? Is it about designing simple, intuitive interfaces? Is it about empowering and supporting users’ needs?
All these are reasonable, yet potentially incompatible goals. Take Tableau for example, it is a direct spin-off of a CS PhD thesis at Stanford. As far as I know, no contextual inquiry or ethnographic studies were conducted before the system design, and no “rigorous” evaluation was conducted after the system implementation. The system is built based on an algebraic formalism that few can understand. The interface, to any first-time user, isn’t really simple or intuitive. For example, what is a measure and what is a dimension? These are technical concepts from OLAP databases known to few. Also it can take some time to get a grip on the system’s incremental, dynamic way of updating visualizations. Yet the system is one of the very few InfoVis/Visual Analytics products that have been doing well commercially.
There are tons of other visualization systems that might be judged to be more user-friendly and intuitive – just pick up a copy of recent year’s VisWeek proceedings. I don’t believe that Tableau’s success is purely due to factors that have nothing to do with the system itself (e.g. marketing). Rather, Tableau seems to be more flexible and powerful than many other systems, which are often limited to a particular problem domain or task. When you can empower users to do things they want to, they are motivated to learn, and they learn astonishingly well. Of course good design is still essential here to make a complex, advanced technology easy to learn and use, but good design is not equivalent to simplistic interface.
The fact that humans can change (dramatically) if they are motivated might contribute to the tension between engineering and science in design/HCI. In a recent interesting blog post, it is argued that engineering is “about solving problems by rearranging the stuff of the world to make new things“, and science is “about understanding the origins, nature, and behavior of the universe and all it contains“. Understanding how users work with command line interfaces can result in incremental refinement of the existing interface, but may not bring about the paradigm of graphical user interface. Every exciting and ground-breaking technology seems to challenge people’s existing way of thinking and doing things, and bring about profound social and cultural changes. (From a cultural model perspective, this means the creation of models-in-the world that are later internalized as models-in-the mind.)
What is the role of science or theory in HCI/Visualization then? Many seem to believe that the science should inform and serve as the foundation of engineering, and it is true that without theories such as Shannon’s information theory, Turing machine or relational algebra, the digital age would never come. If an HCI/visualization science is about how users perceive, understand and interact with computer systems, it will have its value. I doubt however that it will ever predict the next big thing. Science can only build on data from the current world, but humans can always change and the future is ever more exciting.