Why I hate software upgrades

Backward Compatibility - It's a problem

Please be warned that a rant is approaching. I’ve been in IT for a very long time -since 1985 and see this backward compatibility thing as a fundamental problem with our industry. 

The reason for this post is that I saw a post on an IONIC forum from a frustrated developer that had features break on and IONIC app after the last upgrade to IONIC.  I can sympathize with this person. The IONIC rep was cordial but I think he failed to grasp the problem seeing it only from his point of view.

Upgrading software can be a challenge to many organizations. In development we know that the 80/20 rules lingers everywhere, You know the rule that says 20% of the work takes 80% of the time. Reworking code can consume much more time than actually writing it from scratch.
For years, when Microsoft desktop apps were king, Microsoft did everything to ensure backward compatibility at substantial cost; both in terms of dollars and time.  Some of you can remember having desktop apps that ran on Windows for Workgroups and needed them to continue to run on Windows 95 (I know, that was a long time ago). Well it did and that came at a cost to Microsoft.

Today new versions of entire frameworks, not modules (modules typically being a portion of a full application) can be released every 6 months, for example Angular now on release 9. But think about this.  It takes longer to develop an application and move it to production at a corporation than it takes to develop and release an entire framework.  To get an application into production, you have to meet with clients, work with operations, networking, and systems groups. You have to attend meetings. You have to resolve defects, re-code components that did not meet the original requirements. All this takes time.   Meanwhile a new version of a framework, components or utility that you chose to use has been upgraded.   Or, consider an application that has been in production for three years and PHP is upgraded or WordPress deprecates some function.  The whole thing is a bloody mess and can cause considerable heartburn.

Also consider this Batman, software companies that provide frameworks and components see this issue and understand, they can consume the cost (dollars & time) .  Take more time to deliver code that works on all their previous versions and pay developers to regression test it all or they can say, we’ll publish an upgrade guide and leave it to the masses to handle.  Even though the truth is that at times, the next upgrade will F-UP this upgrade in 6 months.  Also be mindful that there is no free lunch so, someone has to pay – it’s you or it’s us.

Having identified the aaarrrggg issue. Is there a solution? The answer is NO.We’re in a new age. I don’t like the results of banging my head up against a brick wall so I just don’t do it. Software companies are there to produce software ( I’m taking about the platform, deve tools guys in particular) They are going to release new versions and the new version will break older code. Get use to it..

Lastly, don’t ask me fundamentally about cyber security and malware and it’s relationship to new releases.  There is no doubt that new releases tend to close holes found in prior releases. bravo software companies. The problem is that with every new feature you introduce a handful of new zero–day exploits. It a darn endless loop.   

That’s how I feel about it.  Rant done.  Enjoy the rest of your day.