Last article before I start my new job. This one's about human names. They're hard to handle well. Really hard. 
In the end, names are non-unique, non-canonical, changeable tags for people. Using them is fraught with issues, so design carefully.
https://iapp.org/news/a/talking-tech-handling-human-names/

In the end, names are non-unique, non-canonical, changeable tags for people. Using them is fraught with issues, so design carefully.
https://iapp.org/news/a/talking-tech-handling-human-names/
One point: the examples in this thread are all *standard* in at least one culture which commonly has 'net access. When I've had this conversation with folks, they tend to assume people who don't follow a Single Given Name/Single Last Name convention are outliers. Turns out, no.
First off, every assumption you have about names is wrong, starting with your assumption that everyone has one. It's particularly common for babies not to have one in many cultures. Even when it is, I've known folks to decide their chosen name doesn't fit the baby and start over.
Names also don't necessarily have a certain structure: people have one name, or get additional names from local features (like their village), or their family. Family names may come directly from the family names of one parent, both parents, or a parent's given name.
Names also are added from other places, like religious figures or extra words like "e" or "de" or "Jr." Those have meaning and you can't just randomly drop them.
You can’t assume that each person has one ultimately “correct” canonical name, even on a single document. For example, on a German passport, names with an umlaut or letter ß will be spelled two different ways (one transliterated to remove those features).
Someone’s legal name may not match the name they use for an extended period of time; if your system needs both (e.g., for tax vs display purposes), how will you ensure the right name is used for the right purpose?
Names also change. People get married, people come out as transgender, people get their name upon graduating from childhood, and people change their names for all sorts of reasons that aren’t tied to major life events. Some of those old names should *not* pop up again.
How are you handling names across different systems? It is exceedingly common for names that are entered separately across multiple systems not to match, especially if they are typed in by someone other than the person in question, like in a medical or government office.
Most names are not representable in ASCII. Many names are not even representable in Unicode (though that's the best we've got)! (for example, certain names in Chinese and Japanese use old-style characters that aren’t represented in Unicode)
Then once you have a name in a system, what are you going to do with it? If you want to use it to identify someone, it’s unlikely to be sufficient. Names are not unique. I used to work with four different people at Google with the exact same first and last names.
Three family names cover more than half of people from South Korea. Several hundred thousand people are named ĺĽ çŽ® (Zhang Wei) ... and I had to think about all of this and more because @humuinc wanted to address our users in a polite, friendly way. Other uses are harder.
In the end, names are non-unique, non-canonical, changeable tags for people. Using them is fraught with issues, so design carefully.
The W3C has some good design recommendations: https://www.w3.org/International/questions/qa-personal-names
@patio11 has a good starting checklist of wrong things: https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/
@patio11 has a good starting checklist of wrong things: https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/
A particularly good stress test for the changing-names part of your system is to think about someone who is coming out as trans. This often takes a while and not everyone will know, so who can see the name is important.
The old name may be legally still their name (because paperwork can require literally years or more) but is considered their "deadname" and should *never* pop up outside of situations which strictly require the legal name.
Other folks use name changing flows as well, but trans folks gives the best workout of the system. Other cases include marriages and divorces, changing one's name to get away from abusive family (spouse, parents, or otherwise), and a variety of religious reasons.
Also: even if you have a product tailored for a narrow area, don't assume that the name conventions are universal. Even in countries where name structure is legally controlled (e.g. Iceland) there are immigrants who do not have that structure. Exceptional people are still people.