Alan Cooper
08 Feb 2009Next up on my digital reading list:
Alan Cooper is one of my software heroes. Actually now that I think about it I don’t have any other software heroes, so by default he is my software hero.
::insert you are the wind beneath my wings::
He had me at hello…ok I need to stop, my wife may actually read this one-day and I’d rather not freak her out.
I found Alan Cooper while strolling through Channel 9, a website hosted by Microsoft as part of the Microsoft Developer Network. Channel 9 hosts all sorts of videos, most of them from inside Microsoft focusing on new innovative technologies produced by the Redmond giant. However, one video caught my eye:
http://channel9.msdn.com/posts/Charles/Alan-Cooper-Questions-after-his-keynote/
I’ve shared this video with most of my co-workers, and by shared I mean I sat them down, wired their eyes open, and insisted they watch it until they memorized it. That was one wacky causal Friday…
Cooper hit home one fundamental truth for me in that video…to paraphrase: users do not know what they want so it is our job to tell them.
In a world where we developers are dependent on our customers this is a very bold statement. This view of the world has empowered me to stand up and shout at the top of my lungs, “Your desire to have pictures of puppies and unicorns on the user interface is a horrible idea, and I won’t stand for it anymore!!!”
Now, normally when I’m having this conversation with my clients I have already ripped off my shirt Hulk style and I’m standing on the conference room table. I then proceed to take down the projector that is hanging from the ceiling, you know…to make a point.
Actually, Alan Cooper doesn’t advocate we bring an uninformed opinion to the situation; rather, we need to work with our clients to identify who is going to be using our software on a daily basis. If we design our software for the people who are going to use it, they will likely enjoy our software and want to use it. This sounds like a fundamental, day one CS 100 idea, however it is rarely taught that we should design products for the people who are going to use them, and not just ourselves.
This type of design is known as Interaction Design.
I have strived to incorporate many of Alan’s key ideas, such as:
- Interview people who will be using the product, find out their goals, motivations, desires and abilities
- Develop personas given the data gathered from the interviews. These personas will help shape the product and prevent the all too common argument about 'the user'. There is no more 'user', the persona has a name, a family, and hobbies outside of work.
- Fully defining our users in the form of personas prevents developers/managers/clients from taking a person using the system and having them perform all possible system actions. Since personas are well defined we can say, 'the new feature you want to add for our main persona isn't a good idea because our persona doesn't have the skills to use this new feature.'
- Take the personas and define what 'done' looks like. This involves designing scenarios where the personas are using the system and defining the workflow the personas would use to accomplish their goals. These workflows can then be taken at the end of the project and executed by real users to ensure the product does what it was defined to do.
I will more fully explore using Alan’s personas in a later post.
Give me a minute to hawk Alan’s books, The Inmates Are Running the Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity. Inmates is the book you read and then give to your boss so they understand what you are trying to accomplish. Alan’s other book About Face 3: The Essentials of Interaction Design tells one how to actually go about and implement his ideas in a project. I highly suggest both books be added to your bookshelf along with his company’s blog to your RSS reader.