Case Study - Modernizing Legacy to Microservices and Cloud

Background


A company that started in the 1970’s providing insurance software for risk assessments to insurance brokers as well as financial institutions. The primary technology was Cobol and the system was standalone. As the world evolved around them, the limited integration in an extensively connected software applications ecosystem was a problem and so was the massive codebase in legacy technology. It was a terminal case of modernizing of definitely be gone scenario.


What Happened


Careful and lengthy analysis was conducted to determine short, medium, and long-term risks. A careful assessment was done on both the commercial side which resulted in a new roadmap. A very deep analysis was conducted on the codebase and current architecture.

It was clear that the opportunity ahead of them entirely lies at the mercy of the modernization effort. The talent in place has limited capacity and skill in the new technology ecosystem. The product quality was impeccable and has been tested for years.


An initial effort began with an ambitious exploratory project to evaluate and determined that it would potentially consume 150 man-years to complete. The challenges were humbling and the big question was how.


The decision was made that the quality of the code was too valuable and the effort to re-create was too risky. The dwindling number of developers for the legacy technology was also an imminent threat. This was resolved by a genius plan.


They devised a plan to create a think input/output API-like layer on top of the existing quality code. The hypothesis is that if the code quality is very solid, it can be wrapped and locked to avoid introducing new bugs. The middle layer would allow newly created services to interact with the core without ever having to change it for the next 10-15 years, but have the options to slowly replace modules when needed incrementally. The R&D team would be mostly preserved to develop that middle layer, maintain the product with the eventuality of natural attrition.


In addition, they allocated a parallel R&D organization to develop new modern services in parallel and consume the old high-quality code through the middle layer.


The successful journey allowed the company to keep innovating, leverage more than two decades of quality code, and offer a modern feature-rich ecosystem of services with the end-to-end integrations needed by the customers.


Key Takeaways

  1. Well-thought-out incremental plan and risk assessment

  2. A clear vision developed based on the market needs which informed the plan

  3. Solid architecture plan, leverage high-quality code

  4. Leveraging the current organization to build certain components and maintenance