The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

First name, middle name, last name.  Why not Full Name?

So the application I'm developing needs the names of attendees which will be a long list that will be added to over time and be searched.

What I wondering about is why there is the need for this 3 element break down.  Why not one text box with full name. Why is there the need for 3 names. Search? Should work ok with 1 field.

I am using outlook as my guide here but cannot understand why I can't use one text box for full name instead on 3.

Would appreciate any  pointers as to the benefits of 3 over 1 text box for a persons name.
searchName
Thursday, October 11, 2007
 
 
I've never seen it done with three fields. Some people have multiple middle names, what do you do then? I usually have a field for Forenames and a field for Surname. You might want to split them up for generated correspondence e.g. Dear John...
John Topley Send private email
Friday, October 12, 2007
 
 
Not to mention sorting, which is usually done in the manner lastname, firstname. Search is also easier -- if you need people who's last name is Morgan you're sure you won't get Morgan Freeman as well.
Berislav Lopac Send private email
Friday, October 12, 2007
 
 
I suugest you collect their name using one text box and then use some clever backend logic to populate a surname and a firstname field, for the reasons given already.

I think it is important to seperate the different needs of all the stakeholders, in this case the user of the system will thank-you for not having to muck around with multiple fields. The overhead may be some string manipulation or use of regular expressions. If needs be and if you offer people the feature to edit their name, you could put it back into 2 seperate text fields if you felt like it, but intially I would stick to one.

In this day and age it is a shame that more programmers don't take the time and make use of their talents to improve UI and useability of their systems. the research has certainly been done and is available on google!
Dave
Friday, October 12, 2007
 
 
"I suggest you collect their name using one text box and then use some clever backend logic to populate a surname and a firstname field, for the reasons given already."

I'd rather you didn't do that, actually. What if my name's Marvin Lee?
John Topley Send private email
Friday, October 12, 2007
 
 
“What if my name's Marvin Lee?”

-> forename “Marvin”, surname “Lee”. The program can tell because there’s a space in between.

Really, first word becomes the forename, last word becomes the surname, any words in the middle become middle names.

This breaks down slightly for people who have spaces in their surname (e.g. Simon Peyton Jones), but they’re rare. And it breaks badly for people whose surnames comes first (Vietnamese?) but asking them for their first and last names breaks as well.
DAH
Friday, October 12, 2007
 
 
You can't do this with "clever logic" - there are mutually exclusive rules - eg. my wife and I both have three names, separated by spaces, but while my "middle" name is a Christian name, hers is the first part of her surname, because she is Spanish and this is how things work there! (Although a lot of systems refuse to accept a space in the middle of a surname, so she sometimes has to hyphenate it, although this means that she possesses a subtlety different identity according to who she is talking to, which is a nightmare when people are trying to match her records up in the bank or whatever.)
Syd Send private email
Friday, October 12, 2007
 
 
> This breaks down slightly for people who have spaces in their surname (e.g. Simon Peyton Jones), but they’re rare.

Just to reiterate - no they are not "rare" - everyone with a Spanish passport has a space between their two surnames - this is a legal requirement - we tried to get a "single" name for our son, so that his English and Spanish passports matched, but were told it couldn't be done.
Syd Send private email
Friday, October 12, 2007
 
 
Our app deals with a bunch of government and financial industry entities and EVERYONE we deal with breaks names down into three elements. Multiple middle names are rare enough that nobody cares; even if we did, none of the parties that we interface with would accept it.

For an attendee-listing app, breaking down names might be overkill. But I might do it anyway. Otherwise you will get people entering a combination of "John Smith" and "Smith, John". On the other hand, it IS slightly less user friendly and might be overkill for some situations.
Greg Send private email
Friday, October 12, 2007
 
 
It would be extremely difficult, if not impossible, to parse the different parts of a person's name from a single field into seperate first/middle/last fiels as has been previously stated.  Any of the name parts could include a space (La Verne May Van Horn, e.g.)  The reverse, is of course, no problem.
LGC Send private email
Friday, October 12, 2007
 
 
How would you handle this?

My full name is Hector Jesus Sansores Quintanilla. Hector and Jesus are my forenames while Sansores and Quintanilla are my surnames. In spanish speaking countries we do not have the concept of middle name and everybody has two surnames.

By the way, Sansores is the first surname of my father and Quintanilla is the first surname of my mother. That is how surnames for the descendants are formed here.
hectorsq Send private email
Friday, October 12, 2007
 
 
Even First,middle, last does not work everywhere, many Arabs can write more than 10 names if asked ...

It goes something like this:
First name, Father's First Name,  Grandfather's First Name, Great Grandfather's First Name, ...., Family Section, Family Name, Tribe Name...
Totally Agreeing
Friday, October 12, 2007
 
 
From a pragmatic standpoint it *has* to be first, middle and last.
Watson
Friday, October 12, 2007
 
 
I don't care what the application is...if you're collecting peoples' names then you'll almost always be best served by collecting and storing the name in parts.

Even if you think "I'll never need to address someone just by their last name.", stop and think ahead. You might not need to right now, but you might in the future.

Breaking down a Name by First, Middle and Last will fit most situations. If you accept 255 characters in each part you are allowing a total of 765 characters for someone's full name. That's a lot.

So, the Arab could put 10 first names in the First Name box, Hector above could put 2 names in the First Name box and 2 in the Last Name box.... If you're internationalizing your application, make the labels match that of the culture you're targeting... Or if you just want to use a one-size-fits-all label use "First Name(s)" instead of "First Name" and so on...
Wayne Bloss Send private email
Friday, October 12, 2007
 
 
One box = bad idea.

Presuming you used that "clever logic" to guess surnames, how would you handle the following case:
The current president of the US, and his father, attend your conference.
Does your logic suddenly think that their surname is "Walker Bush" because one is George Walker Bush and the other is George Herbert Walker Bush? Did you lose one of the middle names and think they're the same person?

Another case:
Someone with no middle initial. I've seen an older FL  driving license of one co-worker with NMI on their license. Not "non maskable interrupt," it stood for "no middle initial."

At a previous employer, we had a number of people "in the database" who were English Peers. We had jump through hoops to try to wedge names like "Dame X Y" or "Baron M N CBE" into the system. When doing mail-merges, they'd have to be trapped out and manually processed (one was on the board of directors, so we got hammered by complaints elsewise).
Peter Send private email
Friday, October 12, 2007
 
 
Wow, I can't believe some of the crappy solutions people think are acceptable. Clearly, you need a table of names and name type flags. So, Jose Santa Maria Bush Fernadez would occupy five records;

Name=Jose, Type=First
Name=Santa, Type=First
Name=Maria, Type=Middle
Name=Bush, Type=Last
Name=Fernandez, Type=Last

I would recommend that all your input forms expose all five fields, and of course, all five fields should be mandatory.

Sure, this might be total overkill for 299,999,000 or so Americans, but you MIGHT need it someday for the other 1,000.
Greg Send private email
Friday, October 12, 2007
 
 
The last part of my name is "Jr."  Looks like that'd throw off many of the algorithms here...
KC Send private email
Friday, October 12, 2007
 
 
WDOD

What does Outlook do. I'm sure the Outlook team had to deal with this.

See what they did, do likewise.

Case closed.

Apple fans can wade in with how mail apps on the mac deal with this.
This is not difficult
Friday, October 12, 2007
 
 
When I was studying E-comm, I had to mock up a Web site.  One of the things that I did was to have family name, given name, and which one comes first.

Sincerely,

Gene Wirchenko
Gene Wirchenko Send private email
Friday, October 12, 2007
 
 
Names can be difficult to model properly, especially if you try to anyhow just shoehorn them into a simple western style 'first name/last name'.

Firstly there is the obvious difference where many cultures put the family name first. That is not really a problem when you have different fields, but makes it impractical to automatically extract names correctly from a single field. (And either way you can guarantee it that some of the names are going to be entered the wrong way round by users whatever you do!)

Its also not uncommon with Chinese names these days to have an English style name as well, which gets prepended on the front, so the family name ends up in the middle. Ie: Harry Lee Kuan Yew.
http://en.wikipedia.org/wiki/Chinese_name

Not everyone uses family names. For example many cultures use patronyms (eg the bin|binte in Arabic and Malay style names).
http://en.wikipedia.org/wiki/Malaysian_name

And that is just scratching the surface of the complexity - Arabic names have lots of other meaningful bits and pieces that make them distinctly more complex than western style names.
http://en.wikipedia.org/wiki/Arabic_name

In some places, Indonesia for instance,  it is not uncommon for people only have one name ('Surkano' for instance) or to use patronymic names (eg: 'Megawati Surkanoputri') or to have several names, none of which is a family name (eg: 'Susilo Bambang Yudhoyono'. (Wikipedia notes that Indonesian telephone directories names are listed under first/given names).
http://en.wikipedia.org/wiki/Indonesian_names

Doubtless there are a million other possibilities too that I haven't even touched on.

I think at this point most of us just give in and go with the more practical approach - ie: copy what everyone else uses in their software and just use first/middle/last already (and reality be damned!)

Actually, for a list of attendees I think a single field might is not such a bad idea at all. Just make sure the search can find partial matches so you can look for fragments of the name.
AH
Saturday, October 13, 2007
 
 
All this discussion about potential requirements is not getting to the root of the underlying requirements.  Everyone here is getting distracted with modelling the world, instead of modelling the problem domain.

Sure, people have a lot of names and variation on their semantics.  But that may not be important if all you need to do is generate a name tag and a shipment.  Just let the users fill that in the way they want it (even if they have to do it twice) and you're done.

Is it only to print a name tag? - then ask how they want their name to appear on the name tag.

Is it for payment?  That's always going to be the name on the card.

Is it for your reporting?  If so, what are the requirements for your reports?

Does it need to match to some other dataset which already exists and will need to be cross-checked against?

You can do clever stuff to default the fields, but if the data is going to be used differently, ultimately you may have to let them modify each usage.
Cade Roux Send private email
Sunday, October 14, 2007
 
 
Here when we see 'Middle name' in a form, we just wonder what the interface designer had in mind.
Pakter
Sunday, October 14, 2007
 
 
UI-wise it's also a nightmare. When a user sees a single box for entering a name, she thinks: what format do I use? Should I use "last, first", "first last", or "first, last"?  Should I use my middle name? Should I include my maiden name? Should I use a prefix? Does this site accept Ms or does it expect Miss or Mrs?

...and you've lost, because you've made her think about something so simple as entering her name.

I went down this path once and even tried to convince our usability guy that it would work. I was completely wrong, and some simple usability testing showed it.
Chris Winters Send private email
Sunday, October 14, 2007
 
 
Curious, what kind of users do you have that they question how to enter their own name? Maybe it's limited exposure on my part, but all of the users I've had at 3 jobs would assume that if they were asked to enter their name, that it would be First (possibly middle(s)) Last. I'd love to know who you're serving that they actually think about the order. I mean no offense, but my experience is that users/people don't care about what you expected, they just type what comes to mind.
Tim Send private email
Monday, October 15, 2007
 
 
Well over here its not uncommon to be asked for it in different ways on account of the multitude of cultural differences and one is never sure whether A or B is the one who should adjust in a specific case.

Most government forms and websites, and official stuff - like bank accounts expect it in the same format as what is on our IC - ie: surname first. Where its not specified explicitly which format to use then I just put it that way already.

A single full name field is not at all uncommon though - I suspect as its mainly just used for addressing, and searching tends to be based on IC number or address as half the country shares something like only 3 surnames anyway - and it would probably be even less except that over time multiple forms of romanising the same name  (most of which involve a bag full of scrabble letters I suspect) have forked new family names (or at least the English versions thereof) - which means some users even get to choose _which_ name to enter as well as the order they enter it on less official forms.

So forms that want a fullname tend not to specify which format to use as it doesn't matter all that much.

Of course the person reading the form _always_ manage to get it wrong no matter which way I fill it in, and will insist on addressing me as 'Mr A' instead of 'Mr H'. This appears to be one of those laws of nature - much like toast always landing butter side down, and I long ago gave up trying to correct them.
AH
Monday, October 15, 2007
 
 
@Tim: I think users are trained by the awful responses (stacktraces, database constraint violation messages, etc.)  of so many crappy systems out there that they're wary of entering data however they wish. And sometimes they don't even think about what they should be communicating -- if I'm entering data into most systems I'll use 'Chris', but for others I might need 'Christopher'. What if my nickname were (ugh) 'Kit' instead of 'Chris', when is that appropriate for entry?

Names are trickier than most because you enter your name different ways depending on the context, and sometimes even different ways in the same context sometimes it's last name, then first and middle initial, sometimes it's first name, then middle initial and last name. Sometimes the middle initial is skipped. Sometimes there's a separate entry for maiden or former name.

If you haven't done so, see if you can watch your users try to use your system. It's incredibly illuminating.
Chris Winters Send private email
Monday, October 15, 2007
 
 
You can't win with this.  If you have a lot of Spanish last name users who have multiple last names, some will enter one last name, some will enter two. 

Some of the Brazilians will enter two last names and a made up third name. 

When asked, they will all forget which format they signed up in and will give you one name when they signed up with two or will give you two when they signed up with one.

Users from India and other Arabic countries will have similar problems.

Just use the First Middle Last, allow a lot of room in each field, and accept the fact that there will be certain people that will always have problems.
Zach M. Send private email
Monday, October 15, 2007
 
 
A dentist that I went to had a new patient form that asked how I preferred to be addressed.  I liked that.  My full first name is Eugene.  If you address as "Eugene", I will correct you.  Please use "Gene".  "Eugene" is legally my first name, but I do not trigger on it as my name.  (You probably can easily hear your name even if you are not paying that much attention.  I do react that way to "Gene".  I do not react that way to "Eugene".)

Albert Brian Cameron may be known informally as "Albert" or "Al", but he might also be known as "Brian".  In some areas, my example person would be known as "A. Brian Cameron" and would sign his name that way.

Sincerely,

Gene Wirchenko
Gene Wirchenko Send private email
Monday, October 15, 2007
 
 
I tend to use systems that ask for a full name, and what they'd like to be called. Solves those pesky cultural issues PDQ.
Chris Doggett
Tuesday, October 16, 2007
 
 
>> A dentist that I went to had a new patient form that asked how I preferred to be addressed.  I liked that.  My full first name is Eugene.  If you address as "Eugene", I will correct you.  Please use "Gene". <<

Same with day-care! They need to know that one of my sons is named "Roberto", but he'll also correct you if you don't call him "Robbie". (I bet your mum called you "Eugene" when you were bad, right?).

I like this method though, and it's at least similar to Outlook (Nickname). I agree with the "don't invent if you can copy" method.

Wednesday, October 17, 2007
 
 
I think your user interface should explain why you are collecting the data next to where you ask for the data.

For example, if you're collecting credit card information, you should ask for "Name as it appears on the card". Everyone knows what their name is on their credit card so they'll fill in the correct details.

If you're just asking for an informal nickname so that you can have "Welcome back $name", just ask for a nickname
Rory
Wednesday, October 17, 2007
 
 
This can get arbitrarily complicated, depending on how precise you want to be:

Besides the Spanish surnames with a space, there are hyphenated last names, and not just be marriage.

English surnames with a space.

Welsh surnames with lowercase leading characters: ffolkes

"First names" with spaces or hyphens or internal capitals, like MarySue.

Many people outside the West have no last name, like many Indonesians. I have met European descent Americans who have changed their name to have a single name, as well. It is permitted in some states. To get a phone listing you have to demonstrate that you really have only one name. I also knew an Indonesian guy who gave up and used his name as both his first and last name, like James James. Just one more silly thing those Americans required.

Then there are family name first languages, including not only Chinese but Hungarian.

It's just a big subject to understand completely. Glad I don't have to deal with it at my current job.
frustrated
Wednesday, October 17, 2007
 
 
Icelanders user patronymics too, and they also have their phone books in order by first name.

Bjork Gudmundsdottir, e.g.
frustrated
Wednesday, October 17, 2007
 
 
>> A dentist that I went to had a new patient form that asked how I preferred to be addressed.  I liked that.  My full first name is Eugene.  If you address as "Eugene", I will correct you.  Please use "Gene". <<

'Same with day-care! They need to know that one of my sons is named "Roberto", but he'll also correct you if you don't call him "Robbie". (I bet your mum called you "Eugene" when you were bad, right?).'

I see your drift, but no, it was always "Gene".  I never got the habit of "Eugene".

It is usually a personal preferences issue, so I leave it to personal preference unless the name is offensive.  (When I was in China, one student I dealt with had chosen a first name of "Hitler", and another chose "Handsome".  I would not use either.)

Sincerely,

Gene Wirchenko
Gene Wirchenko Send private email
Wednesday, October 17, 2007
 
 
>>manage to get it wrong no matter which way I fill it in, and will insist on addressing me as 'Mr A' instead of 'Mr H'.<<

And as if to prove the point, today I did this myself to someone. Oops!
AH
Thursday, October 18, 2007
 
 
Even with "standard" first/middle/last you can have problems. My full name is Lewis Davidson Corry. All three names are surnames, if you search my family tree.

I go by my middle name "Davidson". (So do my brothers Pat -- William Patrick -- and Stu -- John Stuart. Jim -- James Clark -- is the odd man out, but he's a lefty, and you know how they are...). So I have to deal with all the folks who think my first name must be "Corry" since "Davidson" is OBVIOUSLY a last name. Not to mention the hail-fellow-well-met who insists on calling me "Lou" (not only do I not know what name I'm supposed to use, apparently, I don't know how to spell my own name either.)

My only consolation used to be that all my sins would be counted against "Corey Davidson". At least, it was until I actually met the guy. Nice fellow. Doesn't deserve the burden of my kharma. (Even if he is a marketing guy.)

I offer this not (merely) to exercise a favorite rant, but to point out that insisting on ANY pattern is going to lose some folks whose names won't fit the pattern, and who decline to hack up an alias they can shoehorn in.

And to urge my fellow programmers not to make the Bureaucrats' Mistake: insisting that, if the customer's name won't fit the form they've designed, that's the CUSTOMER's fault.
Davidson Corry Send private email
Thursday, October 18, 2007
 
 
Davidson Corry: "I offer this not (merely) to exercise a favorite rant, but to point out that insisting on ANY pattern is going to lose some folks whose names won't fit the pattern, and who decline to hack up an alias they can shoehorn in."

Quite.

And to urge my fellow programmers not to make the Bureaucrats' Mistake: insisting that, if the customer's name won't fit the form they've designed, that's the CUSTOMER's fault."

Of course it is not the customer's fault.  It is the customer's parents' fault. <BEG>

One of my computing science instructors uses his name as an example of how inadequate software testing can be.  His family name is O'Neil.  The apostrophe frequently causes trouble.

Sincerely,

Gene Wirchenko
Gene Wirchenko Send private email
Thursday, October 18, 2007
 
 
I'm surprised nobody pointed out this xkcd yet :-)

http://xkcd.com/327/
AH
Saturday, October 20, 2007
 
 
Little Bobby Tables -- priceless! One of the rare occasions when I actually LOL'd.
Berislav Lopac Send private email
Tuesday, October 23, 2007
 
 
"Little Bobby Tables -- priceless! One of the rare occasions when I actually LOL'd."

That was a good one.

When we are being informal, perhaps we could just drop the "tables".

Sincerely,

Gene Wirchenko
Gene Wirchenko Send private email
Tuesday, October 23, 2007
 
 
In this case, it would better to write a generalised program or function to resolve the names properly based on al the inputs given by the posters above. For a start, I would think a Name Type is also required as in :-

Alessandro, First
Mayores, First
Hectar, Last
Olazabal, Last

But you would probably also require a Nationality field and probably a How Do You Want Your Name to be resolved field.

Its not just sufficient to try to solve the problem quickly with a solve-for-the-given-domain excuse because you would leave some cases with complex names without a clue as how to input into the system.

Create a good, generalised name resolution function for Arabs, Chinese, Caucasians, whatever (all cases) and reuse it in all your future data entry programs...
Ezani Send private email
Thursday, October 25, 2007
 
 
Rule number one: if the user *can* do something, they *will* do something.

If you provide a free-form input field, most users will do the same thing, but some will not.  Eventually, someone will insist on entering their name in some oddball (to you ) way.

This is fine, provided you can handle it.  Just using the field to print a nametag?  Fine.  Expecting to parse out first, middle, last, patronym, title, etc.?  I respectfully suggest that you (the theoretical "you", not *you*) consider an alternate approach.
Rich Fletcher Send private email
Monday, October 29, 2007
 
 

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
 
Powered by FogBugz