Scheduled Task Slippage and Breakage
Despite a few famous delays, I think there is a good case to be made to say that Microsoft generally ships their software in a timely manner. The business of releasing software is surprisingly difficult and, having gone through it many times myself, I have some respect for Microsoft's ability to meet their release schedules.
However, the old truism "on time, bug-free, full-featured, pick any two" still applies. Something's got to give. And this is, IMO, why a lot of Microsoft products feel kindof half-arsed. I've picked on various UI inconsistencies before, but there are also security problems, behavioral oddities, and other quirks in Microsoft products which are easily traceable to the realities of shipping software.
Corner-cutting like this is perfectly understandable and forgivable. But it is disappointing and frustrating when these corners remain cut, even in subsequent revisions of the software. Instead Microsoft forges ahead and introduces more and more half-arsery in the eternal quest for features, but in my subjective judgement rarely (if ever) fixes past breakages.
As an example, let me pick a Windows feature that is coincidentally related to timing and schedules. I must disclaim first that some of the details here are based on some admittedly hazy recollection of Windows operating system history. Please excuse any inaccuracy.
Windows NT 4.0 had a feature which would launch programs automatically at a scheduled time. It was called scheduled tasks has survived since then in more-or-less the same form with only marginal improvements in Windows 2000. It is the same in Windows XP and Windows Server 2003. I believe it was also available in Windows 98 . Here is a screenshot of the XP interface:
I have been using this feature since its release and have always found it fantastically difficult to configure. What the task would do if there was no desktop for user interaction? Where output would be sent? How do you invoke it ahead of schedule for testing purposes? How would errors be reported? It was up to the poor user to answer all of these questions, Windows provides little help.
[Incidentally, Microsoft's half-arsery is someone else's opportunity, which is why FireDaemon and various ports of cron have flourished.]
Of the above issues, the question of error notification is the one that bothers the most. If you are going to trust the operating system to run the task for you, you need a way to be notified if the task could not be run for any reason. Maybe the Windows engineers realised this, because they provided (in Windows 2000 at least) a feature called "Notify me of missed tasks". This is still accessible from the Advanced menu that appears in addition to the regular explorer menus when you open the Scheduled Tasks control panel (visible in the screenshot above).
There are at least two minor problems with the "notify me of missed tasks" feature: it requires administrator access to activate and actually recieve the notifications; also it is off by default. I was initially puzzled by these minor flaws until I realised the major, fatal, flaw in the "notify me of missed tasks" feature: It Does Not Mean What You Think It Means.
Notify Me of Missed Tasks. Contrary to its name, the Notify Me of Missed Tasks option notifies you only of Task Scheduler's failure, not of individual missed tasks. Tasks that fail to run because of corrupt or missing executables don't kick off a notification.
I verified this. Create a new scheduled task and it will fail quietly and without notification, even if you are an adminstrator, and have enabled the "Notify me of Missed Tasks" option.
[By the way, the above was the only documentation I could find of the complete breakage of this feature. Google reveals a multitude of Windows Tips sites who have obviously never used the feature they're tipping. I guess you get what you pay for on the Internets.]
If you see the "notify me of missed tasks" option you will probably assume that when enabled it will, you know, notify you of missed tasks. If so you've just made an ass out of u. In my opinion the worst possible flaw a user interface element can have is to state that it is going to do some action, then when activated actually do something else entirely. Frankly Windows could be improved by just removing this broken option.
This morning I discovered, the hard way, that my scheduled backup jobs had not been run for over a month.
Oh yes. A month.
"I wonder when the backups were last run" is a thought that rather fortuitously occurred to me this morning. I didn't actually need to restore anything from backup.
[As an aside, it turns out that the underlying cause of the backup job failure can be traced to more Windows corner-cutting. The part of Windows that enforces the corporate policy of changing passwords every 60 days does not talk to the part of Windows that stores the passwords for my scheduled jobs. I had forgotten to go into the scheduled tasks and update the passwords, and so my backup job was attempting to use my old Windows password. There is no good reason why I should have to remember this obscure task; that's what computers are for, surely?]
Regardless of the reason for the scheduled task failure, Windows has no way to tell me about it. And, given that the life clock of my scheduled tasks starts to blink after 60 days, the lack of notification turns out to be a deal-breaker. I count myself as lucky to only lose a months worth of backups, and nothing else.
So like I said, the Scheduled Task feature is possibly a victim of tight deadlines and limited resources, and I understand perfectly why Windows NT might have these types of flaws. And it's disappointing that a proper notification mechanism for missed scheduled tasks wasn't added to Windows 2000 or XP or Server 2003. But what is just infuriating is the fact that during this period of Windows development they added notification for other things that were nowhere near as important. Of course, I'm speaking of this:
Pan, the Arcadian Lord of the Flocks and Pastures tells me that this alert is the fifth most popular cause of suicide in the Western world, and is banned in Sweden and Estonia. I can see why.
So at this point I'm reciting the mantra of Occam's Razor and trying very hard not to imagine a meeting of the Windows engineers where they sit around considering the relative importance of missed backup jobs versus a messy desktop and decide to nag their users about the latter and not the former.
Yes, I'm trying not to picture that meeting.
Trying really hard.