The pace of innovation in software development is not just accelerating—it’s sprinting. Technologies that were on the bleeding edge yesterday are today’s relics, swiftly eclipsed by newer, more agile solutions. This rapid evolution turns cutting-edge applications into legacy systems almost overnight.
Alongside this, businesses are in a constant state of flux, grappling with evolving market demands, regulatory landscapes, and global challenges. They demand software that doesn’t just keep up but anticipates and adapts to their ever-changing needs.
With the arrival of Generative AI, is there a route to using it when updating the legacy software that so many businesses have?
Keeping up with technological change is almost impossible. At present, there is a new version of .Net every year. And don’t get me started with JavaScript libraries, where barely a week goes by without a new library promising to revolutionise the way web applications are built! Businesses that have built software to manage various processes simply don’t stand a chance.
The term legacy software can be used to define any software or application that continues to be used past its prime. Reasons for holding on to such software range from it still performing business-critical functionality to concerns about the cost of redeveloping it even though it no longer fully aligns with how the business works or wants to work.
The longer a business waits to update legacy software, the greater the challenge is. Often the original technologies used to develop the software have been superseded by new tools, and the original developers are no longer available. This can make it challenging to find developers to maintain it. Coupled with the fact that development practices have changed, there may be a fear of making changes which inadvertently cause problems. This leads to the widely quoted statistic that 60% – 80% of IT budgets is regularly spent on maintaining legacy software.
Untangling a system that has been developed over many years and planning a route to modernisation will always require careful thought and analysis, but once you have a plan, AI tools now offer ways to save time.
Tools like ChatGPT, GitHub Copilot and Resharper AI Assistant can take code written in an old language and generate an equivalent in a modern language. You can ask them what a piece of gnarly code does, and they will explain it to you, and then if you want they will generate some tests for it.
Increasingly AI tools are integrated into development environments. Having been trained on many thousands of codebases, they can quickly spot when a developer is trying to write something that has been written before and will make suggestions, potentially saving vast amounts of time.
Most business applications are built around a database. A quick search online reveals a number of AI tools for database design and query optimisation. Besides the big players like Microsoft and Oracle, it will be interesting to see which of the various offerings gain a big following.
As with any project, planning is vital before using AI to help modernise a piece of legacy software. Ultimately Generative AI is just another tool to help get the job done.
Before starting, it’s vital to engage with stakeholders to understand how the software supports the business now and how they would like things to change. A common pitfall is simply reproducing the existing system but using a new technology. Undoubtedly users will have developed workarounds for areas they feel the system is lacking. A modernisation project is the perfect time to ask why things are done as they are and whether improvements can be made.
Seeing the current developers as part of the legacy system may be tempting. However, they will have a wealth of knowledge about the business and why certain things were implemented the way they were. Quite probably they will have been itching to overhaul the system, and involving them early on is a great way to help them learn new skills while also benefitting from their knowledge.
Finally, it is crucial to develop a roadmap identifying the general order in which parts of the legacy system will be updated. This may involve temporary solutions to problems which are discarded once the modernisation is complete. Assuming the system isn’t very modular, this is an excellent opportunity to bring in modularisation and embrace modern practices like CI and CD, which aren’t always possible with old monolithic systems. This will have the side benefit of helping to future-proof the system as the business continues to evolve.
Overhauling a legacy system is both a challenge and an opportunity. The challenge is finding the right tools and planning how to make the change with minimum disruption to how the business operates. The opportunity is to help drive the business forward by delivering software which is adaptable and ready to face the future.
Generative AI is rapidly providing tools to help in that process, from writing code and automating tests to designing databases and optimising queries. If you are not already using these tools, it’s time to start experimenting to see what they can do for you.