“Neuroscientists are novices at deception. Magicians have done controlled testing in human perception for thousands of years.”
Magician, entertainer and critical thinker, Teller, of the famous duo Penn & Teller, was recently interviewed by Smithsonian Magazine. In it, he discusses several principles used to manipulate his audience. Magicians have been doing this for hundreds, make that thousands, of years. What they are really doing is studying human psychology in order to exploit it to their own needs.
This got me thinking about the psychology of software development in particular. There are some similarities shared with the points outlined that he utilized as a magician, and the problems we face in developing software with intuitive user interfaces.
While the intent of a magician may be to deceive, they are many times leading their audience to a predetermined conclusion. As software developers we might want users of our solutions to take actions that we want them to without any previous training in a way that feels natural to them. A whole lot of thought goes into an intuitive design that becomes entirely transparent and natural to the end user.
That sounds easier than it is, and the landscape is continually changing. Early on, the field of interface design was mostly made up of researchers in psychology. That has changed since and now include designers that have brought in ideas they have grown up with.
This can vary a lot with age. If you learned to type on a real typewriter, your understanding of how text gets laid out on a printed page might be different than someone who learned on a word processor using a computer program. (Are there two spaces or one between sentences?) Alternatively, just about any child knows to double-click an icon to “open” it, and even younger users might be more familiar tapping on a screen to do the same task. The lines might seem to blur between human nature and learned behavior.
I think this is an instance where we can learn from another discipline (magicians) that have been working to understand how to work with human psychology for much longer than our field has even existed. Just remember, all the time that you have spent learning to do whatever it is that you do (in my case, designing software) THEY have been working just as hard learning how to do what they do.
Here are a few general principles to keep in mind when developing software. This is not an exhaustive list, but just a few.
- Try to understand your audience
- Try to understand the problems they would like to solve
- Leverage standard conventions to reduce training and make your software feel more intuitive
- Handle errors in a user-friendly way
- Solicit feedback and adjust
Do you have your own principles you follow when developing software solutions? Feel free to leave a comment and contribute your own ideas.