After reading the following:
- http://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/
- http://dublincore.org/documents/1998/02/03/name-representation/
- http://www.w3.org/International/questions/qa-personal-names#singlefield
- http://stackoverflow.com/questions/1122328/first-name-middle-name-last-name-why-not-full-name
I have decided that in future systems I will collect and store names as a single field with a high limit (probably 200), and if that’s all the system needs, I’m done. If the system really wants email templates with “Hi, Greg”, or badge names, or something where we need to use a subset of their name to refer to them properly and politely, we’ll ask them for that separately rather than trying to parse it (although parsing could be used to auto-fill a good guess for them).