by Michael S. Kaplan, published on 2006/12/26 03:37 -05:00, original URI: http://blogs.msdn.com/b/michkap/archive/2006/12/26/1364585.aspx
In Open it all up, get out of the way, and then what happens?, I talked about the challenges that my team faces as we add features that we can't always get our clients who use our functionality to pick up.
As serious as that problem may be (and cearly I think it is serious if I am willing to try and push readers to push applications for the functionality they would like to see picked up!), this post is not about that issue at all.
Instead, this post is going to give another problem, that of features that our clients would like for us pick up, and if we can't do it on their timeline the sorts of things they sometimes do to keep from being blocked by our timetable.
Now clearly this is an area where I have delved before, pointing out efforts within teams like the Shell folks do when they really don't want to wait for us.
But today, the application I am going to pick ontalk about is Microsoft Outlook.
I am not going to talk about their time zone issues today, that will be for a future post. :-)
Today, since it is technically a holiday, I am going to talk about holiday support in Outlook.
To get to it, just choose Tools|Options within Outlook, which will give you this dialog:
Click on that Calendar Options... button, which will give you this dialog:
From there you will get to the way to add holidays to your calendar.
Now the next dialog is for the most part a list of locations based on list of locales (specifically not the locale's maligned little brother, the GEOID), though it is based on a static list that Outlook contains since they would have no knowledge of the holidays of locales not on their list and the holiday support is based on a closed list....
By default it will select the location that corresponds to your default user locale, whether it is English (United States) of French (France) or whatever:
If no location on its list corresponds then nothing is selected (I verified this with Outlook 2003 and Bosnian).
When I said for the most part a list of locations based on a list of locales there is a notable exception with a few entries bout religious holidays:
(And there are no other religious holiday categories listed in case you were curious.)
As a bit of social engineering, note there is no Select All button -- they clearly are not encouraging people to select all of the locations. Unluckily enough for them, I am both ornery and patient enough to select them all!
(And the text in the dialog talks about locations with no mention of religious holidays, for that matter!)
And here is whether the wheels start to fall off the wagon.
If you select Israel, you won't get several holidays that are actually treated as National holidays there -- to get them you have to choose that Jewish Religious Holidays option. That will get you these holidays, like the very top of my calendar last week in five-day view shows:
Though looking at this week shows a problem in the other direction:
Now I did choose to add Christian religious holidays along with everything else, so we are left with either a space limitation scrolling items off the page or else a decision to make Christmas not a Christian Religious Holiday since it is in so many other locales.
(I'll let you decide which is worse -- it is actually, in fact, the former though the fact that neither my own locale's nor the reigious holiday appears high enough up on the list also seems like a problem).
So if Christmas is a recognized holiday in so many countries and that is why it is there, then what about the recognized holidays in Irael? And of course there are the many other religioud holidays -- from Diwali and Ganesh Chaturthi to Magha Puja and Vesak to Pioneer Day to the various National Founding Days and so on, ad infinitum.
There are quite a few inconsistencies here!
Some of these inconsistencies may be based on feedbck or planned. But they all look weird and make the feature look like it has troubles....
Now I am not going to pick on the decisions here, the fact is that they are all a bunch of compromises intended to make up for the fact that this whole area is incredibly messy and there are a lot of problems trying to add such a feature. Making fun of their choices is taking cheap shots, and I'd rather underscore that no matter what options they tried to choose making them look foolish in one way or another based on the consequences of making choices in such a messy area.
We have actually had adding this support to NLS made previously, most recently by someone who is now an Architect, if that gives a hint at the level at which this request has being made.
But the honest truth is that the standard for what we do in the Win32 API (and specifically the NLS API) is and by necessity has to be higher than that of a user interface application. From our point of view, the generous offer of "all of the data that Outlook has been shipping for years" is not much of a motivator, especially since the collected data is tainted by what from our point of view would be very bad design were we to simply add it to each locale or to start jumping into the slippery slope of user religious preferences or to ignore our own location support despite the obvious connection.
Now would it be possible to do such a feature at the NLS API kind of level? I mean, pointing out that implementation is too flawed to adopt does not mean all implementations are flawed, right?
Well, maybe.
But this is not a feature that can be created in a vacuum; you might be able to convincingly argue (and some have, to me!) that the single biggest cause of this problem is our strong push to try to meet customer requirements not being matched by an equally strong push to try to get applications signed up at the same time.
So where is the guarantee that if we were to add such a feature that it would be useful an used by applications like Outlook, that now have to deal with the legacy issues attached to their existing implementation?
Holiday support in NLS is not oozing with opportunity to add the support for users to see like custom locales does -- I mean, there is no Holiday Options control panel applet like there is a Regional and Language Options.... and custom locales are indeed a festure requested of us quite directly, from our UI piece (RLO).
This post is a long-winded way of pointing out that the things we don't do yet are often so because they are simply not something that we are in a position to do yet. We may never be, or we might just be waiting for the compelling customer and application scenario to come along....
If it was going to happen as a feature, the clearest change that would have to be made would be a bit of combining, obviously -- there is no specific benefit to repeating the same holiday over and over again as is happening for Christmas, or even Boxing Day. The way that the mechanisms work in Outlook (a static process that will simply insert all the holidays for each chosen location element) is also not suited to a function, and thus even if there were an NLS "holiday" feature much of the actual processing would still belong elsewhere in the callers of such functionality.
This post brought to you by ᆒ (U+1192, a.k.a. HANGUL JUNGSEONG YU-YE)
# Blake Handler on 26 Dec 2006 9:53 AM:
Great tip -- but your timing is off! Where were you a couple of weeks ago! ha ha
referenced by