Every software project has a shelf life except for a handful of very low-level ones that have survived the ages.
All projects need maintenance until they reach their deprecation date.
Every software project has a shelf life except for a handful of very low-level ones that have survived the ages.
All projects need maintenance until they reach their deprecation date.
....maybe AI will solve this problem for us one day. :P
At any point we could all just just agree to make an unchanging ExtremeLTS target if we really wanted. Just like, freeze a modern Linux and only do nonbreaking changes to any of the parts.
Unfortunately nobody seems to have done that for real practical use. There's UXN, which is cool, but I wouldn't want to use anything that minimal, especially not with the focus on ASM instead of a high level language.
We could also just decide to make a compiler to make N64 dev easier and just keep making most of our stuff for that, retro console games will probably always be playable for as long as civilization continues, but that would not exactly be practical.
But windows kinda already does the whole unchanging target thing, or did. Their backwards compatibility is so much better than Linux, where nothing works in 2 years because of all the dynamic linking.
Failure on the preliminary R & D can be a complete show-stopper before you even get started.
OTOH with such limited, poor & incorrect documentation pertaining to the hardware & software, especially in combination with each other, a strong background in the Experimentation & Discovery aspect of R & D is often the only way to achieve your objective when the intended initial logical approach fails to perform as it is supposed to do. This need can penetrate beyond maintenance all the way to end-of-life.
One reason maintenance can chew up so many man-hours.