After reading the Inmates are Running the Asylum, by Alan Cooper, it’s very easy to see its influence on Bret Victor. Unfortunately, for the software industry, this book is as true in 1998 as it is today. My two takeaways were: Interaction Design, i.e. how humans interact with a product, is hard and if software engineers are left to design the product, it will lead to a frustrating experience.
The book is well worth a read to anyone who has experienced, as Cooper described, “Computer Tourettes.” For example, I have an extremely feature rich thermostat; it can do all sort of things like tell me the time, vary its temperature at different times of the day, and I’m sure other things. I still can’t figure out how to change the temperature setpoint RIGHT NOW. This is in contrast to my barometer, where I can simply compare the setpoint marker to the current pressure. I would much rather have the interface from my barometer on my thermostat.
Neal Stephenson, in one of my favorite essays, In the Beginning was the Command Line, talks about the first VCRs (those too young to know a VCR, maybe you’ll remember a DVD player?):
But because the VCR was invented when it was – during a sort of awkward transitional period between the era of mechanical interfaces and GUIs – it just had a bunch of pushbuttons on the front, and in order to set the time you had to push the buttons in just the right way. This must have seemed reasonable enough to the engineers responsible for it, but to many users it was simply impossible. Thus the famous blinking 12:00 that appears on so many VCRs. Computer people call this the “blinking twelve problem.” […] The blinking twelve problem has moved on to plague other technologies.
Cooper argues that once you cross a computer with anything, a car, a thermostat, an airplane, what you have is a computer. The blinking twelve problem is a result of computers being programmed by a different species: Homo logicus. Homo logicus, i.e. software engineers, have four differential traits compared to Homo sapiens according to Cooper:
- Programmers trade simplicity for control
- They exchange success for understanding
- They focus on what is possible to the exclusion of what is probable
- The act like jocks
These are default behaviors by Homo logicus and are very hard to overcome. This is one of the reasons why the motto Paul Graham’s startup incubator is “Make something people want” not “make something cool.” To me, optimizing a piece of code to run ten percent faster is cool, but hardly is that a solution.
This is a book with which non-programmers could fundamentally agree but unfortunately I think most software engineers would dismiss for all of the reasons stated therein. Our culture is one where RTFM is worn on a t-shirt as a badge of honor. I’m as much to blame as anyone else. I thoroughly enjoy tweaking Emacs, tinkering with embedded computers, and using wherever I can. All of this is fine of course as hobbies or when the user is a member of the geekdom. But when we are building something for mere mortals (see point number 4 above), our monoculture is a weakness that blinds us to these interaction issues.
Design is difficult. Most well designed objects have less degrees of freedom. I believe this is one of the sticking points for Homo logicus. I will close with Neal’s closing of In the Beginning, because it states the underlying problem that Alan Cooper was trying to solve:
What would the engineer say, after you had explained your problem and enumerated all of the dissatisfaction in your life? He would probably tell you that life is a very hard and complicated thing; that no interface can change that; that anyone who believes otherwise is a sucker; and that if you don’t like having choices made for you, you should start making your own.