I recently gave my "How to Build Learnable Apps that Users Love at First Sight" tech talk at Brown University for the fourth time. This is a fun one because most people haven't thought much about what makes software easy to learn, so there are usually at least a few "aha!" moments.If they've considered it at all, computer science students generally think of usability in terms of "counting clicks" - how many steps it takes to perform an action - which is indeed important, but doesn't necessarily make the software easier to learn for a new user. Even if it only requires one step to do what you're trying to do, that doesn't help you if you can't find the button!
You only need to click one button, but can you find it?
My talk describes three "laws of love" - principles that can make software more learnable and intuitive for new users. They are:
Most people who use your software have used other software before. Rather than starting from scratch with your user interface, use elements that are familiar to your users: a search box in the upper corner, icons that are similar to those in other apps, and native buttons and widgets whose purposes will be obvious because they come from the user's device. Familiarity makes it easy for users to learn your app because their guesses are good.
People feel overwhelmed and confused when presented with too many choices. Even extremely complicated software such as Google Search and Siri can give the user a very simple and obvious way to interact with it. If you only have one choice, you can’t make the wrong choice.
New users naturally feel trepidation when trying things for the first time, so what happens when they're starting to click around is extremely important. Are they rewarded with a delightful feeling of competence ("I am a genius!"), or punished with unintended side-effects that can't be undone? Like a game that starts on beginner mode, does your software build up the user's mastery by starting with the basics and then gradually offering them more tools, logically building on what they've learned?
Finally, after following the principles above, one very important step remains before releasing your app to users: test the design! Software engineers have figured out some very powerful tools that allow you to analyze your users' behavior from afar, such as A/B testing and heat maps. But you can't rely on this analytical data alone if you're trying to create an emotional feeling (love) in your users. Heat maps won’t tell you “are you feeling frustrated while trying to figure out this screen?” A/B testing won’t tell you “what were you hoping would happen when you tapped on that button?” These are helpful tools, but they aren’t substitutes for understanding your users.
If you want your users to get engaged with your app, you have to get engaged with your users. Watch them learning the app for the first time and pay careful attention. Facial expressions, body language, and tone of voice will tell you things that the user could never or would never articulate.
Better yet, be a user yourself and force yourself to rely on your software - this will make it harder for you to miss or ignore its flaws. Your app will be 1000 times better and you’ll learn how to design great software. There are many paths to success in software, but the surest is to create mind-blowingly amazing software that your users love.