the iPhone contacts app has a field called Birthday
, which asks for a birthdate. the difference is significant, because it requires a year. i have no statistical data about this, but i guess i am not alone by knowing quite a few people's birthdays without knowing their birthdates. when i first used the contacts app i could not believe that they made the year mandatory, but this is how it is. i am hesitant to make up a year just because my phone forces me to do so, i really don't like to be forced to create wrong information because of broken data models. often you have a hard time (or you simply forget) fixing that bogus data when you are migrating to a more well-designed environment.
my theory how such an obviously inappropriate data model could make it to production is that the birthday on the iPhone is what i call write-only data
. you can enter the data, but there is not a single useful way how you can use it. it does not show up in the calendar, you cannot set reminders, and you cannot search for dates in your contacts. so my guess is that nobody at apple ever really used that field, otherwise any real-world user would have quickly discovered that a contact manager needs a real birthday field and not a birthdate.
now that the iPhone supports 3rd party apps, this obvious gap in functionality can be filled by people actually using the iPhone. HappyDayz! is my favorite app (it's not free, and there are others) for doing this. but even a 3rd party app cannot fix the broken data model, so now that i can use the birthday data in my contacts and see upcoming birthdays, the question is what to do with those people for which i don't have the birthdate?
one option is to wait that one of the thousands of highly talented apple usability experts who are continually working on optimizing the user experience will actually start using the contacts app, and will say: hey, this really sucks. we should fix that.
the second option is that 3rd party apps recognize some (maybe even configurable) magic date
, so that i could use, let's say, 1899 as the birthday year for all the contacts where i do not know the birthdate. this way, the app could ignore the year, which is only there because there has to be one. in an ideal world, if the highly talented apple usability experts eventually fix the contacts data model and make the year optional, the 3rd party app could even be updated to automatically remove that magic year from all contacts' birthdays, so that i could finally have only correct data in my contacts.
i guess the second option is more realistic. so i am hoping that 3rd party developers update their apps with the magic date approach
to compensate for apple's broken data model. that would be the prime example for what engineers call a kludge.
I think the weirdness of the data model is partly due to having carried over the Contacts data model directly from Mac OS X. "Birthday", for example, is used to automatically construct a Birthdays calendar in iCal.app on OS X, which shows the birthdays of all your contacts and lets you interact with Birthday events. On sync with my iPhone, my expectation is that this data will survive intact, and that I can recover all of that data if I lose it on my Mac by re-syncing with my iPhone. Dropping the data or mutating it, such that information is lost, would be undesirable.
There's no excuse for forcing Year though. The same problem occurs on OS X's version of Contacts (Address Book.app), which not only birthdays must have years, but every generic "Date" field also requires a year. That's just bizarre.
Posted by: yliu | Tuesday, September 02, 2008 at 09:52
yliu: i wanted to include some text about how easy it would be to fix such a broken data model, and the fact that making mandatory things optional always is risky. i guess i simply forgot to write that part of the post. thanks for bringing that up!
the current model is sufficiently broken to warrant a fix. and aren't people complaining about the MacOS X contact model, since it has the same inappropriate design?
so here are the three ways of how to fix the model:
- if you simply update the model to make the year optional, applications assuming that there always is a year will break.
- it would be possible to add a "compatibility switch" to the birthday field, which by default would be set to "broken". this would hide birthdays without a year from old applications, acting as if the associated contact did not have a birthday at all. by setting it to "fixed", new application could access these yearless birthdays.
- there could be an additional field for "birthday" for yearless birthdays only, but that would probably be the most ugly of all solutions.
my guess is that no fix from apple can be expected anytime soon. but then again i am wondering how people are using this on MacOS X. is everybody happily entering fake years? or am i the only one who does not know the birthdates for all birthdays?
Posted by: dret | Tuesday, September 02, 2008 at 11:22
+1, this sucks.
I have chosen my fake years so that it is obvious they are fake. Something like 1111, or even 0001.
This seems more natural and more 'universal' that a single magic year. The rule could be: "if the age is more than 200 years, this must be wrong so the year is fake.
Posted by: Alex | Thursday, November 06, 2008 at 11:04
@Alex, It does make sense to have years that are over 200 years old. Even though the person may not be alive doesn't mean their b-day ceases to exist. What about if you have a great, great, great grandfather who was someone notable and you want to set his birthday? You get the point.
I don't think the model is broken, the point is, you put in their birth year and it will remind you how old they are turning that year when the date comes up. However, I do agree it shouldn't be mandatory to input a year for those of us who do not know it. This could be easily solved by adding "unknown" to the year drop-down field as the first choice.
Posted by: A Facebook User | Monday, September 05, 2011 at 09:45
Nobody mentioned the obvious reason why they want the year. That way they can collect additional personal information on people to use or sell. Age is a very important piece of demographic information that many companies and advertisers want. It bothers me that my personal information may thus be shared with Apple by friends or family and I won't even know it, along with my relationship to the person and other tidbits, but that's already happening in Facebook. I guess we're all screwed if we want to use this technology, since our "leaders" are asleep at the privacy switch.
Posted by: Cyber | Tuesday, January 01, 2013 at 09:44