Unfortunately, this is huge project, and to do it, you need very clean view on three parameters:
1. Where are you now? How large (in LOCs) your start? Is your project already loose coupled or, it is monolith?
This is important, because it is much easier if you could isolate small parts and rebuild them separate, while all other code old.
2. How should behave end point of project? Monolith or micro-services, or something else?
3. How large budget you have, and how many "man-hours" per month possible?
So to do all these in some predicable time and budget, you need project in waterfall style, but sure, you could use waterfall part as overall strategy, and do all things with agile (trying to stay nearest to waterfall milestones).
In real life I seen such migration, unfortunately unsuccessful from project manager view. First, they tried to made new version on same platform, but project just bloated without much success; second, they decided to change to totally other platform and rewrite all code from scratch (on other language), and this time got success.
Unfortunately, this is huge project, and to do it, you need very clean view on three parameters:
1. Where are you now? How large (in LOCs) your start? Is your project already loose coupled or, it is monolith? This is important, because it is much easier if you could isolate small parts and rebuild them separate, while all other code old.
2. How should behave end point of project? Monolith or micro-services, or something else?
3. How large budget you have, and how many "man-hours" per month possible?
So to do all these in some predicable time and budget, you need project in waterfall style, but sure, you could use waterfall part as overall strategy, and do all things with agile (trying to stay nearest to waterfall milestones).
In real life I seen such migration, unfortunately unsuccessful from project manager view. First, they tried to made new version on same platform, but project just bloated without much success; second, they decided to change to totally other platform and rewrite all code from scratch (on other language), and this time got success.