Refactoring – Optimize/enhance current codebase, infrastructure, processes, skills. Small to medium effort (less than 6 months).
Reengineering – Migrate to new technology/architecture by rewriting code, significant change in process or adoption of new process, new skills coaching for current resources. Medium to high effort (6 to 18 months).
Re-hosting – Change the underlying platform in addition to reengineering. High effort (more than 18 months).