Upgrade Anxiety – We all have it

As I type this I can see an icon indicating 10 plugins need to be upgraded on my blog. Most are minor upgrades with tweaks and fixes that don’t really affect me. Some, like the WP Super Cache update, are enough to give me nightmares of my blog having serious technical issues.

Oh wait…hah! Well, I actually did totally mess up my blog a couple years ago. I thought simply installing the WP Super Cache update would automatically preserve all of my settings. If you aren’t familiar with this WordPress plugin, it essentially provides a performance boost to your blog by having a gazillion caching-related knobs, bells and whistles that you can tune.

Yes, I did research the topic of upgrading beforehand. And at the time, deja vu, I found very little useful information other than people recommending you should upgrade. Caveat Emptor. I ended up paying a tech support person $175 to fix my mistake and my blog was totally messed up for about a week.

Okay, so now I make sure to backup/export all my WP Super Cache settings . Yet I still get the heebie-jeebies every single time I get its plug-in update notification.  A few friends offered some not-so-tongue-in-cheek suggestions of why don’t I just learn about all the different settings and just experiment. “You have the skill(z),” they told me. I couldn’t argue with that.

What it really comes down to is “how” I want to spend my time. Like most members of the Esri Developer Evangelist team, I’m totally slammed at work and the outdoors keep me busy after hours and on most weekends. I don’t really care to learn the nitty-gritty intricacies of WP Super Cache and it’s hundreds of configuration permutations, along with all the other stuff I have to learn to stay on top of the latest technologies, APIs, etc.

In hindsight, now I know the WP Super Cache website doesn’t have a single link or tab that explains the various settings and configuration options. There are ten steps listed that don’t even begin to cover what happens if you change something, or what are the pluses and minuses of doing one setting versus another.

Lessons Learned:

  • You don’t have to accept all upgrades whether it’s your laptop, smartphone app, etc. I’ve gotten really good at skipping some. Others, like Chrome, happen automatically and even though they also occasionally introduce new bugs.
  • Note to self: Always, always back up your software, databases and settings.
  • Some upgrades deserve more attention than others. WP Super Cache is one of those upgrades that deserves your full attention to details. Spend time on forums reading and asking questions before hitting the upgrade button.
  • Some upgrades simply aren’t worth it. I’ve dropped a number of plug-ins that mysteriously started gathering information from my blog such as AddThis. I was running a protocol analyzer at the time and I noticed strange http requests to a 3rd party URL. Not only were the synchronous http requests slowing down my website, but when I visited the 3rd party website the details of what they did were extremely vague.
  • The last lesson learned is actually a note to software vendors that may be reading this. Too many upgrade notifications per month is very annoying. Unless you find a fatal bug, one upgrade per month is about my limit.

Where’s that OS update for my Android?

I’ve talked with many Android users and developers and the question that comes up the most is: why can’t the cell provider or hardware manufacturer provide an OS update for my phone? For example, I doubt that my primary developer phone, a Motorola Atrix, is ever going to see an OS update beyond Android 2.3.6. My idea is reinforced by the fact that its much touted successor, the Atrix 2, only supports v2.3.7 and, as of this writing, Android’s latest release is at 4.0.x.

Why update at all? In my case, there are an increasing number of software requirements that simply can’t be met without significant work-arounds with the older OS versions, for example building dynamic UIs. That’ not to say that upgrading, in itself, doesn’t also involve additional coding to support certain levels of backward compatibility. More on that in a minute. On that note, I’ve also blogged before on the versions of the Android OS being used by the majority of phone users.

In the case of the consumer, you may simply want a new feature like a better camera, or more battery life. Or, perhaps your two year cell plan is expiring and your phone battery isn’t lasting as long, or the phone seems to be getting slower and you would like something new.

The twist. Okay, back to the OS updates. First of all, as customers roll off their two year contract an educated guess is that they’ll want to buy the latest generation phone rather than hang onto their old one which isn’t upgradeable. So many things change in two years that my old phones look ancient, and sometimes downright clunky, compared to the latest and greatest. You may have experienced similar thoughts. This creates huge demand for the “new”. It’s not much different than cars in a way.

Here’s what makes things interesting. It’s a fact that Android makes these updates publicly available. However, the carrier who sold you your phone, and the hardware manufacturer that built it most likely made changes to the operating system and phone firmware that essentially creates a specialized branch of code. So, the Android official update may not necessarily work on your phone. In essence, you’re stuck because the source for these customized OS’s isn’t open.

Reality is it costs money to maintain these unique Android code branches through support resources and software developers to make and test bug fixes. And, it costs even more money to maintain backwards compatibility for older versions of phone firmware or software in parallel with support for all new subsequent releases. If you aren’t familiar with firmware, it provides the lowest level of control on your phone and it’s provided by the phone manufacturer not Android. When new releases of software or firmware happen, you have to make sure you don’t break anything. I have a hunch that it also takes more time for hardware manufacturers to catch up on supporting new Android features than it does for Android to add features. Making hardware changes takes time via a manufacturing process.

This is where phones are different than cars. I’m not aware of a huge aftermarket for upgrading the OS on older phones. Where, in comparison, car parts and service is a big business. So my analogy isn’t 100% perfect.

I also suspect that neither the cell providers, nor the hardware manufacturers, want to be in the software business. That certainly does not appear to be their core competency. After all, the people behind Android are the experts who continue to innovate at lightning speed.

So, putting all of these concepts together makes me a realist, I suppose. I think the odds show little incentive for the stakeholders of my Atrix to bequeath an Android OS update.

Summary. At a national level, adoption of the newer OS’s happens in longer cycles because of cell contracts which affect how often consumers can update. Supporting older phones costs money. And since us consumers push the latest and greatest, the carriers and phone manufacturers respond by being wholly focused on getting new technology into our hands.

On one hand, I cringe at the fact of giving up a decently working phone that I’m very familiar with and possibly relegating it to the back of a rarely used desk drawer. But, on the other hand, what I’ll gain from a pure consumer point-of-view, seems to significantly outweigh that simple fact. The hardware benefits of a new phone include: a much better screen and camera, better battery life management, more powerful CPU and onboard memory. From a software perspective I get support for the latest version of Android which includes the new user interface capabilities along with other behind-the-scenes improvements.

[Edited 6/11/12: Database crashed. Restored Blog Post.]