Patrick McKenzie’s blog post Falsehoods Programmers Believe About Names raises some interesting questions about online identity. He writes: “So, as a public service, I’m going to list assumptions your systems probably make about names. All of these assumptions are wrong. Try to make less of them next time you write a system which touches names.”
He then provides a 40-point list of ways in which computer systems break human names acknowledges it is an incomplete list, and asks readers to provide additional examples. The most egregious item on his list, in my opinion, is #39: People whose names break my system are weird outliers. To embed this assumption into software is to deliberately choose to treat some portion of potential users as second-class at best, or at worst simply reject their business. A small software or web company who needs every user they can get probably rationalizes this as prioritization of features given limited resources. “Is our programming dollar better spent making the system faster or providing fully functional human names in profiles?” A really large company who has more than enough users to be profitable can afford to simply not care. Facebook, for example, would rather lose me as a user than tweak their code to allow me to use my real name. This despite their policy requiring me to use my real name. I know this for a fact because I asked them. If I manage to offend the US government, there’s a CFAA felony right there.
But the post raises a larger issue in that we’ve lost our way when it comes to identity online. Throughout human history the context for names was primarily the community in which one worked and lived. Commerce and warfare exerted some degree of disruptive influence by expanding the namespace and in terms of both quantity and diversity, but our traditions around human names were largely formed before mass media, high-speed travel and the Internet. Now we routinely have communities of millions, sometimes even billions, and we are offered the chance to participate provided we conform to the community’s idea of a name.
I don’t know that I could articulate a profound definition for “identity” but I know this: there is no soul without identity. The idea of a soul existing in the afterlife presumes that the person’s identity, or at least some unique essence of it, remains intact. The alternative would be that a soul was some subset of the background cosmic radiation absolutely indistinguishable from all other souls in that soup, and I’ve never heard anyone proposing that. But if your identity is inextricable from your soul, then you truly are being offered a Faustian bargain with digital identity. “Come join our community. Look at all these bells and whistles. Think of how rich your life will be if you participate. All we ask is that you abandon millennia-old human tradition and adopt a new machine-readable name. All we want is your identity.”
The problem seems to me to be one of perspective. This is illustrated in a mocking comment on Patrick’s post from “Jason”:
As a public service, I’m going to list assumptions the author of this article probably makes about computer systems and/or the people that wrote them. All of these assumptions are wrong. Try to make less of them next time you think, it’ll prevent you from sounding like an incompetent fool that doesn’t understand simple things.
- Software can account for every possibly[sic] ever.
- Software engineers care about your article.
- Your hurt feelings and low self-esteem will somehow earn you empathy.
- Software engineers care if you have to slightly modify any or all of your name to properly be accepted by the software.
- Software engineers care if you ever use their software.
- Software engineers wanted to build the software the way it ended up.
For Jason, the software is the end product and the people using it are incidental. To him, the assumption that “Software engineers care if you ever use their software” is false and Patrick McKenzie is an “incompetent fool” for suggesting otherwise. With all due respect (which in this case is zero) to Jason, I propose that the software is incidental, that compelling functionality is the product, and that “compelling” is a human quality. This is especially true when when it comes to identity in general and and online communities in particular. Communities are people and people are their identities. It is a great loss that most software can’t get even that part of it right for a relatively small but significant portion of the human users of the system.
The specific design is usually calculated as a compromise between the number of people adequately served versus the cost of serving all of them. Reduced revenue for the portion of users for whom it fails is offset by the savings in design and coding cost to make it work right for everyone. There is a point of diminishing return at which the cost of incremental improvements far outweigh any possible return so it is almost universally accepted that no system will ever accommodate all possible users adequately. Once the drawing of that line is taken as a given, it becomes a question of where to draw it. From there on out, the software design for managing human names becomes an externality. It is a place to bury development cost savings where nobody will notice, or if they do notice then they are weird outliers who do not matter.
By design the software works for the large majority of users without forcing them to change their identity. That means most human users do not have a clue as to the extent of the impact on the minority who are affected. Many are dismissive and take the attitude, expressed by many commentors on the post, of “What’s the big deal? Just adjust the name to make it work.” In this view, the software is the center of the universe and everything else revolves around it. No consideration is given to the effects outside the software. I’ll give you a for-instance.
My name is T.Rob but am better known as T-Rob because IBM (among many others) allows dashes but not dots as punctuation in names. Whereas my employer before IBM didn’t like me publishing articles and never funded speaking at conferences, at IBM these were career enhancing activities. Consequently, the 8 years I worked at IBM were the ones in which I have done almost all my public speaking and writing. During that time I was forced to use a name other than the one I had used for the previous two and a half decades. Thanks to IBM most people know me professionally as T-Rob and my web site search engine referral logs are littered with searches on that string which is not my name.
During my tenure with IBM this led to many exchanges similar to the following:
“Dude, what’s your email address? I can’t find you in the directory.”
“T-Rob/Charlotte/IBM. Just search on T dash Rob. Or if you search by name, look for Todd.”
“If your name is T-Rob, why do you sign your emails as T.Rob? Makes it hard to find you.”
“Because T dot Rob is my name and T dash Rob is my email address. I’d love to use my actual name in the directory but it won’t let me. This is as close as I could get.”
“Why do they have you listed as Todd?”
“That’s my slave name. The ‘odd’ is silent.”
“Can I just call you Todd?”
“You can try. Nobody’s called me that in 25 years so don’t be offended if I don’t realize you are talking to me and fail to respond.”
Eight years later, the corporate policy embedded in IBM’s Employee Directory has permeated my public and professional life and will continue to do so for many years to come, despite my having left the company. To the software engineers, the administrators and the HR policy-makers involved in making and running IBM’s employee directory, the software was the center of the universe rather than the people it served and that view both informed their policies and blinded them to the possibility of real-world impact well beyond the software.
If you are in the majority of human users whose names fit the software without modification, this may seem a bit petty. But as a child in school, did anyone ever saddle you with a nickname you hated? It is a common technique among bullies to dehumanize their victims and distinguish them from the rest of the student body. Culling the victim from the herd psychologically as well as physically makes it less likely the general population will identify with the victim and intervene on their behalf. It is an effective tool for demonstration of power in the social hierarchy. It is why prisoners used to be known by their number rather than their name and the effectiveness with which that dehumanizes people is why the practice has fallen out of favor. People equate control of their identity with control of their destiny.
The online world generally uses this as a power of inclusion rather than exclusion. In other words, the software makes you change your name so that you can participate in the community rather than to exclude you from it or single you out. Intuitive reasoning tells us that “if exclusion is bad and inclusion is the opposite of exclusion, then inclusion is good.” That’s rather like saying “a surcharge for credit cards is bad but a discount for cash is good.” It isn’t that surcharge is bad so discount is good, but rather it is the delta between the two prices that is important. When we insist someone alter their identity to use our software it isn’t whether we do it for exclusion or inclusion that matters, but rather it is the fact of requiring it at all.
There’s a joke going around the internet about the importance of picking the right name for a child’s first pet. The name should be eight characters, mixed case, contain at least one digit, etc. Although this is intended as humor, the notion that software restrictions would influence names rings true. In a world where online reputation matters, being invisible in the company directory, social media or Internet search engines is a handicap. If you had a newborn, would you give them a name with special characters, multiple words or punctuation characters in it if you could help it? Despite the ability to create complex computer models for tough problems like weather and protein folding, we barely scratch the surface on preserving human names in software and instead choose to shape them over time into one-dimensional machine-readable attributes of a person-object in a database.
This type of problem is why I named my company IoPT Consulting. It’s about the Internet of People and Things, and it is why I joined the Respect Network, Customer Commons and the Personal Data Ecosystem Consortium. The principles of these organizations are aligned with my concern that Information Technology has largely forgotten that it serves people. If you believe as I do that it is time to reaffirm the humanity at the heart of Information technology, perhaps these organizations missions will resonate with you as well. Check them out. If you are a software engineer, please remember that the digital universe does not revolve around the software. The digital universe revolves around people and the software exists to serve them, not the other way around. Allow that perspective inform your designs and your users will thank you.
Tip o’ the hat to Johannes Ernst at Upon2020.com for the link to Patrick McKenzie’s blog post.