What is wrong with HCI?

On May 10, 2010 I turned in our code and presentation file for my Human-Computer Interaction capstone project, virtually marking the end of my academic career at Carnegie Mellon as an undergraduate and probably my academic career overall. I graduated with double majors, or more accurately as a cognitive science with an additional major in Human-Computer Interaction from Human-Computer Interaction Institute.

Although it was only an additional major, HCI definitely took a bigger mindshare for me, and for good reason. I care deeply about how people use computers; so much that even my college application essays included anecdotes and thoughts about how my parents did not seem to get it.

However, just like my friend Paul, I have some qualms about the HCI education that I received. Paul’s main issue with the program is that he is not sure if what he learned–and did–transfers into creating better products and interfaces. It is a valid concern and I would similarly encourage you to read the comments posted by me and Marshall, who in addition to doing HCI as an additional major, did the accelerated master’s program.

It took me a lot of thinking to pinpoint what was exactly wrong with the program or at least find a way to describe it. Partly it is the disconnect of the program with the real world. Partly, it’s the generally fuzzy material. Partly it is the lack of distinction between usability and design. I will try to tackle them one by one.

What did I learn?

This is a sentiment you hear a lot after many of the HCI courses here at Carnegie Mellon. Be it Software Architecture for User Interfaces (SAUI), HCI Methods, or Basic Interaction, for many students the courses simply does not seem to teach enough. Now, saying course does not teach enough is a bit misleading as I am not fully convinced that it’s not the quantity of the material per se that’s the problem but the material itself. Simply put, a lot of the time students can’t find any value in the material.

Carnegie Mellon students, including myself, are a critical bunch, who are driven by things like numbers, statistics, evidence. To those people, a significant portion of the HCI curriculum is simply hand-waving and it’s not clear how they would be useful.

Let’s take a look at HCI Methods, arguably the flagship course of the program. We learn several different HCI methods which have all their unique uses; contextual inquiry (and contextual design) to learn more about the users and design for them, heuristic evaluation to find out problems with the current interfaces, keystroke modeling to essentially replace users with artificial intelligence and several others.

For many of those methods, the process and the deliverable created by the students seem to be more important than what they actually learned or how those methods resulted in a better interface. A lot of the time, you will hear from people, who clearly are more sold on the HCI methods than I am, how they followed the guidelines, resulting in absurdly long hours of meetings and create ridiculous amount of output of some sorts. People brag about how many post-its they used, how they covered the entire floor of the lab with their analysis spreadsheets.

Note that I am definitely not dismissing the material or the people who are enamored by what is taught in classes. What I have a problem is the evangelism people put out for the methods without providing any sort of evidence that they result in better interfaces or products. The problem simply could be that the it is the evidence that is missing, rather than a problem with what is being taught.

Real-World Applicability

This issue partially stems from the previous one. A lot of the material that is taught in the HCI courses do not immediately transfer to real-world. This would not have been a big problem or a problem at all many other fields. There’s some intrinsic and immeasurable value learning for the learning’s sake. In my book, someone who studies in a major just because the material is interesting to them although there are very small job opportunities for that kind of studying is not doing something wrong.

HCI, however, is not one of those fields, at least in the way it’s presented at Carnegie Mellon. Almost every single class is taught by someone who has worked in the industry in some capacity and it’s presented as a plus. In fact, some of the class material comes directly from companies such as IDEO, Adaptive Path, MAYA and probably some others I don’t immediately remember (or didn’t recognize as originating from a certain company).

Now, it might be a bit paradoxical to say that the material that directly comes from industry is not applicable in real life. However, as you might noted all those three companies I listed are essentially small design companies (where I use the design as a broader term, encompassing all facets of design, not just visual design). At best, they would hire a few people each year and most likely as designers. That would clearly leave out a significant part of the folks out. And in any case, my point is that HCI is clearly thought of as a major that helps you find a job or be better at what you do.

Of course, that would be looking at it wrong, the administration would probably argue. HCI is designed as an additional major where you pick up other skills in addition to those from your primary major. However, that doesn’t immediately jibe with how students sometimes try to perceive it, and rightfully so. Studying HCI incurs a lot of cost; both in time and money. After countless hours of countless meetings and working all night several times, it’s fully within students rights to try to market themselves with their HCI major. I am by no means very experienced in the real world but I do have some idea how things work in certain industries, such as the web. In my opinion, a lot of the skills taught in the HCI major do not come off very marketable, or haven’t been so in my job-search experience.

That is not necessarily because the skills themselves aren’t valuable or marketable but it’s that they do not add as much value as other skills such as software development, visual design, business. Now, an exception to this rule is program management. Standing somewhere between all those fields, program managers, or PMs as they are often called, are the ones responsible that something that’s valuable rolls out at the end of the day. The product has to work, has to be usable, and provide value to the business that created it as well as its users. This, I believe is the sweet spot for a lot of the HCI majors and fits surprisingly well with the curriculum. Unfortunately, it’d be naive to think HCI should train people for only a certain job.

Lack of Focus

I think a lot of the issues with the HCI program is caused by lack of a clear mission statement applicable for an undergraduate program. Let’s look at what Human-Computer Interaction Institute (HCII) says about it.

The HCII’s mission is to understand and create technology that harmonizes with and improves human capabilities, goals, and social environments through interdisciplinary research and education in design, computer science, and behavioral and social sciences.

This is an appropriate mission statement for an academic institution but a lot of the times this is not refined or adjusted to fit in a bachelors program. Let’s take at the page for the bachelors program. It describes all the parts of the program in great detail but fails to really convey what the major is for. Of course, judging an entire program by a single page on it’s website is a straw-man argument but it still portrays my point that it’s not immediately clear what the undergraduate major tries to do.

It’d be naive to think that a single additional major could teach someone to be very good at both design, implementation, and evaluation, the three pillars of the HCI field according to the website In fact, out of those three, probably evaluation is the only one that does not have a major field of study that is offered at Carnegie Mellon for itself.

That brings an interesting point, however. I do not have immediate quantifiable evidence to prove this but my experience suggests formal usability evaluation seems to be a field that seems currently occupied by people who are either self-taught,studied in related fields, such as psychology but not HCI specifically or studied it at a higher level. It might very well be that I have never taken classes that emphasize formal usability evaluation but part of me always wonders how most of the HCI undergraduate program graduates have never done a formal user study (which is observed by the instructors and graded on), have experience with tools such as eye-trackers and such.


I should note that doing an additional HCI major might have been one of the best decisions I made at Carnegie Mellon, after joining cmuTV and primarily The Tartan. It provided me with opportunities that I could not have imagined otherwise such as working with real clients on real projects, applying what I have learned in classes to–somewhat–real-life settings. It allowed to meet a group of people who have share the same passions as I do, which have many other side benefits. There’s something just satisfying about being able to just talk with people who are as excited about small user-interface things as you are. However, I want the program to be better. And although my thoughts alone can’t (and shouldn’t) cause changes by itself, I would feel better if they got expressed somehow.

I think there are two major things that need to be changed about the undergraduate program. First of all, especially about classes that focus on projects (such as Basic Interaction, HCI Project and some extent to SAUI), there should be more focus on delivering actual products or interfaces that can be put in front of someone to test rather than spending inordinate amount of time on doing research beforehand. There are several justifications for this. Although there is a lot of value in understanding what users want or do, it’s an exercise in futility to develop something for the users without having them use it at one point. Moreover and more importantly, the dynamics of actually developing a product or an interface is much different from just creating a mockup or a prototype.

For example, the designer must not only live in Photoshop but also know what is reasonably possible with the current technologies. The developer must realize that people who are actually going to be using the interface will no almost no room for error or frustration or technobabble. The usability person will have to realize time is of the essence.

I know that creating something that’s more than just a mockup, is harder than it sounds but I think it’s not an insurmountable problem. Development and creating products in the real world take time too. If it looks like something cannot be delivered as a real product in time, then it should be the scope that needs readjustment, not the fidelity and the quality of the end-product.

That recommendation goes hand-in-hand with not just encouraging output for the output’s sake but also something that’s valuable to the people who will use the product. The other recommendation is focusing more on formal methods and better evaluation of them. Maybe it’s the fact that I just graduated from the program and do not care about grades anymore but I am convinced that the evaluation of students’ performance in HCI is too generous to actually get students to respect the material enough.

The End

As I said, doing the additional HCI major was a no-brainer for me and as I am done with it now, I can definitely say that I am glad that I did it. There are many things that are right about it. However, just like the field itself, this additional undergraduate major feels very rough on the edges and immature at times. Sometimes it tries to do too many things at once and some other times it doesn’t take itself seriously enough. As overly dramatic as it might sound, the entire program feels like it’s exploring what works and what doesn’t sometimes at students’ expense. At least it was fun to be in it this early on. I mean that.