Why person administration is not a trivial task
Like I have said: I design websites. Not commercially, because the rules change - and not in your favour - when you have a paying customer. My last website is for my parents: nimble. It is the hardest, most complex site or thing I have created thusfar, because of (among others) the following example: person administration.
When you have an administration which manages people's data, you come across a "few" problems: 1. people move, 2. people marry and 3. people make typo's a lot. When your data is dependent on an external source, it gets ugly. How do you recognize whether or not two people are the same so you can update their data? Name? No! Because of problem number 3: they might have corrected a previous typo (or created a new one). Problem 2 also applies: women take the name of their husband (or divorce and retake their maiden name). In agility, this happens a lot.
So compare the names and accept a certain degree of error. This could work, and actually it does, but tweaking it is quite the problem. And you can never be certain without human intervention. If someone moves, changes his/her name and correct a rather large typo in their first name, you are screwed anyway.
Nimble automatically detects possibilities by putting people with the same surname or the same firstname, the same place or the same zipcode in a list and checking everyone's full name, surname and firstname. Differences are rated by replacements, additions and removals and if it gets enough "points", it is presented to the administrator. If the score is high enough (almost perfect) and has only 1 option, it selects it automatically. The human operator chooses between options or decides to create a new record.
It works, but I think some hairs turned gray because of the headaches designing this.