The most common way of user interaction in the web is using a form. It is used (and sometimes misused) in multiple ways. You use them to collect information from the user. For example their names. But how exactly do you ask them for their names?
We live in a global world. Let's take me as an example. I am a Tamil guy who was born in Germany, now living in Belgium writing a blog post in English. And I'm not the only one. So when we ask for our users' names we should keep multiple cultures and thus names in mind.
A lot of developers tend to just separate names into first names and last names because you can search for each of them easier when they are separated. If you talk to the marketing department they will mostly also prefer separated names. But is it really the way to go? It isn't, at least not from the user experience perspective.
Let's take myself as an example again. My full name is Sachchithananthan Rathes. But does that automatically make Sachchithananthan my first name and Rathes my last name? No. My first name is actually Rathes.
Additionally, Sachchithananthan doesn't automatically become my last name. It is just the name of my father. His name is Rasiah Sachchithananthan, in which Rasiah is the name of my grandfather. As you see, in our culture we mostly use the patronymics (and sometimes also matronymics). And we even put our father's name in front of our own.
Also, if we want to talk to someone in a polite way, we don't use the father's name. Calling me Mr. Sachchithananthan is just weird, Mr. Rathes is not perfect either, but way better.
There are other cultures such as the Malaysian or Indonesian that the same concept. In Europe, you have the same. The Icelandic people don't have last names either. Björk Guðmundsdóttir is just the first name Björk and the fathers name Guðmund with the suffix -sdóttir which means daughter of. They also don't feel comfortable when you start calling them Mrs. Guðmundsdóttir (Mrs. daughter of Guðmund)
There are other cultures — such as Spanish speaking cultures — that do not only have one last name but two. María-Jose Carreño Quiñones might be the daughter of Antonio Carreño Rodríguez and María Quiñones Marqués and you would direct her as Señora Carreño, not Señora Quiñones.
In Brazil, you even have more than two last names, taken from multiple generations. How would you direct José Paulo Bezerra Maciel Júnior?
During my time in Germany, I met someone whose first name was Anna Lena. But she always felt uncomfortable when somebody called her will the full first name. She wanted to be directed with the second part, just as Lena.
As you see, different cultures and different people can have different names. Do you want to force them all to choose a first name and a last name just for the sake of your database columns?
But how would you ask for your users' names? The first thing you need to answer yourself: Do you actually need the name? In the time of GDPR and the awarenesses of data protection, spend some time thinking about if you really need the name of your user. To make the user signing up for your newsletter, you only need an email address, to make them covert to your application, an email address or a mobile number is enough.
Only for really official things like payments, you have to ask for names and there you can just take the same approach as the banking industry does. You won't hurt the user at that point because the banks already did.
In your application, it is perfectly fine to ask the user on how they want to be directed. Ask for a display name. They can then choose themselves if they prefer the polite way, or if just their first name is fine.
And for invoices and the less personal situations just ask them for their full names. It doesn't matter that you have their first name and last names there since you are going to combine them anyway.
If you still need to ask for a first name and a last name, make sure that you use the correct terms. Instead of just asking for first-/lastnames to choose something like "family name" and "given name".
Also, prefer using the term "birth name" instead of "maiden name" since it's just not always the case that women take over their husbands' name.
Remember that names do not only contain letters, but also hyphens, spaces, and other special characters. It is always possible that a name only consists of one letter and at the same time a name can also have more than just 12 characters. And always make sure that you indicate what you expect. Nothing is worse than failing in submitting a form because your own name was not accepted.
As you see names are not just names. If you want to provide a user-oriented and customer-centric product, you definitely need to consider how inclusive you are and inclusivity already starts with "simple" aspects like a name.
And this blog post did not even cover all different possibilities of names (eg. in South India, the name also contains the name of the village, I think that was common in the Western world as well once upon a time).