The diminishing ROI of backwards compatibility

August 9, 2013

Ross Ross Gerring

Does your website or app “misbehave” sometimes, i.e. looks and/or functions a bit differently (i.e. sub-standardly) on certain devices?

Annoying, isn’t it? Why doesn’t it work perfectly across all devices, all the time? Doesn’t my website/app developer know his/her stuff? What am I paying them for?!?

Reality check: the older the technology being used to view/use your app or web page, the less likely it is to behave perfectly relative to viewing/using your app or web page on newer technology. (Caveat: “bleeding edge” – the first release of the latest technology – can also have issues!)

By “technology” we’re primarily referring to:

  • Hardware, e.g. an original iPad versus the latest 4th generation iPad.
  • Software
    • Operating System, e.g. Windows 98 versus Windows 7 or 8.
    • Browser, e.g. Internet Explorer 7 versus Internet Explorer 11

This is a challenge that will *never* go away, and indeed has got more challenging since the massive global adoption of mobile devices: tablets and smartphones. Now we developers have got even more fragmentation of hardware devices and software systems and versions to contend with.

Yes, many standards do and must exist (e.g. http://en.wikipedia.org/wiki/HTML5), but

  1. Not all hardware/software suppliers implement the standards fully, correctly, or consistently.
  2. Standards are always playing catch-up with the incredible speed of innovation in IT-land.

The best you can typically hope for is that your website or app works perfectly across all current, mainstream technologies, which probably means that they’re not more than 3-5 years old. And if the technologies are more than 3-5 years old and your website or app isn’t working perfectly, then hopefully it can be made to “degrade gracefully”, meaning that the “lesser experience” of the user is minor, not major. Example: an animation might not animate properly on older technology, therefore a static image is offered up as a replacement.

How much are you prepared to pay to make your website or app work perfectly (or at least degrade gracefully) across all technologies, even older ones? The law of diminishing returns (ROI) applies here: the cost/effort will very likely start to rise exponentially as you attempt to squeeze perfection out of older and/or less mainstream technologies. Only you – the entrepreneur or business owner – can decide what’s right for your business, i.e. to decide when enough’s enough.

The main thing to consider is this: what technologies are your current and/or target audience using? Are they early adopters, or very late adopters, of new technology? Stereotypically, if your product or service targets a tech-savvy youth or young professional market, then you almost certainly don’t need to care much if your website or app doesn’t work perfectly on an iPad 1 running iOS v.4. Conversely, if your product or service targets the older generation, then (at time of writing) you might want to pay more attention (and money!) to making a great experience for people using Windows XP or 98 and Internet Explorer 7 or 8.

How can you tell what versions of what technologies your current, actual customer are primarily using? Answer: log files / reporting. Ask your website or app developer to show/share these with you. They might show you Google Analytics or AWStats

How can you tell what people in general are using/preferring? Try these for size:

  1. http://en.wikipedia.org/wiki/Usage_share_of_web_browsers
  2. http://www.w3schools.com/browsers/default.asp
  3. https://developer.apple.com/devcenter/ios/checklist/ (see % of people using various version of Apple’s iOS operating system for iPads, iPods, iPhones)
  4. http://david-smith.org/iosversionstats/ – similar to the above from app developer David Smith, sharing the iOS Version stats for his own app.
  5. http://chitika.com/insights – monitoring and reporting on changing technology usage, and more.
  6. http://allthingsd.com/20130623/is-ios-fragmenting-not-nearly-as-much-as-android/ – article about version fragmentation and the challenges this poses developers.