The message popped up in my e-mail last week: Canon was offering a firmware upgrade for my DSLR. Why was I in such a hurry to download and install it? Why do I get such pleasure from updating firmware, such delight in seeing new versions of mobile apps for my Android, iOS and Windows Phone devices? New maps for my GPS? Updated drivers for my printers? No idea.

The camera’s firmware update wasn’t even important. Firmware 2.1.2 for the Canon EOS 5D Mark II wouldn’t even affect anything relevant to me:

Firmware Version 2.1.2 incorporates the following change: Optimizes the camera’s performance when using certain UDMA 7-compatible CF cards released in February 2012 or later.

Yes, the brand-new UDMA 7 spec allows for faster data throughput, but my trusty 32GB Compact Flash card is UDMA 6. I have no plans to buy a new memory card anytime soon. But still, my psyche wouldn’t let me do anything else until the camera’s firmware was safely updated.

I’m also one of the first kids on the block to install updates to my notebook operating system, anti-virus software, application service packs—you name it.

Am I crazy? Perhaps. But it’s a dangerous game that I play.
While updates can fix bugs and add features, they can also introduce new problems and even remove functionality. For example, anyone who installed Security Update 2012-001 to Mac OS X 10.6 “Snow Leopard” suddenly couldn’t run PowerPC-based applications. Oops.

And in another situation, several years ago, I bricked a perfectly good Garmin Quest GPS doing a firmware update. Sadly, it was out of warranty. And now it’s dead.

In a casual or personal environment, it’s fine for individuals to choose to be early adopters. In a business environment, of course, even the most innocuous-seeming software updates should be tested before deployment. That’s true whether the update is for a server operating system, critical software, a mobile app or an embedded platform. While employees chafe under IT’s apparent paranoia, it’s vital to realize that firmware and software updates can’t always be reversed, and IT must remain in control.

A word of caution for developers: Realize that many of your customers will want to download upgrades, but many customers may not want to upgrade. Perhaps they are worried. Perhaps they have policies. Perhaps they have other dependencies that preclude your upgrade.

For example, Apple is pushing everyone to migrate from its MobileMe service to iCloud. Just one problem: iCloud requires that all Apple devices run at iOS 5 or Mac OS X 10.7.2 or later. However, one of my Macs is on Mac OS X 10.6 because it runs a business-critical PowerPC application under Rosetta. Yet MobileMe will be turned off on June 30, 2012. Apple is putting me into an impossible position. This does not make me happy.

Be a good software provider. Don’t nag your customers to install your latest bits. Don’t force them. Don’t bully them. Don’t deprecate older versions of your platform gratuitously, or set arbitrary deadlines to force customers to migrate. It’s not nice, whether you’re Apple or a small ISV. Don’t do it.

Oh look, a new driver just came through for my Brother printer. Excuse me, I have to go install it.

Alan Zeichick is editorial director of SD Times. Read his blog at