Strategies for modernizing legacy codebases incrementally, from characterization tests and refactoring to gradual framework upgrades.