Why Won't Companies Upgrade Old Software?
Cost. Risk of change. Ain't-broken-don't-fix-it, etc, etc. Some companies exaggerate these, but in general, these are real, valid concerns.
IE6. Several governments and big companies I know use software dependent on IE6. They won't upgrade, citing the expensive cost.
Companies and orgs exhibiting such ridiculous policies, though large, are not common. Really, they are not. They are not the norm, and are not representative of the general problem companies face when they deliberate on whether to keep or change large, expensive legacy systems.
Companies that keep a policy for using IE6 (or similar follies.) That's an uninteresting, not-so-relevant problem, one that exists in the realm of stupidity and cargo cult practices, not worthy of a /. front page.
OTH, Companies that have aging, yet good-enough-functional (or at least functionally tolerable) multi-million (if not multi-billion) dollar investments, that is a interesting problem to study (and hopefully solve.) This is a genuine business/software engineering problem worthy of a /. front page.
Do you know what's more expensive than upgrading? Downgrading to the old system they had before they upgraded!
But how often does that happen? What is the general prevalence? And how much does such practices intrude in day-to-day business activities?
You see, before computers, companies used to have room full of people manually calculating and processing stuff. It wasn't until the computer came that they could fire all those people and save a ton of money on their collective salaries.
OH, NOW I SEE!!!! Stop the presses, for no one in the history of interweebzkind has ever realized this till now!!!
Are you familiar with the history of the sewing machine, and how such an innovation caused large, though eventually temporary unemployment of seamstresses and taylors? Same here, same with any other technological breakthrough or innovation. Yesterday news, obvious, self-evident news.
Now, my question is: what happened to that money they saved?
Sorry, but the answer is self-evident: It goes into raises, building new infrastructure or new investments, business expansion, etc, etc. Money wisely invested. Money absurdidly wasted. Some of one or the other. Sometimes that works well, sometimes not so much. Business and human nature as usual as they have always been, and always will be.
Even a small portion of the money saved over the years could be used to upgrade ancient systems to modern standards.
Really, how much is "a small portion"? And how much a "small portion" is enough to upgrade ancient systems to modern standards (whatever that means)? Besides why exactly would you want to upgrade? If you have a COBOL-based banking system that has worked well for 20 years, why would you want to upgrade (and engage the inherent risk of such a change)?
You are talking about money that can do this or that in a business setting, and yet you fail to discuss the ROI of such changes. A discussion on a business change without discussing ROI is not a legitimate business discussion. It is hand waving.
However, big organizations keep citing million-dollar upgrade costs as why they won't do it.
Because it is true. Do the math. Seriously, do the math. Number of engineers involved in a migration process times average yearly salary time 2 (typically the cost of an engineer for a business is 1.5 to 2 times the cost of said engineer's salary.) Then add up the cost of transition, then the cost of retraining users, the cost of violating SLA agreements, the cost of having downtimes due to problems with the transition, then the cost lost money in salaries by having idle users due to retraining or down time, etc, etc.
These are the functional/operational requirement costs. What about the non-functional ones? You might need to invest in new platforms (in terms of leasing, licensiong or re-training) to support development, testing and deployment. You might need to negotiate new SLAs if said platform change involves changing vendors (or changing existing SLA agreements). Then, there is the cost of migrating data (which you will most likely incur), the legal requirements to retain data, the legal requirements to comply with certain standards (say, SOX or HIPAA) which your outdated systems might already be compliant with, etc, etc.
Yes, any system of significant size will cost millions to change. You better have a significant ROI on the change to compensate for the cost (and inherent risk.) It is not rocket science.
Aren't they also losing money by working with inefficient, outdated systems?"
More software engineering 101:
1. An outdated system does not necessarily imply an inefficient system. In fact, an efficient system is the one that runs the longer without incurring in substantial changes/enhancements/bug fixes.
2. A "modern" system does not imply an efficient system. Just look around at the mounds of shitty software built anew everyday with the "hawt" modern tools currently at our disposals. A "modern" system is a new system. A new system is an unproven system. While it remains unproven, it carries an inherent, hard-to-calculate cost. To prove it as "proven" will inevitable incur in another cost. None of these costs are trivial.
3. A willigness to pour money on an old but known system does not necessarily imply a waste. Instead, it acts as a de-facto insurance cost against a known risk.
4. Cost is not necessarily horrible if it is a function of a known/understood risk. It is the unmeasurable cost of an unknown/not well known risk that it is horrible and unacceptable.