Some of the IT budget must go towards innovation and CIO's around the world have acknowledged digital transformation as a key challenge. On one hand, you will need to support existing software, and on the other hand you will need to innovate. This is the role of Bimodal IT. The two modes of delivery in Bimodal IT are mode 1 and mode 2. Mode 1 is about stability and supporting existing systems. Mode 2 is about innovation and exploring new possibilities.
At some point in the business's digital transformation, you will likely be faced with an application modernisation project. This project would be considered legacy software and has been maintained under the mode 1 banner, but has become at risk due to market changes or loss of internal resources. A legacy system migration legacy can occur under the mode 2 banner. Legacy modernization is an opportunity to innovate, so get on your marks, because the race is on.
From here there are lots of options to consider, though they generally fall under three broad approaches:
Do nothing: Ignore business trends at your own peril
Uncover: Leave the intellectual property (IP) as is and use a platform to uncover
Rewrite: Start again on a new technology stack
The do nothing approach is the elephant in the room, ignoring the obvious. The other 2 options are both legitimate. So what is the best way to decide? The answer can be revealed by considering the intellectual property (IP) in the legacy application. Consider if the IP is so specialised that rewriting it would be too costly, for example something like a complex mathematical simulation. If it is, then the uncover approach is good. If the IP could be rewritten or the IP is how a problem was solved, for example, something like a workflow that helps a business sector. Then the rewrite approach is good.
The pitfalls of the uncover approach is to simply replicate the legacy user interface (UI) in a browser, as many opportunities to innovate would be lost. Firstly, one of the biggest drivers of digital transformation is to increase customer satisfaction and today's users expect a great user experience (UX). Secondly, putting more code on top of legacy systems is compounding the actual legacy problem. The true IP of the legacy system should be identified and the rest of the application deprecated. If it is left in play it will niggle at the business for years to come.
Now, it is the actual model that is the key to the success of the project. Academics everywhere have been very busy researching, but if you have not heard of the work yet it falls under the banner of Model-Driven Engineering (MDE) and Domain-Specific Languages (DSL). In essence, the idea is to work at a higher level of abstraction than the code. Then use robots (or code generators) to generate large portions of the target. This creates all sorts of efficiencies.
This means that in steps 2, 3 and 4 in the above diagram, the goal is to create the models of the target application. Then in step 5, the new cloud application can be generated. Finally for step 6, since the first step was to start at the legacy database and MDE is used, there will be a path for the data migration for the legacy customers to the cloud.In summary, a cloud migration project is a serious undertaking. With many examples of failed cases there is no doubt why the topic can send shivers down your spine. There is still some good news for you! The software engineering community has been innovating and there are now some very good and viable options that can minimise the risk involved.