1. A method of implementing a data migration project for migrating a set of application data from a source data storage system to a destination data storage system, the method comprising: receiving, at a controller, a set of data migration rules; receiving, at the controller, a set of scheduling consideration; comparing the set of data migration rules against the set of scheduling considerations; determining whether conflicts arise between the set of migration rules and the set of scheduling considerations based on the comparison, and generating a migration schedule for migrating the set of application data based on the determination.