Browse in : |
All
> Topics
> Design
All > Journals > CVu > 322 Any of these categories - All of these categories |
Note: when you create a new publication type, the articles module will automatically use the templates user-display-[publicationtype].xt and user-summary-[publicationtype].xt. If those templates do not exist when you try to preview or display a new article, you'll get this warning :-) Please place your own templates in themes/yourtheme/modules/articles . The templates will get the extension .xt there.
Title: What Is Your Name?
Author: Bob Schmidt
Date: 03 May 2020 18:21:19 +01:00 or Sun, 03 May 2020 18:21:19 +01:00
Summary: Simon Sebright considers the importance of names as identification.
Body:
When requirements get to developers, there is inevitably decision making as to how to name your functions, parameters, members, variables, XML elements or attributes, etc. Often these things will head in the direction of what we would normally think of as a schema, i.e. if we were to be designing a database, what would we call the tables and columns.
Furthermore, how these things might appear in the UI in an online form, or on paper in a printed form also need consideration to be correct and as widely-applicable as possible.
With the example of personal names, I aim to show that this is far from obvious and straightforward, and developers as well as requirements people should occasionally take the time to think about it, look for established conventions, standards, etc.
That way, we avoid confusion, which leads to bugs, slower development, rework, etc.
Sadly, many code examples and snippets you will find online exhibit these problems, as they were probably thought up by people focussed on their own limited personal experience of the world.
So, what is your name?
As with many questions, it depends! If I were to be asked at a party, “Simon†would be my answer. In other settings, more formal, “Simon Sebright†or at school, all the boys were addressed by their surnames, so “Sebright, Sirâ€.
If I were filling out a form and there was just one field ‘Name:’, I would write ‘Simon Sebright’. In German culture, I would write ‘Sebright, Simon’ by default.
That brings us to the concept of a Full Name, i.e., that my name has parts and if you put these together in some way, you get something else, more complete. This is, however, complicated by the fact that I also have a ‘middle name’, so in some circumstances, my full name might include that, for example in identification documents or financial applications, etc.: Simon Xxxxx Sebright.
The parts of a name which make the whole
OK, so we have seen that there are some components to a name. What are they? How should we best name them? When I was growing up in England, although not religious myself, the ‘default’ religion is some form of Christianity, and I was actually christened. That points to the ‘Simon’ being my Christian Name, i.e. the Name with which I was christened. The ‘Sebright’ bit in this scheme is my Surname from the Latin sur meaning ‘super†or ‘above’.
If we want to remain religion-neutral, then we need to drop at least the Christian part, so we often see ‘First Name’ and ‘Last Name’ on a form. Then the idea of Middle Name(s) becomes easier, they just slot in between: Simon Xxxxx Sebright. How I write that in the German way, I’m not sure... maybe Sebright, Simon Xxxx.
Also, as an alternative for Christian name, we sometimes see forename.
Now we have the problem, that in many countries in the eastern world, often populous, this scheme has issues with the ordering. Consider the chess player Ding Liren, the snooker player Ding Junghui or illustrious leaders, Kim Jong-Un, Kim Jong-Il for example. The last two are father and son, so what is going on there?
Well, they write what we might call their Surname first. If a snooker commentator is saying “Trump†for Judd Trump, then they should say “Ding†for Ding Jung-Hui, likewise, if they say “Juddâ€, they should also say “Junghuiâ€. This seems to be lost on most commentators I have listened to. On a similar line, the Japanese Prime Minister recently opened a debate about how Japanese names should be represented in western culture, with the preference being how they do it themselves, surname first.
This leads us to the concept of Family Name and Given Name, saying that part of your name is inherited by default from your family and part of it is given to you by your parents choosing it. This now covers the typical western world and eastern world conventions.
Of course, one of them has to come first on a form, and which way round should reflect the majority of the users you anticipate.
Middle names can be addressed as ‘additional names’ or ‘other given names’, etc., more on that below.
Standards
One important point about all of this is, why bother trying to work all this out for yourselves? At best you arrive at the same solution as many others, at worst you make a mess internally and externally and/or give a bad impression to your users.
Also, if you wish to exchange your data with others or to provide some kind of programmatic interface (including http REST services, for example), you are much better off being standard-conforming. Less to explain and get wrong. You can simply reference the standard you chose.
To get around these issues, always seek to look for an established standard. In the case of names, you could start at schema.org. (they have a Person schema which includes names). [1]
Other types of name
Of course, there are other types of names and conventions, which would probably struggle to be contained in one generic schema (I suspect that these people have problems filling out online forms):
- Single names: Sting, Fish, Madonna. I suppose these would be given names (by themselves).
- Nicknames: These can be of single or multiple word form, but can’t sensibly be split, e.g. Marble Head, CB Bear, CeBes, Bonzo for me.
- Posh people: Duchess of Kent, The Queen, Melbury (short for Lord Melbury, see Faulty Towers, A Touch of Class [2]), Sir Elton, etc.
- People from somewhere: Leonardo da Vinci, etc.
- Iceland, where you inherit your family name from the first name of your parents with a son/daughter suffix, e.g. a parent called John would have a son called Peter Johnsson, a parent called Anna a daughter called Anita Annasdottir.
- Uniquely identifying people with similar names, e.g. for authors/composers of copyrighted works. For this, I found the International Standard Name Identifier (ISNI) [3]
- Probably many more...
Development with names
If you as a developer think you can parse a full name into parts, think again. Just consider Jamie Lee Curtis and Chris de Burgh. Handy in some circumstances for ease of entering data, but only if you give the user a chance to correct it manually.
Another interesting idea came from sitting next to a Dutch guy at the German SoCraTes conference a couple of years ago. He told us, it is common to sort names by the ‘main’ part of the family name, so the ‘van’ in Dick van Dyke would be ignored for sorting, instead the ‘Dyke’ part would be used. They get used to that in their own country, and miss it, when they end up always in a big lump together at the end of lists in other places. ☺
Usernames
Sort of an aside, these became popular when websites started becoming applications and required you create an account. I think the main point was to have a more friendly name visible rather than Member1234 or your email address.
However, I find that because of the seemingly random restrictions of format and allowed characters, this became a real pain, at least for me. Not only choosing a name became a pain, but many sites insisted on using this as part of the login, so if you can’t remember what you picked (due to restrictions), you constantly had to retrieve it via the “I forgot my f***ing username†link.
I would naturally choose ‘Simon Sebright’ as a username, where I am not concerned about my name being seen. However, some sites did not allow spaces, so Simon.Sebright. However, some sites do not allow punctuation, so simonsebright. I even encountered length restrictions where that was too long, so just Sebright for example. Also, some sites restrict your username to be unique across all users, then it’s just pot luck if you are the first John Smith to sign up...
That is a complete joke and I suspect that some of these restrictions were not in explicit requirements, rather developers used ‘common sense’ during the implementation. Please think!
I have no idea what most of my usernames are any more. Thankfully, most sensible sites also accept the email address of the account, which I don’t tend to forget. ☺
Middle names revisited
Thinking about middle names a bit further: We could consider the forename and middle names simply as Given Names, i.e. an ordered collection of strings, each of which is a given name. The ‘real’ forename is simply GivenNames.First()
, i.e. a property of the class holding the name information. Note that we can’t simply have one string with all these together, unless we devise a suitable separation, escaping mechanism. Run-of-the-mill names don’t normally include much punctuation, but best not to rule it out.
Conclusion
Think about what you call your elements in your designs, be it in the UI, in a programmatic interface, in your database tables, or even just in class members (remember with reflection, these often creep out into the wider world). Turn to established standards where you can.
Don’t place artificial constraints on what you think are normal names, be it format, characters, length, etc.
When doing user acceptance tests, if you create personas, include some with ‘weird’ names and unusual desired usernames, etc. Pretend to be Sting or Madonna for a day, or one of the Royals with loads of given names!
References
[1] schema.org Person: https://schema.org/Person
[2] A Touch of Class, Faulty Towers: https://en.wikipedia.org/wiki/A_Touch_of_Class_(Fawlty_Towers)
[3] ISNI: http://www.isni.org
has been in Software and Solution development for over 20 years, with a focus on code quality and good practice.
Notes:
More fields may be available via dynamicdata ..