Just now, I was attempting to help my mother connect her computer to a wireless network. I'm a fairly technically savvy person; I'm a software engineer, and because I often take an intense interest in subjects that I don't need to, I have a pretty decent understanding of how 802.11 wireless networks function. (Though the low-level hardware in routers and wireless cards is completely alien to me.)

Trying to help someone else do something this simple with their computer is always eye-opening. It's no secret among technologists that as soon as we attempt to help someone like this, we quickly learn just how massive a gulf still exists between laypeople and the usability of the experience of interacting with the technology. This is still true, even in an era where technology is both unavoidable as part of normal life, and where civilization is rife with gizmos that claim to have been designed for a high ease of use.

When my computer won't connect to a wireless network, I know what steps I should take to troubleshoot. I turn the wireless card off and then back on. I restart the computer. I run diagnostics on the wireless card. Is it only your computer? If not, maybe the router needs a restart or the modem needs a power cycle. Sometimes you just have to walk away from the machine and come back a few hours later, when the gremlins have moved on.

How do I know this? In this particular case, I've had this problem before, and I've spent time trying things through trial and error.  In some cases I do Internet searches. But the point is: no one really taught me all of this. I had to derive which steps to try, and the order of their probably effectiveness, from my experience...but I take it for granted that I understand technology well enough to figure this kind of thing out.

So when my mother's computer won't connect, she really has no idea what the first step should be. (My suggestion is to do a Google search, assuming you have some other access to the Internet, and assuming also that you are capable of understanding that advice in the articles you find. But both of these assumptions could be bad.)

In walking her through the steps I know, at one point, she needed to enter her system password. First of all, it wasn't clear to her which password she needed to enter. But the main issue arose when she entered the wrong password: the dialog with the password input field shook left to right a few times, then settled. There was no error message. Until I told her, it wasn't even clear to her that anything had happened. I had to tell her: "That was the wrong password."

Later, I pointed this out to her. The feedback she had gotten about her incorrect password had been insufficient. The dialog box quaking horizontally, almost imperceptibly to someone with poor vision, and with no error message, wasn't enough to communicate to her what had occurred.

Her immediate response: "Well, it probably would have been clear to someone who's better versed in technology..."

"Nope," I cut her off. "It's not your lack of knowledge that's the problem. It was a lack of clear communication from the machine."

In discussions about the ease of use of technology, this point is often glossed over. Sure, if your website is difficult to use, people might get frustrated and go use your competitor's website instead. But what do people get frustrated with?

From my reading of usability and user experience literature (which is, I'll admit, small in quantity), people will usually do what my mother did: they blame themselves. When technology confuses them, they usually attribute the error to their own lack of understanding or, worse, their feeling of inadequacy in the face of complicated technology.

In all fairness to the people making this kind of technology: the manufacturers tend to know this, and I think they make an effort to make things easier on the user. But computers are extremely complicated things; there's only so much you can do to abstract the complexity. And if you endow the system with too much hand holding assistance, this can be overbearing for the other users who already know what they're doing. It's a difficult balance to strike.

As an engineer, I work to build interfaces that are used by people. I know how tricky this is. We cannot accommodate all use cases for all people. We cannot foresee all possible difficulties that might arise for our users. As technologists, we are trying to be sensitive to the needs of everyone, and trying to understand the needs of everyone, but bear in mind that many of us got into technology as a profession because we exist in that large gray area between Aspies and the neurotypicals. Our understanding of machines often exists in our brains largely to make up for our lack of understanding people.

There's a fundamental truth to keep in mind when dealing with technology: computers are dumb. They are only capable of doing precisely what a person, or (more likely) a group of people, has taught them to do. It's not a stretch to say that most groups of people, especially as they grow large, have difficulty in coordinating with each other. That means the glorious technical future that's encroaching into every aspect of our lives, being built by such people, isn't a panacea that's going to deliver us from difficulties; instead, it will increase them exponentially.

So, if you get overwhelmed by your computer, phone, car, or whatever Internet of Things device that's destroying your happiness...please, please keep this in mind. You are, in fact, smarter than the machine. It's not you, it's them. Curse the people who made the thing if you must, but don't curse yourself. This will accomplish nothing but reinforcing or widening the gap that we, as a society, should be working to bridge.