The Hazards of Legacy Systems

Being the owner of a software system with a dedicated customer base sounds like the kind of position one would like to find themselves in. At least until it gets superseded and you have to face dealing with a legacy system.

Many developers have a strong dislike of legacy systems and consider them problematic for a variety of different reasons.

Reliance on Antiquated Hardware

Software running on antiquated hardware can rapidly become a heavy expense, potentially going so far as to outweigh the cost of replacing both of the software or hardware elements. If some form of emulation or backwards compatibility allows the use of new hardware, this cost can be minimised.

Deterioration of Retained Knowledge

As staff rotate through, it can become increasingly difficult to maintain and expand from a lack of understanding of the system. Staff who were considered experts have retired or moved on. New staff entering the field since the transition to legacy won’t get to experience it in the first place. Documentation will, of course, assist in filling the gaps, but even the most detailed documents will not quite make up for the first-hand experience.

Holes in Security

There are a lot of vulnerabilities that can arise from legacy systems. Older operating systems and applications can suffer from a lack of security patches as support eases. Production configurations of these operating systems can also contribute to security concerns. Both of these factors and more have a hand in putting legacy systems at risk of being compromised.

When New Meets Old

You have to consider the issue of integration. Integrating with other systems is part and parcel of software development, but ensuring successful communication between older and newer technologies can be incredibly difficult.

Fixing Bugs Can Cause More Problems

The biggest concern for many developers is the greatly increased risk of introducing more problems during the process of bug fixing or making enhancements. In many cases, problems will manifest themselves in areas outside of where changes have been made and can be easy to overlook.

As part of our experience as a company, we know first hand just how troublesome having to deal with a legacy system can be. However, we also know that it isn’t impossible as the guide below will demonstrate.

Updating A Legacy System Guide to Avoid Disaster

1. Impact analysis – what else could be affected? Are the possible consequences worth the advantages of the change?

2. Test the system before you do anything – make sure that you completely know the behaviour of the current system before you do anything. That way you avoid chasing your tail looking for a problem that you think you’ve introduced but is in fact a feature of the system.

3. Source control – make sure you have everything saved that will enable you to return to the current build should a disaster occur.

4. Review the proposed changes – walk through the changes before doing anything. Two heads are better than one, especially one that has been bashed against a wall of old, poorly documented code!

5. Change carefully – make sure that you are not overwriting data areas, mark all changes, check uniqueness of new variable names, understand inputs and outputs.

6. Test the change thoroughly – make sure the change is robust and provides the required functionality.

7. Regression test – make sure that the old functionality still works correctly. This is tedious and may have been done several times over the lifetime of the system. Automation will help.

8. Document – you’re not writing an essay, just some notes to help the next person that will have to change things. It may well be you! Write down what you were trying to do, what you actually did, was the existing documentation any good and what you managed to find out. Eventually, these notes will be better than the original document

More From The Blog

IR35, Here it Comes Again…

IR35, Here it Comes Again…

IR35, Here it Comes Again...In 2021 the reform to IR35 Off-Payroll rules is to be rolled out to the private sector. As before the reform will only affect companies that do not meet the following attributes: an annual turnover below £10m fewer than 50 employees or a...

Solving the Resource Conundrum

Solving the Resource Conundrum

Solving the Resource ConundrumPicture this. One minute all is fine and dandy, you have access to all the resources you could possibly need, then bam an unexpected challenge arises. Suddenly you find yourself lacking the capacity to meet the new need. What are your...

Quality – An Aid to Produce Consistent Rubbish

Quality – An Aid to Produce Consistent Rubbish

Quality - An Aid to Produce Consistent RubbishAnother year has passed, and myself and a colleague have hosted a BSI auditor for our annual ISO9001/TickITplus check-up, and in fact this was more than the regular check, in that it was our 3-year re-certification audit,...

How to Test Without Access to The Test Environment

How to Test Without Access to The Test Environment

How to Test Without Access to The Test EnvironmentIn many of our previous articles, we have expressed the importance of achieving a high standard of testing. Potentially blocking this achievement, several factors can come together to affect the quality of your...

The Technical Workshop – How To Make Them Work For You

The Technical Workshop – How To Make Them Work For You

The Technical Workshop - How To Make Them Work For YouAnyone experienced in product design will understand just how valuable a facilitated workshop can be. Bringing together a project's key stakeholders into a single space allows for the exploration of diverse...

Developing Software for Safety Related Systems

Developing Software for Safety Related Systems

Developing Software for Safety Related SystemsSoftware systems should always be both robust and reliable, however the moment you introduce a safety element, this need for reliability increases significantly. The level of safety required is governed by the severity and...

How to Choose an Outsourcing Partner

How to Choose an Outsourcing Partner

How to Choose an Outsourcing PartnerHaving recognised a need to outsource, and worked your way through the initial preparations, you are now in a strong position to seek out a suitable partner. Choosing an outsourcing partner is no trivial affair, so taking the time...

Preparing to Outsource: A How to Guide

Preparing to Outsource: A How to Guide

Preparing to Outsource: A How to GuideSo you have recognised a need for external assistance. You have weighed up all of your options and concluded that outsourcing would be the best course of action. Now you are probably wondering what you need to do in preparation...