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
I’ve been doing this professionally for 14 years. The biggest thing isn’t security vulnerabilities, though that does happen occasionally, every few months maybe. And it’s not compatibility updates, though that happens every once in a while. The biggest thing is *changing business needs*. So like – we have a program that takes a text file, reads the data, and puts it into a database. If that file ever changes, we need to update the code. If that file ever has an *error*, we need to decide whether we’re going to update the code to gracefully handle it, or we’re going to have a process to re-run the file, who gets notified if the file fails, etc. If that code was written with some assumptions – maybe the data would always be in ascii (when after some time it ends up with a unicode character we didn’t expect). Or maybe a field of data wasn’t expected to be more than 256 characters, but one day there’s legitimate data that’s 260 characters long. All those things lead to having to update and maintain the code.
And that’s ignoring things like improvements – maybe we have two processes run by two programs that do similar things, but we decide it’d be better to combine it into one overarching program. Or maybe a process takes an hour or two to run overnight and we want to improve on that performance – that kind of stuff is pretty common too.
Latest Answers