‘Changing tires on a moving car’: A look at software modernisation

15 Mar 2024

Image: © Martin/Stock.adobe.com

Endava’s Victor Chircu discusses the perils of software modernisation, the pitfalls of updating legacy tech and how AI could aid the process.

As advancements in today’s tech landscape continue to sprout up on a regular basis, a concept that is becoming ever-important in the field of software is the process of modernisation.

After an extended period of use, software can be become extremely outdated in a business landscape and in order to stay up to date, businesses must consider software modernisation.

But what does this actually entail and what are the challenges of implementing this modernisation?

Victor Chircu is a senior software architect at software company Endava, who combines his 15 years of experience in software development with his interest in software quality to provide clients with the information they need to make informed software decisions.

For the past three years, he has worked for Endava’s Chronos Software Assessment Service, assessing more than 60 systems across diverse sectors, from banking, payments and insurance to private equities and logistics.

Chircu spoke to us about the challenges of software modernisation and the best practices to ensure successful implementation.

Technical debt

According to Chircu, a considerable challenge faced in software engineering is the concept of technical debt, which refers to the consequences a company faces after choosing a quick yet suboptimal solution for its systems. “Technical debt can have a wide range of negative consequences, affecting everything from cost and agility to team morale and competitiveness.”

Chircu compares it to financial debt; “if you borrow now, you must repay later with interest”.

“In the context of software development, the interest comes in the form of extra effort required in future development, which leads to higher costs in the long run,” he said.

The consequences of this ‘debt’ build up over time, which ultimately results in development teams spending more and more of their time fixing bugs and making small improvements, which leaves less time for new development and innovation.

Challenges at the starting point

Like with any stress-inducing endeavour, Chircu said that the first challenge of software modernisation is actually starting the initiative. This is due to the expensive nature of the process and its risks, which makes it difficult to convince business leaders to take the first step.

“Unless the business is already in a crisis, it is hard to convince business people to take funding away from delivering new features (which have a quick and tangible business benefit) to refactoring a legacy system (which appears less tangible and has a delayed return on investment), without concrete and measurable facts.”

Once the process begins, Chircu said that complications can then arise in the execution. Changes to legacy tech can be tedious and error-prone, while systems can have strong dependencies on outdated frameworks, which Chircu said can result in a huge upfront investment.

Data migration from old systems to new systems can result in data loss or inconsistencies, while strategies regarding what parts of a system need to be updated and what parts need to be preserved can be a difficult task on its own. Other issues that can occur include progress tracking and knowledge gaps (for instance, if the original developers of the system no longer work at the company).

“On top of this, many times the business can’t stop adding new features to the legacy system, making the software modernisation process resemble the daunting task of changing tires on a moving car,” said Chircu.

A man wearing glasses and a dark blue shirt smiles at the camera with his arms folded. He is Victor Chircu.

Victor Chircu. Image: Pro Image

Making the right moves

With all of these barriers laid out, how can a company go about the software modernisation process in the right way?

“Essentially, the software modernisation process can be distilled into the following steps: understand your current state, define clear and achievable goals, understand costs to set expectations, establish a roadmap, and use feedback loops to inspect and adapt,” stated Chircu. “It is important to show progress early and build momentum through quick wins.”

In Chircu’s role, he mostly deals with the first step: understanding the current state of the system through software assessments. He said that this first step is vital as it “sets the tone for the entire modernisation effort” and helps define an achievable target, a realistic roadmap and cost estimations.

“To have an accurate view, the software assessment needs to be fact-based and holistic,” he said. “To be fact-based, it needs to rely on hard data, not just interviews and documentation.

“To be holistic, it should look at all available sources: the source-code, how it got there (the code’s history) and why (the tasks and features that are implemented in the source code), and the team that built it.”

With these preparations and procedures figured out and appropriately strategised, surely the rest of the process should be a breeze, right?

What could go wrong?

Not exactly. As Chircu pointed out, there are many pitfalls that can occur during the process.

“The devil is in the details, and there are many things that can go wrong at every step.”

One problem that can occur is the consequence of starting the modernisation process “late”, as the costs of modernising a system with a massive amount of code will ultimately be more expensive than a system with considerably less.

Other issues can be the underestimation of a system’s complexity, using the wrong metrics for tracking, the impact of the legacy code on the new code and even a lack of commitment from the company.

The impact of AI

With artificial intelligence becoming more involved in multiple tech processes, we asked Chircu about whether he believes AI will have a beneficial impact on software modernisation.

“While the recent advancements in AI, particularly generative AI (GenAI), hold great promise for transforming the software modernisation process, it’s important to recognise the inherent uncertainty and evolving nature of this space,” he said.

Some ways that he said GenAI can help the process currently are with the planning phase and the execution phase, although he acknowledged how companies are still reluctant to send confidential information to GenAI tools and chatbots due to the fact that these models self-train on the data that users feed into them.

“We also must keep in mind that AI-generated code is still code and needs to be maintained.”

Find out how emerging tech trends are transforming tomorrow with our new podcast, Future Human: The Series. Listen now on Spotify, on Apple or wherever you get your podcasts.

Colin Ryan is a copywriter/copyeditor at Silicon Republic

editorial@siliconrepublic.com