“Falsehoods Programmers Believe” is a collection compiled by Kevin Deldycke at Awesome Falsehood. Falsehoods Programmers Believe are misconceptions or assumptions than can negatively impact programming decisions and our codebase. There are falsehoods in many categories including human identity, shopping, music, date and time, and more.
The initial blog post that started it all is titled “Falsehoods Programmers Believe About Names“ by Patrick McKenzie. In the post McKenzie says, “Anything someone tells you is their name is — by definition — an appropriate identifier for them.”
In the classic How to Win Friends and Influence People Dale Carnegie says, “a person’s name is, to that person, the sweetest and most important sound in any language.”
However, the systems we design as programmers often fail to acknowledge this fundamental aspect of a person’s identity.
John Graham-Cumming’s blog post “Your last name contains invalid characters” describes his personal experience and frustration with how web forms handle his hyphenated last name. The hyphen in his last name is often treated by many web forms as invalid input.
He says, “Does the web site have any idea how rude it is to claim that my last name contains invalid characters? Clearly not. What they actually meant is: our web site will not accept that hyphen in your last name. But do they say that? No, of course not. They decide to shove in my face the claim that there’s something wrong with my name.”
Additionally, some web forms will accept the hyphen in his name but have rules about how to deal with what comes after the hyphen. Graham-Cumming says, “Yahoo oddly believes that I don’t know how to type my own name and decides to lowercase the C in Cumming. It’s willing to accept the hyphen but not that I know who I am.”
Graham Cumming’s experiences are just one example of how our own preconceptions can fail in the wild, and additionally add insult to injury with “suggestions” for customers who do not fit into our preconceived mold.
Graham-Cumming continues, “There’s nothing wrong with my name […] What is wrong is the way this is being handled. If the system can’t cope with non-letters and spaces it needs to say that. […] So, form designers: stop blaming the user for your inadequacies.”
Christopher Null writes in WIRED about his experience with web forms due to his last name. As programmers likely know, the word null is a reserved keyword that in some languages is used to indicate that a data value does not exist.
For Null, entering his last name into a web form is often invalid - the form will prompt him to reenter a last name, with the error message that the last name cannot be left blank. For these cases, Null has come up with a workaround - he amends his last name to use it in combination with a middle name, or adds a period at the end, i.e. “Null.”
Null also mentions that he frequently receives letters in the mail with his last name omitted, or addressed to simply “Mr.”
While the Null case may be a less egregious oversight from a cultural perspective, Christopher Null’s plight highlights yet another programmatic oversight that consequently rejects of one of the most fundamental aspects of a person’s identity.
As programmers, in our quest to prevent bad data from entering our database, we can often end up making poor decisions or overlooking realities that result in exclusion of individuals, whole groups, or at the very least end up causing frustration for customers.
The potential for these blind spots is just one business case for why diversity in the workplace is so important. With a more diverse team comes a variety of background and experience, and consequently less risk for potential blindspots and errors.
Awesome Falsehood, Kevin Deldycke
Falsehoods Programmers Believe About Names, Patrick McKenzie
“Your last name contains invalid characters”, John Graham-Cumming
“Hello, I’m Mr. Null. My Name Makes Me Invisible to Computers”, Christopher Null