Going into a migration, it’s easy to be optimistic. Crawl the live site, crawl the staging site, build the URL map, monitor the results. Four steps, how hard can it be? In reality it’s almost the opposite. Content isn’t ported over correctly. The client doesn’t whitelist your IP. And changes get made up to the very last second, so the URL map you spent a week on is already out of date by launch day.