There are many factors. Some in my experience which decided the success of a legacy transformation initiative are:
- One important factor for success is to have a clear idea of what would be done with Legacy systems
- The first thing to decide is whether the application is to be retained or retrenched. If the application is to be retrenched then it only remains to be decided whether we can reuse some piece of code or not.
- If the application is to be retained then it can be retained as a standalone or interfaced with other new applications. Interfacing can be through various techniques such as web services or through simple data interfaces.
- If the decision is to rewrite using code translation then the next important factor is decide the architectural match. For code translation will never ensure that the architectural objectives of the new platform. In fact this single factor will usually result in code being entirely rewritten.
- If the legacy application is to be retained in a standalone mode then it not much of a challenge except of course there could be issues in interfaces with other applications. Usually it would very difficult to find a legacy application that can be truly standalone.
- Legacy retention is usually addressed by coexisting with other application and having a seamless interface with them. The factor here is to decide what method of interface to be used. Mostly this is done through a mix of web services, queues, web enabled front ends etc.
- Some other factors which are equally important and play a critical role in decision making are
- Skill set availability
- Application documentation currency and availability
- Response time
- Cost of running the legacy application
- Alignment with business