With all the new technologies that are constantly emerging, most of the software that was developed in the past years needs to be maintained or even fully re-developed with a modernized and enhanced technological stack. The pressure for financial services institutions to innovate is even greater and it is no longer a question as many fintech startups keep emerging. The legacy system modernization, however, is not a trivial task and it presents several challenges that can be a bottleneck for moving forward with innovation. In this article, I will share how we transformed a legacy system into a modern application for one of our clients in the financial services sector.
OVERVIEW OF THE LEGACY SYSTEM
The solution aids in the process of annual financial statement reporting for different funds. The major tasks in this process include preparation of internal review, filing of audit working papers and financial statements to auditors and governmental institutions, reporting, board of trustee examination.
When Accedia took over the development, the application was still small with not so many functionalities. Initially, it was not planned that it would evolve into such a complex system as it is today. For almost 10 years of development and maintenance, the scale of the application is now hard to imagine.
Currently, the whole system is composed of 3 desktop applications, which have different functionalities and purposes. Serevral services are also working in the background which helps with processing the data and automating the scheduled jobs.
During all these years, several upgrades of the technologies were applied but, overall, the technological stack became outdated and was slowing down the development. Not to mention that most of the operations, happening on the application, were quite slow. Therefore, as a technology partner of choice, Accedia took over the modernization of the financial institution’s core system.
At some point in time, even the well-developed applications must be modernized since technologies that were used during the initial development are becoming legacy and lower the overall performance. This also reflects on many factors like maintenance costs, compatibility issues and lack of understating, as well as security issues. Yet, it was our job to understand more about the client’s needs by having open discussions with them. It was essential to help them identify the main business priorities of the revamp.
Even though the application had some performance issues it was still capable of doing the work that it was designed for. Some of the main challenges were:
- The outdated technological stack was extending the time needed for developing new functionalities.
- Issues with the way the data is stored (XBRLs) was slowing it down massively. The process of saving the data was dependent on a 3rd party library that was out of support and could stop working at any time.
- Report generation is one of the key functionalities of the application and it was also slowed down by the data structure that is used for storing the data.
- The personnel working with the desktop application was dependent on the machines where the software is installed.
- The monolithic application required a lot of time for new deployments to happen and make the new functionalities or fixes available.
- The UI/UX was old-fashioned and did not meet the growing customers’ needs
THE STEPS WE TOOK TO MODERNIZE THE LEGACY SYSTEM
Planning on such a massive transformation is a complex task. It requires a lot of time and there are many factors that should be taken into consideration. We tried to keep it simple by breaking the whole process into more manageable tasks.
THE LEGACY SYSTEM MODERNIZATION STRATEGY
To choose the modernization approach with the highest effect and value, we first needed to create a solid plan. The process included ongoing communication with the client and was split into the following tasks:
- Going through the legacy system to make a draft with the key functionalities and possible bottlenecks.
- Preparing an architectural design for how the new system would be developed and integrated into use in the company.
- Identifying possible UI/UX improvements that would bring fast return on investment.
- Preparing estimations for each section that is presented in the draft. At this phase, the whole team is involved, as it is important to get it as accurate as possible.
- Presenting the idea to the client.
Going through discussions at each of these steps was crucial because the business knows the best what they need from the system. On another hand, the technology stack and the architecture must be communicated with your organization as you could have already possessed an established infrastructure that is more suitable for the new project. This means that we had to be agile because the organization proposed using technologies which they were familiar with. We are always trying to point to the best solution without considering the constraints of the legacy system. We were focused to propose the best scenario for the client’s individual case.
THE ACTUAL LEGACY SYSTEM MODERNIZATION
Once we had established a solid plan for the legacy system modernization, it was time to start with the development. When you have a detailed plan to follow it is easier to go through the steps and achieve your goal. These are just some of the main optimizations that we introduced:
The microservice architecture was introduced to split up the monolithic legacy application into more manageable and maintainable services. Benefits for the client includes easier modifications and the replacement of different modules. Updates on the application require much less time.
After removing the XBRLs(XML based format for financial data) we introduced new simplified way to store the data of the application. This reduced the database size and most importantly optimized the performance of the application, making it more than 10 times faster.
Modern user experience
A fully redesigned application was created to ensure consistency across applications and respond to the new business and the user’s needs. To build the new user experience we followed a structured UX design process.
DevOps best practices
Implementing continuous integration and deployment was another key part of the modernization as the applications constantly evolve with new functionalities being requested most of the time. Having an easy way to manage and deploy changes is important.
In short, we kept the existing core functions and data, while refactoring the code but substantial modifications of the architecture were made. The whole system is rebuilt from scratch and this results into a completely new solution which is based on the old one.
To wrap up
Modernizing legacy systems is an integral part of the lifecycle of enterprise systems. At the same time, choosing the most efficient approach for your financial institution requires careful consideration. Every change should be well-planned and be compliant with the requirements of the client. When you have a clear idea and a descriptive plan to follow even the most complicated and outdated systems can be transformed into modern and high-performing applications.
Learn more about our experience in Finance and how we can help you speed digitalization and gain a competitive edge.