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.
Watch closely
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
Great article, thank you! I couldn’t agree more.
Amit
Thank you very much for taking the time to write this and share. You distilled important interactive design lessons (particularly around player feedback) which helps me focus.
Margaret
Thanks for this insightful article. I was wondering how you went about recruiting kids to help you test? How have you other app developers dealt with this? I am a teacher at a private school, and I was just planning on asking the kids and their parents if they wanted to test my game. I would like to get some more neutral testers however, so how would you recommend finding these little beta testers? Did you offer some sort of payment or rewards to testers?
A lot of testing was done with my daughters’ friends. They didn’t have to be told that I wrote the app.
It shouldn’t matter if you know the testers, especially if they’re kids, if the testing is based on observation. Asking people to write or describe what they thought of the app is far from ideal. Either they won’t be honest because they don’t want to upset you or they won’t know how to articulate what is good or bad anyway.
The whole point is to do direct observation of the user while they use the app. It’s very easy to see if a kid is engaged, excited, bored or confused and they probably won’t hide it no matter who you are. I’m sure they don’t during your lessons!
Very interesting! Thank you for providing this insight!
Cyndie
An amazing article, and if there are developers looking for beta testers, we are available for free. fourlittletesters.com