When I shut down my laptop, there are - inevitably - one or two programs running in the background that do not shut down properly. I haven't investigated what they are, but I suspect they're tray notification applets or something similar. In any case, I get a nice little Windows dialog telling me that the system is trying to shut down those programs, but gosh darn it, they just won't listen! A progress bar slowly fills, and when it reaches 100%, Windows (probably with much regret, and maybe just a little glee) kills off those unruly processes so it can finish shutting down my computer.
This is a momentary annoyance. If I'm waiting for the laptop to shut down, I can just click on the button that says "Go ahead and kill these processes now", and everything is OK. If I'm not waiting, then the timer runs out, and Windows does my dirty work for me.
What got to me as I did this - for the Nth time this morning, when I shut down my laptop to pack it away and head to work - was that this is absolutely insane.
Not the way Windows handles things. That's (shockingly) pragmatic. There's a recognition that not everything will work perfectly, and sometimes, you might need to apply a little brute force to smooth out the rough edges. What annoys me is that somewhere, there are apparently software developers - corporate software developers, folks making and selling software for a living - that have apparently managed to design, implement, build, debug, and test their stuff without ever shutting down their computers.
Because, you know, if they had ever shut down their systems, they would see that their software doesn't work.
What were they thinking?
This is like having a car where, when you turn off the engine, you need to pop the hood and disconnect the battery to finish turning off the radio. I mean, sure, it works, sort of. The car manufacturer has dealt with idiot radio designers long enough that they include a specialized bit of machinery that will even automatically disconnect and reconnect the battery for you so you don't accidentally leave your radio playing all night. So it all works, kind of.
The sloppiness and sloth involved in not even bothering to make sure that your software reacts properly when the computer shuts down is staggering to me. There are guidelines for this kind of stuff. Windows messages to handle. SDK examples galore about how to do it properly. And yet, professional software developers still manage to get it wrong.
I'd like to blame it all on management - the idea that someone, somewhere, decided to ship this software, even though there were some "non-critical" bugs, like, oh, not shutting down properly. Unfortunately, I think it's probably more likely that someone got sloppy, spent a few minutes poking at the problem, and said, "Oh, that's just the way Windows is. It's good enough."
So my annoyance doesn't really come from some software that doesn't shut down properly. It comes from the fact that there's someone, somewhere, in my chosen profession who just doesn't care enough about good software to bother fixing a glaringly obvious problem in their code, even though that's what they're paid to do.
That's just plain disheartening.