Anyone who has been developing IT systems for a long time, in some cases whole decades, knows how maintaining software written years ago can turn into a nightmare after a certain period. So what can you do in such a situation? Helmes has been rehauling business-critical legacy software for more than 30 companies. Here’s what we have learned from the experience.
First, we can say that the problem of legacy software is universal and not tied to any specific sector or type of enterprise. Instead, it’s an inevitable evolution in companies that have been on the market for a while, causing them to struggle with very similar challenges.
Secondly, the problems caused by legacy systems tend to fall into two main categories:
- More often than not, only a few colleagues in the organization know how to maintain the legacy software, and it’s becoming risky and expensive for the business to depend on them.
- Outdated technical systems will eventually prevent the company from growing its business and launching new services. For example, you cannot introduce a new self-service application for your customers since the existing data is in an old system; it would be cumbersome and expensive to export data from there.
How did we get there?
These problems do not mean that, at some points, mistakes were made, but rather they are the outcome of a natural process. Over time people leave the company, and you may be struggling to replace them. Developers as a species are conditioned to chase new projects and don’t find tending to existing software equally appealing.
At the same time, the original team members still onboard may lack the necessary competencies or will to modernize the systems.
Quite often, the final straw that forces a company to address the situation is a business opportunity lost due to constraints of the legacy system. Be it an expansion to new markets, collaboration with other companies, or migrating to a cloud, you cannot seize the opportunity because your system cannot handle it. So, you realize you are stuck and need to do something to change the status quo.
Why do you need to do anything?
The legacy systems often keep functioning reasonably well until something unexpected happens and you need to change your approach. There are different challenges that can affect us.
- Original technical people leave, and maintenance is needed
- Data is needed from the legacy system, and no capabilities exist
- Regulation like GDPR happens and the system is not compliant anymore
- Changed business requirements mean that new development is needed
- Technologies become so outdated that they pose a technological risk
Maintain, rebuild or take the middle way?
What are your options in such a situation?
Broadly speaking, there are three.
- First, you can maintain the status quo and capitalize on the old system in the best way possible. It may seem like the safest option, but it will come with considerable risks and costs.
- Second, you may decide to ditch the old system and build a new one from scratch. While appealing, this solution is typically very costly and time-consuming, often requiring years of development. Moreover, it possibly entails even more risks than the first option. Successfully migrating to a new system may prove too difficult a task, and you may end up maintaining two systems and teams.
- Third, you can choose to modernize the existing legacy systems to keep up with the times or take the so-called evolutionary approach. When building a new system seems too expensive or risky, it’s often the preferred way to navigate the situation by companies who want to get out of the impasse.
Helmes’ legacy software team connects the past to the future
At Helmes, we have created a specialized team for helping companies to modernize their key software systems.
All our team members have extensive experience in software development and have been exposed to both “the Old World” and “the New World.” We have worked on more than 30 legacy software modernization projects, and understand how they are designed and built. At the same time, we are familiar with the latest tools and trends – like microservices or migration to the cloud – and can combine both sets of knowledge.
We know how to approach modernizing legacy systems because we understand how these systems work. At the same time, our command of the latest development practices allows us to identify the strategic parts of the system that need to be updated and plan and implement the necessary changes.
As our team members like to say, we are not only okay with working on legacy software, but we have fun doing it.
We know from experience that if approached with care and enthusiasm, modernizing legacy software can bring great results and help businesses move forward.
How does it work?
What is the common approach to legacy?
There is none.
Each story behind the legacy systems is different and therefore the fix differs as well. We prefer the gradual modernizing approach by creating layers of microservices.
The 4-step approach provides the general landscape to give some structure for getting to a strategy and kicking off the technical tasks.
Mapping the existing situation
As a first step, we need to familiarize ourselves with the system, the company’s business and customers, and the issues that need fixing. Besides talking to the team, important information comes from the backlog of tasks or technical debt, which allows us to see if any immediate crisis needs to be resolved before moving forward.
We believe that investigating the situation is best done hands-on. So, as quickly as possible, we get down to actual tasks, taking care of any immediate tickets that need to be handled.
After mapping the situation, we suggest improvements to the system or to the development process that would allow you to solve the issues, for example, deploy faster or launch new services.
We often use a peer architecting method during this process, where two people work on the same code and discuss and come up with solutions together.
Whenever we propose changes, we provide time and budget estimates and explain how they will benefit the business, for example, how the changes will improve speed, delivery, or user experience, so that you can calculate value versus investment.
Agreeing on the roadmap
As a third step, we pick the common strategy together. Some common strategies include:
- Creating modern layers around legacy for new features
- Step-by-step dismantling of legacy while building a new solution in parallel
- Bypassing legacy part for data loading by using modern data extraction tools
- Continue maintaining the legacy “as is”
Let the actual work begin!
Successful implementation depends on close collaboration with the client’s business and technical teams. For this purpose, it’s essential to have regular meetings and a joint communication channel like Slack or Teams, where everyone on the team can always reach out to each other to move towards common goals.
From then onwards, the legacy projects fall into step with Helmes standard development model SuccessLine.
Want to modernize your legacy systems? We’ll make it happen!
We have witnessed first-hand that modernizing legacy systems can be a cost-efficient way for companies to eliminate risks caused by outdated software and seize on new business opportunities.
All it takes is a willingness for change and the necessary know-how.
Helmes has been developing custom software for customers all over Europe for more than 30 years. Our clients include fast-growing startups, multinational companies in the telecom, fintech, logistics, healthcare, and other sectors and public institutions.
If you are looking for a development partner to help you modernize your legacy software, we’d love to hear from you.
Check out our services or drop me a line.