There are mainly 2 ways to keep a running project running – change or not
When a project goes live it enters the maintenance phase. Further development changes.
There are mainly two ways to keep said project running.
Great wall of China
The first is to pretend the world is not (r)evolving and keep the project in a stable state.
This means one must consider present and future changes and make sure these don’t affect the system.
Unfortunately this also means changes are slow and expensive; not necessarily because of code base but of management who believes the system will work and not have to be changed because changing costs money.
What often happens is that changes are postponed until a bug or security issue surfaces in the OS, underlying framework and changes must occur. Note that I wrote “OS” and “underlying framework” and not the project specific code. The world did (r)evolve despite intentions.
Continuous change
The other method is to acknowledge that the world changes and change accordingly. The world changes continuously so allow the project to change continuously.
What comes out of this is also that every change becomes cheaper, both in money and in administration and in percieved load for management. Bugs and features are also fixed and implemented faster which benefits the business.