Mainframe & Legacy Application Modernization | CSC Case Study
Award Winners: James M. Fenner, Antal J. Juhasz, Ajay S. Chaudhari and Victor Doyle
The Minnesota State Retirement System (MSRS) manages six defined-benefit retirement plans for over 100,000 state employees and retirees, issuing over $50 million in benefit payments monthly. CSC was engaged to rewrite the legacy COBOL/DB2 retirement systems that had been running on a mainframe hosted by the state. CSC helped redefine the MSRS business processes by streamlining, automating and making consistent many manual tasks. We rapidly designed and developed new online and batch system components using open source software and continuous integration and delivery techniques to replace the legacy COBOL systems incrementally without interrupting MSRS operations.
Although a number of batch applications have been redeveloped with Java, many formerly batch features are now online. These new online features have been added and integrated alongside existing screens; the new architecture co-exists with the old in the same application. The solution includes an adaptable integration interface to financial institutions and an elegant, extensible user interface that has saved time in developing subsequent releases.
It used four techniques to accelerate the modernization project and meet client commitments:
- created standard pre-configured virtual machines to onboard new developers in hours rather than days
- created portal-like dashboards of work in progress that users can customize to keep track of what’s important to their jobs
- used continuous integration and testing as part of overall quality management
- used virtual machines mimicking the production environment to keep the continuous automated testing on schedule
The team chose technologies and architectures that are well-proven and have large user communities, which should make it easier for the MSRS team to hire staff. Tools include the 960 Grid System, Tiles 2 and controls from the JQuery project; the Spring Framework with Spring Security and Spring Integration; JUnit unit-testing framework with the JodaTime library (used largely for faking system time) and the Mockito mocking framework; BeanIO for declarative file I/O; Jasper Reports to produce online output formatted for printing; and functional programming and other features of the Google Guava library.