Thanks for continuing here. Article
continues...
I'll give a few examples that are not directly related to my work, but are
good examples of the types of things that wind up happening over time.
Example #1 - the Mars Rovers that JPL (Jet Propulsion Labs) and NASA sent off
to Mars. Designed and built for a short mission live, but still going
strong, or at least still going. They are amazing devices, but they are
also amazing devices that have continued to suck up research money and
government money as they keep going, and going, and going. And they'll
continue to suck up money that most people wouldn't expect because once they
were built, the equipment that supports them was locked in time and won't be
changed for fear that any changes that are done could result in a catastrophic
failure of the systems or the rovers.
Example #2 - the satellites that have hung around and lived well past
their initial life spans, such as the ones that have helped track
hurricanes. They serve very useful missions and provide great scientific
value, but they cost a lot of money to keep going because in order to support
them there are systems that were built back at the same time, or well before the
satellites were built and launched, that are still be used to receive the data
from those satellites or to command and control the satellites with.
The same things happen to other government areas, and pretty much anyone that
lets themselves fall victim to assuming a dependency on a specific operating
system or specific tool or application. You get to a point where you can't
upgrade or patch systems because if you do, there is no telling what the effect
on the systems and application that run on them will be.
No money has been budgetted for the continued testing, and continued
development, so instead money has to be budgetted for continued support of those
systems. You create your own monsters by having to keep around Systems
Administrators that will be able to support the old equipment and systems, and
those people wind up having skills that deteorate over time from lack of
use.
Good IT managers typically refuse to let themselves fall victim to these type
of problems as they demand the use of industry standard systems and require that
users continue to keep up with patches on their systems. Still, there are
untold hours of testing that have to be done to make sure that the systems will
function as intended and that the results of the testing match the expected
results, or the results of every previous combination of runs that have been
done. Scripting work has to be done, and/or test protocols have to be
created and documented so that procedures will exist the direct how to confirm
that the upgraded or newer systems will function as proper replacements for
existing systems.
Things get more interesting over time when you find that some systems used
hardware that is no longer found on new systems. For example some devices
may have communicated over serial ports. 5 - 7 years ago those were
plentiful on systems, but more and more those ports have disappeared because USB
is able to handle those types of devices. Except that the legacy software
may have been written in a way such that it tried to communicate directly with
COM1: or COM2: while USB provides some totally different names and addresses for
those ports.
Anyway, it is an interesting problem and continues to haunt my days, and the
days of many other systems admins out there. Users that never knew to
demand that software they were having developed be developed using highly
portable code find later that they can't replace that software or get it moved
to other newer systems because they can't get it recompiled for those
systems. Or perhaps they can, but they have to pay a small fortune to have
it done, and then tested to a level of satisfaction, etc.
Hopefully over time more users or managers of users will demand that the users of IT equipment and systems in their areas will not let themselves fall victim to the trap of being bound to legacy systems. If they succeed, they could save untold millions of dollars in long term support costs.