feature article
Subscribe Now

Debate: Automatic Software Updates

Do Software Updates Add Value or Promote Laziness?
Roses are red;
Violets are blue; 
I’m schizophrenic;
And so am I.

This week we’re debating two sides of the topic, “Are automatic software updates a good thing or a bad thing?” But since my learned colleagues aren’t available – or were wise enough to avoid returning my calls – I’ll be handling both sides of the argument myself. Fortunately, I’m of two minds on this subject, so I’ve got no problem straddling the barbed-wire fence.

Ever since we started connecting our embedded devices to this thing called the Internet, we’ve had the alluring prospect of being able to fix our software bugs remotely. Everything from iPhones to PCs to the Tesla Model S sedan gets software updates over the air, whenever and wherever their creator decides it’s time. Remote software updates allow us to fix bugs in the field, and they let us upload new features to our customers’ devices. But are these after-the-fact updates a good thing, or do they, in fact, promote sloppy programming and a kind of customer contempt? First, let’s hear the argument against.

The Argument Against

I hate random software updates. Just hate ’em. It seems like every time I turn on my PC, some product from Adobe wants to update itself. Or if it’s not them, it’s Apple. I’ve got news for you, guys: You don’t own my PC. I don’t $*@!ing want to update your crappy apps right now. This is my machine, not yours, and I don’t spend my days gazing adoringly at your software, hoping to get a new love letter from the programming labs. I wish Apple would acquire Adobe; then we’d combine the world’s two worst offenders and have one less company to hate. 

Okay, so Microsoft belongs on that list too, because updates to Windows are as predictable as a tornado in a trailer park or a Jägermeister hangover. I know the company gets a lot of stick, but they’re updating an entire operating system, not just a single product, so give them some slack. If you had to keep that aging hairball of an OS current, you’d push a lot of updates, too.

So that’s the annoyance factor. Then there’s the consumer-confusion factor. Remember when Apple ditched Google Maps and replaced it with its own half-baked alternative? Nobody asked for that, yet millions of happy doe-eyed iGadget users suddenly had their mapping app taken away. An app they’d paid for, I might add. It’s possible (unlikely, granted, but possible) that some people actually bought their iPhone or iPad precisely because they liked the mapping app. But now that’s gone. Taken away by an all-seeing, all-knowing Apple that gets to retroactively decide what apps are running on your iGadget.

Amazon has been known to do similar things with books people have bought – excuse me, licensed – for their Kindle. Content unilaterally disappears, with no warning and only a feeble legal fig leaf for cover. Adobe (them again!) changes user interfaces, moves menus, and tweaks import/export options, all without any say-so from their paying customers – customers who soon will have the privilege of renting software from the company because it can’t be bothered to have real product releases anymore.

On Christmas Eve, my new PlayStation 3 took more than two hours to download updates to itself the first time it was turned on. Talk about a miserable out-of-box experience. Sony must’ve sent thousands of disappointed little kids to bed crying that night. Nice going. Maybe next year Santa will bring you something that works.

Third, constant updates promote sloppy programming. When you know you can patch the code later, you will. Oh, c’mon – you know you will. Even if you try to be a stand-up programmer and refuse, your boss will make you ship crappy code anyway because he knows it can be patched later and you need to ship this fiscal quarter.

Fourth, there’s the catastrophic-oops factor. What happens when your patch introduces new bugs? The cure might be worse than the disease. Some car owners are already nervous about automakers downloading updates mid-trip. What happens when the update leaves them stranded by the side of the highway? A free patch to the patch won’t make them feel any better.

Finally: hackers. If you can update your device in the field, so can anyone else. Oh, don’t make that face. You’re not special. The only reason no one’s hacked your device yet is because you’re small potatoes and nobody’s tried. You’re vulnerable right now, and your customers will be the losers, not you.

The Argument For

Software updates are awesome. They allow us to repair bugs that we couldn’t otherwise have fixed, with no need for a recall or an awkward EPROM replacement or memory re-flash. We can even add new features over time! The customers will love us because we keep upgrading and improving the product they’ve already bought. Yes, we’re just that nice.

First of all, bugs are a reality in all embedded systems. Try as we might, we’re never going to ship perfect code – at least, not on any kind of schedule. Given that grim reality, we might as well make provision for updating said code if we have to. Avoiding field updates doesn’t help anyone, and it prevents us from fixing important bugs. It’s all upside.

Second, we can add new features, as long as the marketing guys say it’s okay. Every now and then we can throw the customer a bone, hoping to keep them happy until the next major hardware-upgrade cycle. That keeps us in the customer’s mind, and it helps avoid some of the “Osborne Effect” when new products are on the horizon.

Third, remote updates could even be a revenue opportunity. Want to upgrade your car’s horsepower before that big road trip? Just download an ECU upgrade that adds a few HP. Want to modify photos while they’re still on your camera? Grab that Instagram applet for your Canon DSLR. In a world full of software-defined products, we’d be nuts to leave that opportunity on the table.

Permanent connectivity also works both ways. Kindle and Nook e-books both allow annotations to be uploaded to other readers, so they can all compare notes. It’s like a virtual book club, minus the cocktail peanuts. You can glean interesting usage data from your customer base too, including how they’re interacting with the GUI, what features are used most often, and how long it takes users to complete a task. That kind of silent (not to say creepy) feedback is invaluable.

Always-available updates turn hardware products into a kind of generic platform for continual software upgrades. Customers could “subscribe” to their products, allowing us (with permission, of course) to stream new content, new features, and new concepts their way. We could even cherry-pick a subset of the customer base to act as beta testers for new product ideas. Want to see what we’ve got up our corporate sleeves? Just sign here for the sneak peek preview program (just don’t store anything personal or important on your device).

The Obvious Conclusion

Now that we’ve clearly and cogently argued both sides of the case, what’s the conclusion? I think it’s clear. If I’m a developer, I want remote software updates. If I’m a user, I don’t want them. So there you have it. The decision comes down to a simple question: Are you making products for your customers, or for yourselves?

I’m sure there are other ignorant, hare-brained, ill-conceived ideas out there, so start uploading those comments, below. 

4 thoughts on “Debate: Automatic Software Updates”

  1. That’s one of the benefits of the cloud. Updates anytime without you having to do them. Oh, you didn’t want that update? Um… it already happened, sorry dude… (In fairness, EDA companies are building in the ability to lock versions… last thing you want is a synthesis engine changing everything around mid-design). See? Learn to love the cloud…

    As to Microsoft updates, yeah, what you said, but they have this thing where they want to restart you when they want (until you change that crazy-assed setting, after which their security software constantly tells you that your system is at risk because you’re not letting them restart your computer RIGHT NOW). That’s the default setting. Didn’t save your work? Well, sucks to be you. Saving your puny little document is so not important compared to us adding the next few pieces of digital duct tape to cover various security holes. I would have loved for that to happen in the middle of a Bill Gates presentation. Better than a bluescreen.

    And then there was the time I was on a call with some company trying to get their software to work, and as part of the troubleshooting, I had to shut the computer down. I did it hastily, and was greeted with “Applying 21 updates. Do not power off your computer.” Yeah, me and phone support guy got to sit and chat through 21 (or whatever) updates.

    As to whether you should be able to choose to update or not, you’re so cute and naive to think that this is all about features for you. In many cases nowadays, the update isn’t for your benefit. Especially with companies like Google and Facebook and Microsoft, pretty much nothing is for your benefit. It looks like it is, but it’s for their benefit. They want you to behave in certain ways (sorry if that sounds conspiratorial; I’m really not wearing a foil hat), and they want your information, and their changes are only for that. You’re just a pawn in their plans of world domination. So be a good little pawn and thank them for their update that changed things that were working just fine before.

  2. PS And, as if you had scheduled this, LinkedIn appears to have done a big revamp last night… So much better! OK, actually, just different… as far as I can tell so far…

  3. I agree, the Microsoft auto-restart is the worst default setting IN THE WORLD. I’m okay with automatic updates if they take 30 seconds or less. Any longer than that and it can wait until I’m good and ready to update!

  4. My favorite on this is one product that used to tell you it was going to update and then stall everything as “You do not have administrator rights”. Only way out was a forced re-boot, log in as administrator and then run the update. The update would force an auto-start. On an old machine, and one admittedly in need of a software spring clean, that could take a large chunk of time.

Leave a Reply

featured blogs
Dec 11, 2018
Over the past few years, Samtec has expanded its portfolio of Characterization and Development Kits. Engineers and designer demand the best tools for system prototyping. From concept and prototype to development and production, Samtec-designed Characterization and Development...
Dec 11, 2018
The first week of December means it is IEDM, the International Electron Devices Meeting. This meeting pre-dates the integrated circuit and nearly pre-dates the transistor, so "electron... [[ Click on the title to access the full blog on the Cadence Community site. ]]...
Dec 10, 2018
We may think of prosthetics as devices created to enable basic functions, such as walking or grasping an object. Regarded as a necessity, but not an asset, prosthetics of the past......
Nov 14, 2018
  People of a certain age, who mindfully lived through the early microcomputer revolution during the first half of the 1970s, know about Bill Godbout. He was that guy who sent out crudely photocopied parts catalogs for all kinds of electronic components, sold from a Quon...