The Hazards of Updating Legacy Systems

There is, of course, only one real hazard – to fix a bug or make an enhancement and, in so doing, to introduce a new problem.  The problem usually manifests itself in an area far away from where the changes have been made and so are easily overlooked.  A disaster that will damage reputations!

So what to do to avoid a disaster?

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

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.

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

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

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

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

Regression test – make sure that the old functionality still works correctly. This is tedious and may have been done a number of times over the lifetime of the system. Automation will help (see Zircon’s ARTIST tool).

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.

This advice has been learnt from bitter experience. I expect that I may be teaching my grandmother to suck eggs, but I hope that it helps someone.

Got a Legacy System Headache?

If your old systems are causing you grief or the thought of making even the smallest of changes to the code base makes you want to run to the hills, it might be time to do a bit of a refresh.  Our team are willing to get our hands stuck in so you don’t have to.

More From The Blog

Achieving Software Quality During Implementation

Achieving Software Quality During Implementation

Achieving Software Quality During ImplementationSoftware quality is not something you can introduce to a system during the final moments before a release, nor should it be something to sacrifice simply to increase the speed of development. Rather it should be given...

Do You Know If Your Project Failing?

Do You Know If Your Project Failing?

Do You Know If Your Project Failing?Did you know that a study by IBM found that only 40% of software projects successfully meet schedule, budget or quality targets? Or that a separate study by the Portland Journal found similarly concerning results, with between 65...

Is Your Project In A Mess? – Top 5 Solutions To Turn It Around

Is Your Project In A Mess? – Top 5 Solutions To Turn It Around

Is Your Project In A Mess? - Top 5 Solutions To Turn It AroundKeeping a project on track is far from a simple task. The mere act of bringing together a group of individuals with unique thoughts and opinions is bound to introduce a whole mix of problems. So is it...

Developing A New Desktop Application? Have You Considered…

Developing A New Desktop Application? Have You Considered…

Developing A New Desktop Application? Have You Considered…There is always a great number of things to remember when you embark on a new system development, meaning it can be quite easy to overlook some rather important points. To give yourself some piece of mind take...

Developing A New Web Based System? Have You Considered…

Developing A New Web Based System? Have You Considered…

Developing A Web Based System? Have You Considered…There is always a great number of things to remember when you embark on a new system development, meaning it can be quite easy to overlook some rather important points. To give yourself some piece of mind take a look...

Developing A New Embedded System? Have You Considered…

Developing A New Embedded System? Have You Considered…

Developing A New Embedded System? Have You Considered…There is always a great number of things to remember when you embark on a new system development, meaning it can be quite easy to overlook some rather important points. To give yourself some piece of mind take a...

Why Do You Need Requirements? – 6 Top Reasons

Why Do You Need Requirements? – 6 Top Reasons

Why Do You Need Requirements? - 6 Top ReasonsIt would be impossible to spend more than a month in the world of software development and never encounter requirements to some degree. Almost every project is centred around some form of requirements documentation, and...