Users are stupid! Or… are they? Who declares what a user should know and be able to do? Designers? Developers? Product Managers? The answer is simple: The user declares what he or she knows and is able to do. But we, the ones who build stuff they should use, tend to think that the user is the problem if there is a problem with a feature.

Nilay Patel wrote a piece on The Verge the other day:

Think of the tech industry as being built on an ever-increasing number of assumptions: that you know what a computer is, that saying “enter your Wi-Fi password” means something to you, that you understand what an app is, that you have the desire to manage your Bluetooth device list, that you’ll figure out what USB-C dongles you need, and on and on.

This resonates with my experience. I‘m an iOS and Mac developer and happen to know my way around in the system and learned a few tricks over the years and I of course have to check what’s new on those platforms all the time. I have to stay on top of it to not get lost. Do others have to do the same? Not really. The examples in the article above are real world problems. I hear them all the time. I get asked similar questions and quite often I think to myself: „That‘s not very hard to understand! How could you ask such a question? That feature is available since 5 years!“. Yet, they just don’t know!

And it’s not their problem. They know how to get along with their devices. There might be other ways, sometimes easier and faster ways to get to the same result. Sometimes they might not know something is possible and they give up trying, because they can live without it. And that’s fine!

I had the opportunity to attend a number of usability tests for one of our internal tools. The app itself is pretty simple. At least it seems so on the surface, but it turns out that average users tend to think completely different then the people who build the apps! Who would have thought that! I learned a lot (again) during these sessions. There were the obvious problems where I thought: „How is it even possible we did not think about that!?“. Those are relatively easy to solve. Then there are issues where the users don’t fully understand the main - and single - use case of the app. Also pretty easy to tackle by training them better, providing more information beforehand etc.

And then there are those issues where we need to make use of certain patterns and features of the platform. If you used an iPhone for more than a month we - the ones building and designing apps - tend to think that people take the time to learn the patterns, the look and feel, the language and features of the system. But really, they don’t! They are not interested in this nerdy stuff. They want to send messages - whatever this means to them - or call someone. If they are adventurous they installed an app, a free one probably. That’s an average user. Maybe they even have a phone full of apps and work on iPads quite often. This does not mean that they know about everything. Those are the ones we need to focus most of the time when building seemingly simple apps. At least for the ones that need to be used by everyone all the time.

But sometimes it’s necessary to go a step beyond that stage. We need to use these well established usage patterns and system features. But they are complicated. They seem to be an integral part of the system and to be known by everyone, but in reality those are power-user features. Let’s take swiping cells in a list to reveal actions, like in the Mail app… you swipe left and a button is revealed. Not a single user is ever going to discover this in an app on the first try. Never! It would take some time to get familiar with the app, maybe reading a manual or help article. It takes effort to learn that the feature exists, if it’s not found by accident. Compared to us power-users living in our information bubble, only relatively few people are willing or even thinking about making this effort.

And again: why should they!? Of course I can come up with dozens of good reasons why they should and why it would be important for them to do it. But those are reasons from my worldview, not theirs. If they are happy with their devices, let them be happy! It‘s not their problem that we fail to understand what’s easy and what’s complicated. We fail to empathize with people that are not using their devices the same way we do. We fail to design our apps in a way that makes it easy and accessible for everyone. Just because there are features on the platform, it doesn’t mean these are good features and every app really needs to make use of them.

And it’s not only a problem of us, designing and developing user interfaces in the wrong way. Stuff is too complicated and it only gets worse. Like Nilay writes:

… over the past few days I’ve started to realize it’s a pretty damning indictment of the tech industry

The tech industry does not care about normal people. They need to build the next iteration of something barely anyone really needs and they need to have built it last year already to make their stakeholders happy. Technology is evolving faster than most of the people are capable of and willing to keep up with. I know a whole bunch of people who ask me „why everything has to change all the time“, in regards to features that already exist since a couple of years and in regards to UI paradigms that were introduced many years ago. Of course, technology evolves and everything is changing more rapidly than ever before. But there a whole lot of people that are left far behind. Changes are either happening too fast, or there is a huge lack of thinking about how people should be guided to learn all the new things without telling them they’re stupid because the tool you show them is just too damn complicated to use. I think it’s a bit of both, with a lot of stress on the latter.

We can’t expect the users to know everything. They can’t. We need to watch them use the stuff we make and learn from them what it means to use something like a normal person would. We need to build the apps we want them to use actually for them, not for us. If there are issues we can’t solve for them, we need to make sure to guide them and not leave them stranded. Our products are our problem, not the users‘. That’s nothing new of course, yet we always forget. These problems are decades old and everybody involved knows about it, yet we always make the same mistakes. We need to try harder.