Incremental Migrations
addyosmani.com
addyosmani.com
In my experience phased migrations are never completed. Also some people often become unhappy about the order of steps taken. Some will wish a faster migration, others want to push it as far as possible into the future, and in the meantime you have lots of arguments, which parts still need maintenance. So I prefer the pilot, as it combines the strengths of the phased and the big bang methods.
You can mix those things, but migrations are hard so you won't find a silver bullet.
Else you have some engineer saying the very reasonable thing of "we can do the migration incrementally because that'll totally work" and what you wind up with is the easiest part migrated and the gnarliest part not migrated and some half and half monster that persists forever. Until, and there must be an XKCD about this by now, brilliant engineer number 2 comes along year later and laments the half finished migration and decides we can finish it. But not by finishing the original migration, no, by starting a brand new one. They migrate the remaining easiest part of the original code and the easiest part of the original migration, and are so burnt out from all the complexity and general clusterfuck it has become that they quit the company leaving the future maintenance programmers with a panic attack when their boss comes to them and says... sorry to dump this on you but we found an email that says we need $steaming_pile_of_crap_you_spend_your_days_cursing to be compliant with $some_new_government_regulation_you_cant_push_back_on by $some_date_you_know_you_cant_hit. The kicker? They got the email 11 months ago but just found it now that the IT is leaving and was cleaning out his inbox.
Source: brilliant engineer number 2
Also, you should budget 25-50% of your project time and effort on getting the legacy system "ready" for a migration.