This is an interesting topic to discuss. What are the pros/cons of each approach? In what circumstance does the preference change? Etc... too bad that this analysis is left as an exercise to the reader.
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.
Pilot migrations get need to keep the entirely of both systems operational at the same time from the parallel migration, and the need to rewrite large amounts at once from the big bang approach.
You can mix those things, but migrations are hard so you won't find a silver bullet.
The only way to do a migration is to have it be an actual business priority with a stakeholder at the executive level pushing for it's completion.
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.
No offense to the brilliant engineers out there, but after going through many migrations in my career, I believe that brilliant engineers are the last people you want anywhere close to the project.
Also, you should budget 25-50% of your project time and effort on getting the legacy system "ready" for a migration.
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.