Interaction design (or user experience design) is a craft. I learnt it by doing, without proper mentors: creating multimedia presentations, CD-ROMs, websites and games by observing other products, using common sense and trusting my gut. Back in those days, interaction design wasn’t really a specific job; it was something a concept designer or graphic designer did as a part of their job. As a result, the products sometimes lacked understanding of user motivations, or performed poorly in usability tests (if there were any).
While working on Habbo, I decided to check if anything useful was written about this topic. Over the years I have found some books really useful. I wish I had read them earlier.
How to Create Human-Centered Products and Services by Kim Goodwin
The number one. It contains a comprehensive explanation of Cooper’s goal-directed design process with material on design principles, research, personas and scenarios. With 768 pages it’s not an easy read, but for me it built the big picture of how to think about the design process.
The Essentials of Interaction Design by Alan Cooper, Robert Reimann and David Cronin
This book comes from the same school of thought as the previous, but focuses more on design principles. Solid stuff, but it gets a bit random towards the end. There are some fun things, like Mac OS X Lion’s auto-save feature described some 10+ years earlier.
Why High-Tech Products Drive Us Crazy and How to Restore the Sanity, by Alan Cooper
The third book of “Cooper-school” to complete the trio. This book is aimed at business and technical people. It paints a picture of why it’s valuable for products and services to be designed for people. The book was originally published in 1998, and luckily the situation has improved a bit since then.
The Do-It-Yourself Guide to Finding and Fixing Usability Problems by Steve Krug
Another Steve Krug book, this time explaining a simple process for running usability tests yourself. Usability tests are seen as slow and difficult, but here’s a model that makes them quite easy. Being involved in testing yourself helps you make better decisions next time.
Good best practice for web form design. A surprisingly large amount of our interaction with websites is done with forms. Luke Wroblewski has distilled plenty of experience and research results into a concise book.
A bit uneven as a whole, but outlines good methods and patterns for designing social software. The book contains a light description of activity-centred design as an alternative to Cooper’s goal-directed design.
For some more, see books tagged ‘design’ in my LibraryThing catalogue.
Do you have a personal favourite that is not on the list? Please let me know in the comments.
Attentive Light is another slow project that I’ve been working on together with Mikko Köykkä. It started from a personal need within my home: I struggled to find attractive light fixtures, so why not make your own – and make it interactive.
Home appliances are getting connected and “smarter”. The first Internet fridges were a flop in the dot com era, but this year there’s a new wave of WiFi-enabled fridges, washers, ovens and vacuum cleaners being introduced to the market. However, while they offer fancy technology, most of them don’t seem to make much sense for people (who wants to control an oven with a smart phone?). But maybe there’s something valuable to be found.
Attentive Light is a playground for exploring the possibilities and problems of automated lighting. The idea is to make it energy-efficient, highly functional and aesthetically pleasing, even poetic in everyday life.
The first prototype is a simple light fixture which turns itself on and off according to a pre-defined schedule and adapts its hue in line with the current weather, providing warm or cold light depending on the weather outside.
The prototype has a RGB-LED and a halogen lamp connected to a PC via an mbed NXP microcontroller. The PC runs a homegrown Python application that can be in automatic or manual mode. In automatic mode, the app gets the current weather information every hour from Yahoo and compares the current temperature to the average of past days.
The application sends control commands to mbed, which controls the power to lamps with pulse-width modulation. The RGB components and the halogen lamp can be controlled independently and there’s support for colour profiles for getting the right shade of white. No matter how you tweak the white point, LED light is still quite different from incandescent light. I would like to use LEDs for their energy-efficiency, but the quality of the light needs to be pleasing, too.
The next step is to add a movement sensor and a photosensor to give the system eyes.
The store window had three black and white TVs, two Vectrex games consoles and a TI-1200 calculator. Behind the scenes I had a video camera and some modern computers doing the magic. I did the “modern programming” myself, while Mikko Köykkä (the #1 independent electronics guy in Helsinki) built the custom hardware and did the microprocessor programming.
A hidden DV video camera with a fish-eye lens was connected to a Mac mini, which ran a custom-made Mac OS X application. The Mac app used the OpenCV computer vision library to track moving blobs (i.e. people) in the camera view. The camera was placed high up, looking down to the pavement to avoid seeing cars passing by.
The Mac OS X application ran a behaviour model for every creature. According to a set of rules, it decided what they should do, and then streamed behaviour messages (e.g. look left, smile, sleep, talk, etc.) to other machines. The PCs got their messages over WebSocket connections and the Arduino and AVR processor got theirs as serial communications over USB connections.
The PC laptops ran the Google Chrome browser and a web page that animated the face on an HTML5 canvas according to the instructions received over the WebSocket. The PC display image was turned into an RF-antenna signal that the old TVs tuned into.
The Arduino and related electronics on a breadboard converted the behaviour messages into analogue signals for the Vectrexes, which ran custom-made software programmed by Mikko. The software animated the faces on the Vectrexes’ vector screens like the HTML5 app on the PCs. The hidden AVR processor inside the TI-1200 animated the calculator screen.
All audio came from the Mac application. The audio acting was performed by Liisa Jokinen and me.
Thanks to the indispensable help from Niko Nyman (who is not only a great web designer and developer, but also a woodwork craftsman), the installation got a robust backdrop that made the screens stand out and provided a place to hide the camera.
All in all, the setup ran surprisingly smoothly, 24/7. The weakest spot was the tuners of the old TVs: they drifted around, and we had to perform minor surgery on the Luxor TV right after the vernissage. The Mac port of OpenCV also had an annoying memory leak in the camera view window, but it was avoided by not using it live.