How information is used and what information is needed will change during the design and development of the system. The most efficient way to do this would be to finish the design and build before beginning data migration.
However, since data migration is often the longest activity in the implementation process, adopting this approach could significantly extend the time required to go live. The solution is to have data and functionality work together in a tightly coordinated manner.