A legacy system is not simply an old one. Plenty of old systems do their job perfectly well. A system becomes legacy when the business needs it to change and nobody can change it with confidence.
How it happens
One person builds it and holds the knowledge in their head. It lives on a single supplier's platform with no clean way out. The data is locked in a format nothing else can read. Small changes get bolted on until nobody is sure what depends on what. None of this is dramatic. It builds up quietly over years.
Own what you pay for
The code, the data and the accounts it runs on should belong to the business, not the supplier. If the relationship ended tomorrow, another competent team should be able to pick the work up.
Keep the data open
Whatever the application looks like, the information underneath should be stored in a standard, well-understood way and be exportable. Applications come and go. The data is the lasting asset.
Keep things separate
A system made of smaller parts that talk to each other can have one part replaced without disturbing the rest. A system built as a single block has to be replaced all at once, which is why so many never are.
Write it down
A short, honest description of what the system does, how it is put together and where everything lives is worth more than most features. It is what lets someone else change it safely.
Modernise around what works
When an older system still does valuable work, the answer is often not to replace it but to build a modern layer around it, so new reporting and new tools can draw on its data without disturbing it. Replace only when replacement makes commercial sense.