Tuesday, December 20, 2011

The Inmates Are Running the Asylum

Alan Cooper is one of my favorite writers because he forces me to think, and think, and think. I reread his book The Inmates Are Running the Asylum because I'm looking for better ways to develop and this book is full of better ways.

The book's premise is that software development is broken because the technologists are in control. Not because the technologist have seized control, but because the industry has abdicated to the programmers the responsibility of what to develop:
In the past, executives assumed that interaction design was a programming problem and delegated it to programmers who diligently tried to solve the problem even though their skills, training, mindset and work schedule prevented them from succeeding.

The intractability of the software-construction process - particularly the high cost of programming and the low quality of interaction - is simply not a technical problem. It is the result of business practices imposed on a discipline - software programming - for which they are obsolete. With pure hearts, the best of intentions, and the blessing of upper management, programmers attempt to fix this problem by engineering even harder. But more or better engineering cannot solve these problems.

Programmers are not given sufficient time, clear enough direction, or adequate designs to enable them to succeed. These three things are the responsibility of business executives, and they fail to deliver them for preventable reasons.

We can create powerful and pleasurable software-based products by the simple expedient of designing our computer-based products before we build them. Contrary to the popular belief, we are not already doing so. Designing interactive, software-based products is a specialty as demanding as constructing them.

The book's theme is that interactive products need a specialized design process and that the quality of software will improve by focusing initially on interaction design, which is not the same as interface design:
...interaction design refers to the selection of behavior, function, and information and their presentation to users.

[Cooper] prefer[s] the term "interaction design" over the term "interface design" because interface suggests that you have code over here, people over there, and an interface in between that passes messages between them. It implies that only the interface is answerable to the users' needs.

Interaction designers work from the outside in, starting from the goals the user is trying to achieve, with an eye toward the broader goals of the business, the capabilities of the technology, and the component tasks.

Things important for an interaction designer: a strong understanding of what programmers actually do, understanding of interaction design principles and methods, along with a taxonomy for understanding their users.

This book is one of my all-time favorites. It is riveting, entertaining, informative and thought-provoking.

The forwards (there are two) are excellent at setting the context for the book and should be required reading for everyone in the software development field.

My favorite chapter is the first, Riddles For the Information Age, which explores and answers the question of what happens when you cross a computer with anything else.

No comments: