Software is like a diaper; when it gets dirty, change it.

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?