During 2012 I migrated a Xpand and Xtend1 code base to its successor Xtend2, today simply called Xtend. During the project I made the folllowing experiences.
- First try to clean up the old code base a little before starting to migrate! Small stuff will help already.
- Talk to the developers involved in the project and ask for stuff that isnt used or needed anymore. There will be planty. And wasting time on this is just nonsense.
- Try to find duplicated code.
- Try to reduce the dependencies between classes, modules etc.
- Always have a running system while migrating. Use an adapter for example to iterativly replace the old system step by step with the new one until the migration is 100% completed.
- Do small noninvasive changes. Migrate the smallest file with smallest possible impact first.
- Write many tests to prove that the behavior of the migrated code is the same.
- Don’t do any refactorings on your way!!! Don’t do it! First successfully complete the migration and write lots of tests. Only afterwards do refactor the migrated code.