Benad's Web Site

I rarely stop reading books because I disagree with them. When I do, it's usually because I find the writing tedious or the contents uninteresting. Alan Cooper's "The Inmates are Running the Asylum" has such a bad tone and glaring problems with its contents that I stopped reading at chapter 7. I was recommended this book on user-interface design, but realized too late that this book was meant for software product managers, not software engineers or aspiring UI designers. Also, I ought to have checked Cooper's credentials.

The earlier chapters retell the tale of how bad software user interfaces are, how computers became part of our everyday life, and so on. Nothing exiting there, and the story has been told many times before.

And then, a few chapters later, it places the blame entirely on programmers, thus justifying that only a new kind of specialization can bring good user experiences. Now, I could gloss over his assertion that programmers cannot do software design. There is such a thing as usability of source code and application programming interfaces (APIs). Source code readability, documentation and modularization all have huge impact on quality and cost, because source code is not only used by computers but also humans. But then, coming from the "father of Visual Basic", I don't expect Cooper to be able to know that usability in programming languages even exist. Funny how, within the same chapters, he revels in bashing Bill Atkinson's work at General Magic, considering that Atkinson's use of HyperTalk for GUI programming in his HyperCard preceded Visual Basic by years and is a vastly more usable. But I digress.

Sure, his attack on programmers based on stereotypes dating back from the 70s can be amusing as a mean to defend a new practice. But on user interfaces itself, he was flat out wrong by presenting a false dichotomy between "being in control and understanding", and "simplification and success". This is in complete contradiction with Jef Raskin's "The Humane Interface", and countless experiences I had supporting others in using computing devices. Cooper is almost saying that having users form a mental model and minimally understand goes against "successful" interfaces.

The whole point of "remote controls" for television sets is to give control to the user. The whole point of using a desktop metaphor on computers is to empower users to be creative within that model and masking them from the technical complexities. And when things break (they will break), users want to at least understand a little bit what's going on, otherwise they will be overcome by fear. Cooper presents that false dichotomy using the analogy that, entering a plane, engineers prefer going to the cockpit and the "normal people" prefer just staying in the passenger seats. Well, trust me, if anything goes wrong in the flight, all the passengers will be paralyzed with fear and wished they understood a bit about aeronautics. This applies equally well with computers.

Since in the course of reading the book it went from the mundane, passed by the insulting stereotypes, and finished on flat out wrong, shouldn't that be sufficient for me to stop reading? Well, I glanced at the table of contents, and saw that the remainder of the book is about "personas", "use cases" and other buzzwords that were popular ten years ago. It is my opinion that the overuse of those, combined with agile development, created a steady decline in software quality in the past decade. I could go on that the industry's practice of relying almost solely on use cases and the near total lack of mental models in modern interfaces is transforming computers into mere appliances, which may cause great harm for content creators, but that's for another post.

Now, going back to the list of usability books I wanted to read last year, I might want to look more carefully at the credentials of the author, and not just reputation, before I even waste my time with career-building drivel. Software Engineering is already filled with those kinds of books, but at least in that domain I became good at weeding out the bullshit. Yet, that still raises the fundamental issue: What should be proper credentials for a "Human-computer interaction designer expert"? I mean, actual theoretical background, akin to programming's roots in mathematics, not just experience out of thin air or just drawing hip designs.

My conclusion remains mostly the same as I wrote last year, then. The theoretical foundation of usability should be in be educational psychology, behavioural sciences in general, and then visual design and animation. I'd rather start learning about these, so that my recommendations about software interface usability would be based on some informed reasoning.

Published on September 14, 2013 at 17:09 EDT

Older post: Replacing Google Authenticator

Newer post: Revision A