A Legacy You Don’t Want to Inherit
Today many companies are still dogged by their so-called legacy applications. The past decades hundreds, if not thousands applications were developed with the use of now outdated programming tools. The use of these outdated tools has resulted in poorly supported business processes.
In our rapidly changing world companies need to be able to adapt their business processes quickly. The main incentives for this being the integration of business processes, business process redesign because of mergers, and the selling-off of parts of companies. Most business processes have become accessible to customers and third-party businesses by means of web applications.
In case of legacy applications this has not been easy because the structure of most legacy applications isn’t compatible with today’s (internet and mobile) technology. Moreover, after decades of changes and fixes the internal workings of many legacy applications have become almost undecipherable and the usually outdated system documentation exacerbates the situation too.
To add to the problem suitably experienced personnel with sufficient knowledge of obsolete programming tools are hard to come by. The last few years various specialist IT journals reported a shortage of qualified IT personnel. European Commissioner NeelieKroes fears also a great scarcity of app developers in the European ICT market.
For outdated programming tools this problem is bigger still because the reservoir of suitable employees is not going to increase – which company is going to train its personnel in any other language than for example Java, C#, Python, PHP, Ruby or Scala? Moreover, many developers of legacy applications together with the employees who service these applications will retire in the not too distant future. It is a safe prediction that the shortage of employees capable of operating these outdated programming tools will become much bigger than currently is the case.
To solve these problem, we should automate the automation. In my blog ‘Wanted: The Software Industry Architect’, I plea for the appliance of Model Driven Development (MDD) practices to increase software development productivity. Moreover, the same MDD concepts and practices can be used to transform the legacy code to a service-oriented architecture to be deployed in a PaaS / SaaS platform.
To summarize the approach: The legacy application is analyzed and any obsolete code is eliminated. Next the more interesting parts of the application such as data entities and business logic are identified and transformed to a more abstract higher level model. This model is optimized which means that new functionality is added and the model is tailored to make the application suitable for deployment in the Cloud. The models are documented using state-of-the-art tools in a PaaS environment. It is this model that, on the basis of MDD principles, is used to newly generate and transfer the application to a Microsoft Azure platform or Java Cloud platform.
Maybe this all sounds very utopian to you – deduce high level models from legacy software applications and generate from these models new Cloud applications. So, it will be worthwhile to follow the research project ARTIST in which a consortium of ten leading academic and industry organizations are exploring the appliance of MDD for legacy transformation to the Cloud.