Do you know why banks are still running COBOL on new, old architecture, IBM mainframes? Sure, it’s in part due to risk aversion, ignorance and inertia. But it’s also because, if in the end the result is the same, then the tech stack doesn’t matter.
I’ve done extensive consulting for financial firms, including mainframe-replacement projects, and that’s not the reason. There are two reasons: banks regard IT as a cost center, so they systematically underinvest. They never budget for lifecyle maintenance, they just kick the can down the road as far as they can. In addition to that, hardly anyone who wrote that COBOL code is still alive, and when it was written in the 1970s or 80s, the requirements and design were seldom documented, and after decades of code maintenance, they’re no longer accurate anyway. So to replace that COBOL, you have to reverse-engineer the whole business process and the app that embodies it. And you can’t do like-for-like replacement, since a lot of the business process is actually workarounds for the limitations of that legacy system. And it’s even worse than that: sometimes that COBOL has some custom IBM 360 assembler behind it, and nobody remembers what that shit does either, and finding people who know that, or CICS, or the quirks of ancient DB/2 versions, is even harder than finding someone skillful who can write COBOL. So until there are new requirements, usually new regulations that cannot be weaseled out of, they let that sleeping dog lie.
I’ve done extensive consulting for financial firms, including mainframe-replacement projects, and that’s not the reason. There are two reasons: banks regard IT as a cost center, so they systematically underinvest. They never budget for lifecyle maintenance, they just kick the can down the road as far as they can. In addition to that, hardly anyone who wrote that COBOL code is still alive, and when it was written in the 1970s or 80s, the requirements and design were seldom documented, and after decades of code maintenance, they’re no longer accurate anyway. So to replace that COBOL, you have to reverse-engineer the whole business process and the app that embodies it. And you can’t do like-for-like replacement, since a lot of the business process is actually workarounds for the limitations of that legacy system. And it’s even worse than that: sometimes that COBOL has some custom IBM 360 assembler behind it, and nobody remembers what that shit does either, and finding people who know that, or CICS, or the quirks of ancient DB/2 versions, is even harder than finding someone skillful who can write COBOL. So until there are new requirements, usually new regulations that cannot be weaseled out of, they let that sleeping dog lie.