Much like a compiler, the migration engine analyzes source code and builds complex symbolic representations in order to identify coding patterns and objectives. From that representation, a code emitter generates new, clean source that does not rely on binary runtimes.
Symbol names and comments are preserved; and no new logic bugs are introduced, reducing the cost and time of migration.
Not all legacy code is worth saving, but some is: code with enduring business value, containing well-exercised algorithms and business logic. Rewriting that code is fraught with risk: some serious analyses place the failure rate of new software development near 70%. Automated migration lets you move functioning apps to modern languages and platforms faster, cheaper, and with far less risk than a rewrite.
Once migrated, technical debt can be paid down through practices like refactoring, encapsulating, and exposing service layers. These apps can provide continuous value to the organization without the delays rewrites can cause.
Since automated migration can't introduce new bugs into existing code, the overall savings alone compared to debugging fresh code can be dramatic. On average a developer will create 10-50 bugs per 1000 lines of code written, and some industry studies put the cost of finding and mitigating software defects at 80% of the total cost of a project. Additionally, automated migration preserves object names (variables, methods, classes, etc) as well as comments so developers familiar with the legacy code will be able to easily get up to speed on the new application.
These factors alone make the TCO for automated migration much lower than rewriting applications from scratch.
Here's a flowchart that illustrates the Mobilize methodology: