As discussed in Part 2, the black box modernization strategy is popular and has architectural limitations and negative side effects on IT processes, but despite the potential shortcomings, this form of providing ‘modern’ computing features without actually modernizing applications has allowed many companies to extend the life of legacy systems. However, as the gap grows between new and old technologies – and the costs grow of maintaining legacy technology in parallel with newer platforms for wrapper applications – this strategy loses its potential to provide any competitive boost.
In our research we find that organizations that have waited until now to modernize are risk averse and are highly satisfied with their existing applications. What makes sense to them is a two-stage approach:
- Port the existing application to a new platform.
- Incrementally re-engineer, restructure, redeploy and extend applications to take advantage of the new platform capabilities.
A new platform in this context is Internet (both in and out of browser), Windows and UNIX, along with the de facto standard environments and frameworks: Visual Studio, .NET, Eclipse and JVM.
Strictly speaking, it is not necessary to port the application to the same language. The essence of the porting activity is to achieve something of (nearly) the same structure that produces functionally equivalent results when it executes. There are many ways of achieving this including code conversion and application ‘relearning’. Once this base is established, you can continue in several directions:
- Re-engineer an application’s components using current technologies like HTTP, HTML, CSS, SOA, web services, RESTful web services; change from indexed files and legacy network databases to modern relational databases; deploy as .NET or JVM managed code.
- Restructure using static analysis and ‘slicing and dicing’ techniques to identify and extract business transactions and objects and create object-oriented code built around business objects; share objects and services.
- Extend functionality with completely new capabilities such as mobile access.
- Re-deploy in virtualized environments and The Cloud.
There is no set order to the stages after porting your application to a modern platform. Your next steps will depend on your business priorities. The key to this strategy is the existence of a target platform that is easy first to port to and then supports all the stages that follow.