Someone who makes a convincing argument is Alan Cooper, who wrote “The Inmates Are Running the Asylum. Why High-Tech Products Drive Us Crazy and How to Restore the Sanity.” (Cooper, 1999) This book is a classic by now, and if you ever move into a management position or will continue to do HCI within a software/engineering firm, I strongly advise you to read it. Cooper is the father of Visual Basic, so he does know something about computer science and how software products are built. His claim is that a lot of software is not only developed by software engineers, but also designed by and for engineers.
He argues quite convincingly that for other important constructions, e.g. when building a house, we separate the design (realized by the architect) from the actual building (done by the contractor). This is often not the case with software. Often, software is designed by accident. After all, any programmer, who makes decisions about how the software is going to behave, to the end user, is in fact designing the interaction. If the interaction has not been designed upfront and written down in some form of specification, a programmer will make a decision, based on his ‘common sense’. Yet the programmer wants the production process to be smooth and easy, while the user wants the interaction with the software program to be smooth and easy. These are different and often conflicting goals.
Moreover, Cooper argues that software people are different from other people altogether. As a software engineer, you simply cannot know how normal people think. Whom of you already picked apart an product (a radio, or a bike, etc.) just to find out how it worked without knowing how to assemble it again. The point is that software engineers look at the world differently, and like complexity (such as command line interfaces) for the sake of transparency and control. Other (normal) people might trade in control and precision for simplicity and ease-of-use.
Cooper uses the dancing bear metaphor to illustrate the discrepancy between software engineers and ‘humans’. Software engineers can marvel at the fact that the program is running, and they see the awesome power and flexibility. They see the richness in its features and functions, but they ignore how difficult or degrading it is for users to use. For software engineer the wonder isn’t that the bear is dancing well, but that it is dancing at all. But remember, a bear is really a terrible dancer. End-user may really see an ugly bear dancer.
Cooper argues that when software engineers are allowed to define how a software program behaves, problematic software is the end result. He simply states that computer scientists should stay away from interaction design. I am a little bit more optimistic than Cooper. My belief is that with a proper course of human-computer interaction, some of you might become great interaction designers. Or otherwise, after following this course, you realize HCI is such an important yet specialized field within software production that someone dedicated should do it for you.
By the way, Cooper wrote another excellent book about the essentials of interaction design called ‘About face’.