Is it possible for organizations to build a legacy system? YES, absolute yes.
Gartner defines legacy application as “an information system that may be based on outdated technologies, but is critical to day-to-day operations.”
Key features of legacy software
- Difficult to change: Changing functions or features is complex, new changes put existing functions/ features at risk.
- A long and expensive testing cycle is required: Legacy systems are designed with so much complexity that small changes can lead to cascading effects thereby create more bugs.
- Closed system: Build in a way that makes integration with other systems cumbersome.
- Technology Stack: Built on the old technology stack. Common languages used for stack: .Net, Java, PHP.
- Architecture: Built as a monolithic application means a single unit.
Legacy apps are ‘product-centric’ and not ‘user-centric’. Legacy applications designed to perform a task and require special training to use it.
Don’t get me wrong, the need for costly and time-consuming training acts as a barrier for a lot of companies to change the existing legacy software.
The age of the application has nothing to do with the application being legacy.
How legacy systems enter the organization?
Build vs Buy: Picking a non-API driven monolithic off the shelf software leads to a solution that may not be exactly suitable to the user needs while building a custom solution is usually time-consuming with a lot of iterations & rework & is expensive.
Old Architecture: The architecture and design team still subscribes to age the old school of software designs. With unlearning of old system design concepts it fundamentally impossible for an organization to build the modern applications.
Pressures to deliver applications quickly: To build fast, developers adopt monolithic architecture. They build an application as a single unit. This leads to internal dependencies and faults.
Monolithic systems are easy to build, but really hard to maintain and enhance.
Microservice based application. The idea is to build an application as lego blocks. Each function and service work independently. To deliver a feature, multiple blocks are connected via open APIs.