Modernize to invest in Innovation
Despite what the TIOBE Index seems to indicate with regard to the ranking of COBOL among other programming languages, it does not mean that it is going to go out of favor for quite some time to come. Backend systems of large banks of the type of Bank of America, Citigroup etc. still rely primarily on their Mainframe infrastructure. In many countries, Mainframes are the backbone of systems that run railways, air traffic control systems, govermental systems etc. Infact, it is estimated that there are two hundred times more Cobol transactions, than Google searches in the world - no wonder that, because mainframes is still what is running businesses all over the world even today. What that also means is that there are indeed a lot of 'legacy' systems that are still crucial to businesses today.
Businesses in the current economic climate need to innovate to remain competive and hence there is the urgent need to free up maintenance time, to enable innovation and remain relevant in competition. It is the volume and complexity in these systems that make CTOs pessimistic about taking the chance to modernize such systems so that there is less energy spent on maintaining them. Applications are not actively modernized or retired and thus increasing maintenance expenditure, resulting in reduced innovation. Forrester estimates that 70% of the IT budget is typically locked in maintenance and support. Decades of investments on applications and infrastructure has resulted in reluctance towards adopting change to modernize, which in turn results in diminishing returns on those investments over the years. Infact, the joke is that people are retiring faster than applications are.
It is thus important for companies to think wholistic rather than adhoc to really maximize business value. Such companies need to take an inventory of applications, place them on an application portfolio map and then use dashboards to gain insights to allow deciding whether to retire, retain (consolidate, upgrade, rehost, convert) or replace(rewrite, purchase etc).
Interestingly, the existence of legacy and complex applications has spawned opportunities in developing application portfolio management applications and tools that analyze legacy systems. Even in a case where retiring or replacing is not an option, retaining existing applications also means the need to upgrade corresponding support tools - to new graphical user interfaces for developers, to initiatives to bring Cobol into the "cloud"etc, anything that could 'upgrade' the system to benefit without rewrite. COBOL may not seem to appeal to the current generation, but the fact is that there are even gaming companies (like this one in Brazil) that have in the recent past built systems around Mainframes.
The amount of code that has been written over the last decade is considered to have tripled, over what had been written earlier - you can imagine the amount of 'legacy' we are due to leave behind for the next generation to maintain - unless there are effective processes and tools in place to analyze and retire what is not worth maintaining, or modernize tools around existing systems.