close menu

Musing: Use of users

24 July 2020

Good programmers, engineers, and product people spend a lot of time thinking about their users. The fact that user experience is one of the most important things when it comes to building software products is uncontentious. To be successful, we must care that our users have minimal exposure to errors, that they have pleasant (perhaps memorable, but more often subtle) experiences with our software products. We must care that our products can help our users be productive, have fun, develop connections, and so on.

We also tend to be obsessed with ensuring that will tell their friends about our products and convert them to become users as well. And perhaps, too often software engineers end up thinking of users as the following very impersonal structure:

User { uuid, email, ... }

As a software engineer, you probably tend to think in terms of transactions, IDs, and account aliases. This sucks because it makes it too easy to forget that our decisions as engineers can have major impacts on the real-world people that use our platforms, services, and apps. Too often we commoditize user information, and forget about the nuanced and sometimes drastic ways that this can put people at risk.

Of course, this is not helped by the fact that unless we're careful, many of these structs might not actually correspond to real people. Bots run wild.

Users though... I have never liked the word "user" in terms of computing. User is a dirty word, and none of the definitions are feel compelling enough for its — err... use.

n. One that uses.
n. One who uses a computer, computer program, or online service.
n. One who uses addictive drugs.
Definition from The American Heritage Dictionary of the English Language, 5th Edition.

Definition 1:

  • Kind of redundant, non-specific, meaningless, impersonal — words like this suck!

Definition 2:

  • Really given just due to the pervasiveness and ubiquity of computing — blech.

Definition 3:

  • Strangely appropriate in a metaphorical sense, and depressing and disturbing in many others — a lot of apps are designed to be addictive, have crazy network effects, and addiction is often amplified by the network.

I'm not the only person with the distaste for calling people "users", others also have problems with it for one reason or another. This stack exchange post has some decent discussion, and the problem is mentioned in the Wikipedia entry for User (computing). Despite this — I haven't found anything satisfying in my quest for a better word. It's hard to come up with a better term. It becomes even harder to replace when you don't even necessarily work with people directly. Maybe your product is service-to-service, or business-to-business, or business-to-people-to-service-to-bots?

Can we simply call our users people? Maybe, but to me it doesn't sit right — People Experience sounds weird. (And bots usually aren't people )

Customers? Probably a good choice most of the time! Customer Experience? That's definitely a thing. I suppose that bots and businesses can be customers too, but it's probably not universally appropriate.

Maybe we can be clients? Client is a kind of impersonal and generic term, but calling someone a client is a bit more satisfying than calling them a user.

Human language is hard.

To my fellow software engineers: whatever you call them, continue to think about your users. And while many of us like to use methaphors for the real world in our code, remember that a user struct is a very poor proxy for a person.