Jim Gwinn, CIO for the U.S. Department of Agriculture's Farm Service Agency, faced that type of situation. The USDA's System/36 and AS/400 systems run Cobol programs that process $25 billion in farm loans and programs. "We have millions of lines of Cobol, and there's a long history of it being rewritten," he says. "It has become increasingly difficult to change the code because of the complexity and the attrition of the knowledge base that wrote it." That's a big problem because laws that govern farm programs change every year, driving a need to update the code to reflect those changes.
Gwinn hired consultants from IBM, who concluded that rewriting the programs in a different language or rehosting them on a distributed computing platform would be complicated and costly. But the System/36 hardware had to go, so Gwinn decided to bite the bullet: The FSA will move off of its end-of-life mainframe systems by rewriting some of the code in Java and replacing the rest with packaged software from SAP.
But Gwinn says he'll miss Cobol. "It has been very stable and consistent, with little breakage due to code changes, which you see with Java-based changes," he says. "And in a distributed environment, you have to balance your workloads a little more carefully."
Going for a Rewrite
The anticipated exit of institutional knowledge and the resulting shortage of Cobol programmers were also primary drivers of NYSE Euronext's decision to re-engineer 1 million lines of Cobol on a mainframe that ran the stock exchange's post-trade systems. While Cobol was dependable, it wasn't viewed as maintainable in the long run.
Steven Hirsch, chief architect and chief data officer at NYSE Euronext, cites the need to make changes rapidly as another reason the stock exchange abandoned Cobol. "Ultimately, the code was not easily changeable in terms of what the business needed to move forward. We were pushing the envelope of what it took to scale the Cobol environment," he says.
So NYSE rewrote Cobol programs that run its post-trade systems for Ab Initio, a parallel-processing platform that runs under Linux on high-end Hewlett-Packard DL580 servers. The new environment allows for more rapid development, and the rewrite has eliminated a substantial amount of unnecessary code that had crept into the original Cobol programs over the years.
If a business's Cobol code doesn't need to change much -- as is the case for many batch and transaction processing programs -- then the code can be maintained on or off of the mainframe indefinitely. But that wouldn't work for NYSE Euronext. "We are a rapidly changing business, and we needed to move faster than our legacy code," Hirsch says.