Our feature this week is written by Shimon Young, the developer of My PlayHome for iPad, an app which is receiving incredible reviews on the App Store. Shimon discusses the importance of user testing in the app development process, and tips on what (not) to do when those little beta testers are doing their job.
Pretty much everything I mention here should be self-evident and understood by all app developers. However, after coming across a few apps with UI mistakes that should have easily been spotted and fixed, I thought it might be worth going over the basics of designing and refining your app through user testing.
You’re not there
The first thing to remember when you sit down with someone to test your app is that real users won’t have you around to answer questions. You won’t be able to explain the purpose of your app, the correct way to use it, or how to get started.
Any interaction you have with the tester will ruin the validity of your test.
Resist the possibly overwhelming urge to show off or nudge the tester in the right direction. You want to see exactly how your real audience will cope with your app. And that means they’re on their own.
Users don’t/can’t read
Not only will you not be there to instruct them, most users won’t read any instructions you leave for them either. In the case of apps for young kids, your user most likely won’t be able to read.
Apple’s success is built on their commitment to make their devices as intuitive as possible. You didn’t need to read a manual before falling in love with your iPhone. Your app should be the same.
We learn early on how to interact with physical items. Buttons are there to be pressed. Knobs are to be turned. Handles are to be grabbed. Always try to use existing metaphors for interaction.
As my UI lecturer used to say, if a door has either “Push” or “Pull” written on it, then it’s a badly designed door.
Again, don’t speak, don’t touch the device, just watch.
Does the user look confused, irritated, happy, engrossed? Are they touching the right things? Are they touching something or waiting for something that won’t happen? Are they making “mistakes” again and again? Are they dragging when you want them to be clicking, or vice versa?
By way of example, I saw a promotional video for a similar app to My PlayHome. The first ten seconds of the video showed the child repeatedly hitting the same icon. Whatever that button did, it wasn’t clear to the child. Later in the same video, the child is seen trying to drag an icon into the play area. However, the icon was designed to be clicked, not dragged, and therefore wasn’t responding.
The “good” news for us is that kids are way more forgiving than adults and are far more willing to experiment, discover and adapt. However, they’re probably going to have more fun if things work the way they expect them to from the start.
Take the blame
It’s very hard for programmers to see things from the side of the user. We’ve spent years studying arcane technical details and wrapping our heads around each device’s foibles. We roll our eyes whenever our parents and less nerdy friends come begging to us for advice about the most basic computer tasks.
Well guess what. That’s our fault. It turns out normal people don’t understand the concept of nested document folders or indeed a whole raft of ideas that we take for granted. And they shouldn’t have to. It’s no accident that you can’t access or save files on your iPad. Steve Jobs cares passionately about making computers usable by mere mortals. He spent 10 years thinking about iCloud just to solve this precise problem.
If you find your users aren’t pressing the right button on your app, then that’s your fault. A lot of software is hard to use these days simply because programmers like us find it easier to blame the user.
Don’t be precious
This is the hard part.
In early versions of My PlayHome the player would move between rooms by swiping the screen. We wanted to do this to make it cool and iPad-like. However, it became clear from testing that the player would accidentally move the room when they didn’t mean to or conversely, would pick up items and throw them across the screen when they meant to switch room.
Sometimes you spend days coding what you thought was a particularly cool feature and then it turns out that it just annoys your users. There will be times when you’ll need to put your ego to one side and let your beautiful code go.
P.S. An eye-opening book on UI design that should be required reading for all programmers is About Face 3: The Essentials of Interaction Design