Replacing old software: how do you go about it?
A system that has run for fifteen years holds more knowledge than it appears to. Replacing it in one go is the riskiest way to proceed.
Document what it does first
Not what it should do: what it actually does, including the exceptions somebody added eight years ago. That is where the surprises hide.
Replace in pieces
One module at a time, with old and new running alongside each other. Slower in appearance, and far safer than a single switch.
Do not reproduce everything
Part of the functionality is no longer used by anybody. Check that in usage data rather than asking — people always say they need it.
Allow time for the data
It is almost always the longest part. Old data is messier than the documentation claims.
Keep the old one reachable
Read-only, for a while. That saves you migrating everything immediately, including what nobody will ever look at again.