Ask HN: Full name vs. first/middle/last name?

2 points by moomoo11 ↗ HN
For my B2B SaaS I'm wondering if I should do full name or first/middle/last. I currently do first/middle/last.

I've seen some B2B software that will do full name, but it leads to horrible user experience.

For example, at $previousJob, I remember someone put in their full name (not their real name btw) as "S. Ryan Jackson" and when they send out emails it reads as "S. wants to collaborate with you" or "S. has a document for your review" which is honestly useless. They basically do fullName split and grab the first part. And I guess this particular company thought that putting in "S. Ryan Jackson wants to collaborate" is too much?

OTOH, I recognize that people around the world have different name conventions.

Here's my take - since I'm primarily going after English/Spanish speaking and Westernized audiences (US/CA mainly, and MX/S.America, UK, India, Aus) there's probably no problem with having first/middle/last. If there are employees there who have edge case names in this paradigm, they can try their best to conform to this standard.

I've worked at California based tech companies with global reach, and I've personally never met someone who had a different name standard that wasn't met by the first/middle/last convention.

It’s important for my software to get names right because it sends out emails and messages on the users behalf.

If I do expand into primarily non-standard naming convention countries, I might update my data models and app UX accordingly then.

Thoughts?

18 comments

[ 1.4 ms ] story [ 50.4 ms ] thread
My thought is separate out into separate fields because you'll need to later split things apart anyway (like you provided in your example).

To me the bigger question is first/middle/last or given/middle/family.

I now lean back toward first/middle/last as it gives the user the ability to control how their name is represented as they can chose which name goes in first and which in last etc. This seems to best handle Asian name formats, which need to be taken into account because there are plenty of Asians in Western countries now.

Thank you, exactly. I know names are important, but I don't want to bikeshed on this for longer than I need to. I think I'll stick to my current method.

I'm glad I asked, and got some nice feedback that I can consider for later.

"It’s important for my software to get names right because it sends out emails and messages on the users behalf."

This is the critical part your requirement, since it's important to get it right for emails then Full Name would be the correct option. If you needed the name for business or legal reasons then you'd want to go the other way.

Right. But full name gives the issue I just mentioned above.

If someone's name is super long "Christopher Alexander Worthington" and I store that as full name.

Or someone enters "S. Smith" as the full name.

I could either put the whole name in emails "Christopher Alexander Worthington requests signature" or "S. Smith requests signature".

But in cases where I just want first name, I have to "guess" and hope that split [0] display makes sense.

"S. is inviting you to ..."

I feel like I'm better off sticking to first/middle/last and having people conform to that, given the limitations.

If I need to do invoicing I can just construct the name. For less formal things, I can just pick the first name which is required anyway (and last name).

An LLM could sort those issues out, obv. don't do string.splice[0]. First/Middle/Last is common enough though.
What about a field like “I go by…” or “Preferred Name”?

You could also have some examples of how their entry will be used which follow your currently defined business logic, so

“Full Name:” S. Smith

Example: S. shared this with you

S. wants to be your friend

Let the users get immediate feedback about their choice

I use my middle name, and I get "Dear S." mail. My father has no middle name. My mother has three middle names, and her last name is two words.

See "Falsehoods Programmers Believe About Names": https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-...

So after reading that, and considering even the author says there's probably no system where names are handled right, then I'll just stick to first/middle/last.

If I get customers in the future where enough members have different names, I can deal with it later. Considering 95% or more of my users probably will not have this issue, I think I'll stick to what I have right now. Since my use case revolves around getting names right, I will stick to the country's system. For example, canada also uses first/middle/last.

Thank you! That was a interesting article.

What I consider the important takeaway of the article is that whatever system you use (aside from a freeform field) won't cover all cases and so the sanity-checking you perform on the names has to be very lenient.

For instance, if you go first/middle/last, you should accept names that have empty strings for any of those components.

Falsehoods Programmers Believe About Names

https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-...

> I've worked at California based tech companies with global reach, and I've personally never met someone who had a different name standard that wasn't met by the first/middle/last convention.

More likely you’ve only met people who Anglicized their name to conform to American expectations, forms, and web sites. Do you really think Chinese parents name their kids Sam and Emily?

>Do you really think Chinese parents name their kids Sam and Emily?

I feel like he might.

My wife has no middle name. Not a thing in her culture.

Many East Asian names have the family name first, given name last. Hard to overlook such a large percentage of global population, but that happens with slim anecdotal evidence.

Bro I'm an immigrant myself. In the US and Canada they legally use first/middle/last name.

I'm glad I asked but seems like everyone here is more concerned with making bad faith assumptions and leaving the same link over and over (which even mentions it is impossible to get names right - aka just do what works for 99% and move on)

If you really want to get names right, you'll provide the ability to configure the name used in each context, while perhaps providing an option to do one or more standard conventions (e.g., first/middle/last) and derive uses automatically from that.

But it's not clear to me what your real priorities are: these lines imply quite different priorities:

> If there are employees there who have edge case names in this paradigm, they can try their best to conform to this standard. [...] I've personally never met someone who had a different name standard that wasn't met by the first/middle/last convention

> It’s important for my software to get names right because it sends out emails and messages on the users behalf.

>For example, at $previousJob, I remember someone put in their full name (not their real name btw) as "S. Ryan Jackson" and when they send out emails it reads as "S. wants to collaborate with you" or "S. has a document for your review" which is honestly useless.

Whatever system they use should have a provision for a 'preferred name', so their 'legal' name could be Samual Ryan Jackson, but their preferred name would show up as Ryan or Ryan Jackson. This isn't rocket science, it's handled correctly by a lot of companies.

Also, you should read https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-...

> someone put in their full name (not their real name btw) as "S. Ryan Jackson" and when they send out emails it reads as "S. wants to collaborate with you"

That’s on you, if you’re asking for the full name, use the full name, don’t try to parse it

There’s nothing wrong with "S. Ryan Jackson wants to collaborate with you"

It was a popular task management software that we were using. I'm sure you might have used it as well. It only has option for Full Name, and doesn't ask for preferred name or whatever. Billion dollar company btw.

It was really annoying how it would just send S. has invited you or sent updates on stuff with S. updated. It was useless lol