Who wants to Live Forever? Great song. Not so great approach to Software Development though.
When we take a look at Software Development, you’ve probably noticed the situation that any app that has even been build, still is fully running today. At the beginning of the lifecycle of an application or system, we like to think how long the system might run. We develop an application that simply is designed to run for about four years or so, but the reality looks quite different: legacy applications that run for over ten years within an organization aren’t that weird or strange.
So, where’s the problem here? It’s simple: over the years we’ve learned a lot about user interaction, functionality and system integration. These wise lessons don’t apply to legacy systems and, if we keep on thinking ‘we already have this, why throw it away?’, nothing will change. And change, within every organization, is essential and adds most value. Business Processes get changed in order to support the system, instead of the other way around. And a lot of effort is put in maintenance of these systems.
Developing something that basically already exists is considered nonsense and pretty scary to most people. That we try to keep something running that should have been buried years ago doesn’t change anything about that emotion. So how can we change this?
Systems Integration, or Service Oriented Architectures might give us the solution over here. With these new insights, methods and technologies we just might be able to keep using the application that has been build ages ago and change it to meet the requirements we have today. Integrating systems and let user interaction play in a modern way, based on business processes, instead of standard functionality.
Although a solution can lay in SOA, I strongly believe that design is always cheaper than redesign. When we can design and develop a system from scratch, we can make choices that weren’t made in the original. Redesign, even with the capabilities of SOA, also means that we have to work around the boundaries the original legacy system gives us.
Besides that we still will have the large maintenance costs that come with (unsupported) legacy systems.
What do you think? Will we ever get rid of these legacy systems? Or are they just a given part of live?





