I have been in the Software Development industry for 15 years, and it never ceases to amaze me how little has changed since I started. Sure, technology has changed, but that doesn’t mean that companies have adopted it.
New companies or projects tend to use the newer technologies, but all to often existing software is not upgraded. The problem with this is that changes continuously need to be made. An enhancement there, patch here, a bug fix over there, and over time, you’re left with a big mess of code that is so complex that it costs more to maintain than it’s worth. It’s like the proverb about the boiling frog; if you throw the frog in boiling water, it’ll jump out, but if you put the frog in the water and slowly raise the temperature, the frog will not notice the difference, and just die.
I do understand the desire to leave the software untouched; the Users are happy with it, and all they want is to have new features added. After all, new features are what drives sales, aren't they? Without new features, sales will stop, your competition will catch up (or move further ahead), the sky will fall, your dog will die and your spouse will leave you (basically, a country music song).
To illustrate my point even further, imagine a bridge over a highway. Over time, the infrastructure supporting the bridge will rust or break, and need to be replaced. If steps aren’t taken to eventually replace all the pieces that comprise the bridge, eventually one or more will fail, and a disaster will strike.
Technology moves at a faster rate than the disintegration of steel and concrete, and therefore needs a more aggressive replacement strategy.
Look at applications that existed even 10 years ago. Today, 55% of Internet traffic is done via mobile devices, and this trend is expected to continue. Without a significant overhaul, those older applications would not run very well (if at all) on smartphones or tablets.
No matter what, replacing software is expensive; albeit all at once, or over time. Having a plan in place for enhancing, upgrading, and modernizing legacy applications allows you to maintain control while keeping up with the necessary changes. Imagine the impact to our bridge goers above if the bridge were to collapse, and the cost to quickly replace the entire bridge vs replacing the pieces of the bridge one lane at a time.
Replacing aging technology is not a ‘nice to have’, it is an absolutely vital part of the strategy for any piece software. If you don't have a plan in place for replacing outdated technology, how much longer until your bridge collapses?