Got Legacy?

Entries tagged as ‘complexity’

What is a legacy system, really?

May 16, 2008 · Leave a Comment

I was working on a post defining legacy modernization when I realized that, in order to describe modernization, I first need to describe what a legacy system is. That might seem like a simple thing, but, from the view of modernization, a legacy system something quite different.

To us, a legacy system is a working system. It’s a system that has evolved over the years due to changing needs. People tend to complain about its limitations and problems (with good reason). But behind that is a system that’s at the heart of an organization. A system that the organization depends on daily.

It’s a legacy system, not a software program. According to Oxford, system is defined as a set of connected things or parts forming a complex whole. A legacy system consists of these parts:

  1. A set of people, reacting to events, performing tasks in a logical manner in order to reach an acceptable end result (Users performing Process)
  2. Software, providing access to information to the users and enforcing some business logic (Code)
  3. Stored information, representing the results of the work performed by the users (Data)

Most legacy systems are also very complex systems. A typical legacy system consists of 2M or more lines of code. Each line of code tells the CPU where to go, what to look at and what to do. Printed out, a system this size would consist of 30,000 pages of detailed instructions. Not only that, but this 2M lines of code is surrounded by a set of human beings trying to wrestle with the differences between the literal logic of the system and the fuzzy real world.

Here’s the kicker. These three parts (Users/Code/Data) exist in an interdependent relationship. This means that the only way to understand the system is to look at it holistically. You cannot understand the purpose or value of a piece of code without understanding the context of its use (Users performing Process) and the information structure it executes against (Data).

All too often when we’re asked to look at a legacy system, we’re only asked to look at the code. To me this is like asking a doctor to cure a crippled leg by only looking a the crutch. It often takes some wrestling to get them to let us analyze all three layers of a legacy system.

- Christian Cotichini

Categories: General Modernization
Tagged: , ,