Why does software need to be “maintained”? What about it needs to be maintained?

1.26K viewsOtherTechnology

This is totally me just being naive, I don’t work in the software realm but do have an interest possibly one day, but if we have stuff that’s been able to run (seemingly) successfully for years, or maybe even decade, what maintenance needs to even be done on old programs? Is this simply for people discovering security vulnerabilities and patching them? Is there more to it than that?

In: Technology

31 Answers

Anonymous 0 Comments

Aside from bugs, improvements, security issues, etc., keep in mind that software runs on a system (the computer architecture that runs it, which usually means an operating system these days, but there are many possible “levels” of system being engaged with modern programs). If the system itself changes in some way, then the old way the software ran may not run correctly anymore. Any actively-used system is likely to have changes made it to for a variety of reasons.

A very dumb example of this: I wrote code in the mid-1990s in QBASIC that worked in part by using some clever memory hacks with the visual system that DOS used. It allowed for much smoother animation than was normally possible with QBASIC by doing some “under the hood” sorts of things. I still have that code today, and it can run in a DOS emulator, but it looks like crap, because the DOS emulator does not use visual memory the same way as an actual DOS PC did back in the day. So instead of smooth animation, it looks like the computer is having a seizure. The code is fundamentally fine for the system it was _originally_ written on, but that system no longer exists and has been replaced with a system that is _mostly_ the same, but not the same in the way that the program requires. This example is a little extreme because of the distance in time between the old system and newer ones (almost 30 years), but the same thing can happen with all sorts of “little” upgrades that happen to operating systems, browsers, etc., which could inadvertently and often unexpectedly create problems for programs down the line.

A more modern example of this: I wrote some web code a few months ago that used an external library that was linked to on the web (and I didn’t have control over the link). Suddenly my code stopped working! It turned out that the library got updated and removed one of the features that my code relied on. So I had to find an older version of the library and link to it, instead, if I wanted my code to still work. (And a long-term issue will be figuring out a way to still use my code with whatever current version of the library exists, because keeping my code locked to an old library is going to probably create more issues down the line.)

You are viewing 1 out of 31 answers, click here to view all answers.