What is the quickest way to try out a complicated tech idea on real people? How do you get real, valuable feedback from users without going to the expense of writing code?

Paper prototyping is an idea I've recently been introduced to at ThoughtWorks. You draft up the interface on pieces of paper, and have a human act as the computer would, swapping out bits of paper in response to a real user.

Advantages and limitations
Ben O'Hear explains the concept in the above video. As he describes, the advantages are:

  • It costs far less than developing even basic software
  • You can get very early feedback, even before writing any code - and that feedback could have significant impact on what code you write (or don't write)
  • If a user does something unexpected, you can respond ad-hoc and get feedback on your improvised response
  • You can work collaboratively and iterate rapidly - i.e. a group of you can discuss the user's interactions and sketch out a whole new UI there and then, and test it out again on users

Some of the disadvantages are:

  • It's easy to test out big ideas, but hard to zero in on small details
  • You are constrained by location - you can't test remote responses to user actions. However, on this point, it seems to me that you could simulate some types of remote testing using Skype
  • You are constrained by paper - you can't have detailed real-time responsiveness, e.g. Kinect interactions, or sound synthesis. However, again you could simulate this using human voice or recorded sound
  • As in all usability testing, this can tell you whether users understand your app, and can use it - it doesn't tell you whether users want to use your app or are willing to pay for it

This is a very lean startup way of thinking, in which learning about your users is the preferred unit of measure - rather than completing features.