Burden of Legacy Systems
Legacy burden has multiple dimensions and it is important to understand the nature of the legacy challenges, so that the right modernization (or transformation) strategy could be adopted. From a technology perspective, legacy burden can be summarized as:
- Software built with 3G/4G programming languages which are difficult to support
- Applications with a monolithic architecture and tight bonding between UI, data, and application logic making them inflexible and difficult to change
- Predominantly deployed as on-premises based applications
- Applications often designed to solve a narrow business problem in a given domain
Often, ISVs with legacy applications have to meet dual challenges of continuing to support current customer base for survival, and at the same time, also pursue growth and acquire new customers. This is where it gets tricky, as there is always a conflict in balancing the priorities and needs of short-term vs long-term goals.
Evolution of software systems
From the perspective of software systems as enterprise-business solutions, the legacy burden is of a different nature. Evolution of software systems over the past few decades can be summed up as:
Systems of Record (SoR): are the first generation of software applications, that catered to the core needs of the enterprise by automating their business processes. These SoR used technology only as an enabler to solve a business need.
Systems of Differentiation (SoD): To deal with the increased complexity of business and regulations, Systems of Differentiation evolved, which provided sophisticated systems of integration and orchestration for the modularized and unbundled applications.
Systems of Innovation (SoI): Due to the impact of digital accelerating technologies, there is a demand for enterprise business processes to support anytime, anywhere, any device access. Systems of Innovation (also known as Systems of Engagement) have evolved in the form of smart apps and intelligent systems, to meet this demand.
Software systems evolve and change at varying speeds, and in a typical enterprise landscape, one will see applications across these layers. The legacy burden and challenges of modernization/transformation will vary significantly based on the nature of software system, and how the specific domain that it serves is being disrupted.
As outlined above, nature of legacy burden varies from a technology and solution perspective. In a similar manner, there are also distinct drivers for modernization, which can be broadly clubbed under:
Technology push: The changing enterprise needs, advent of digital accelerating technologies such as SMAC, IoT, AI etc., proliferation and popularity of a new generation of robust programming languages, and flexible application architectures have emerged as some of the key technology drivers for modernization.
Business model pull: As every business is transforming into a digital business, enterprise digital needs can be met only with sophisticated systems of innovation (or engagement) that can support consumerization and personalization. The onset of platform business models and new opportunities to offer software-enabled services to digital businesses across diverse domains, have emerged as key business drivers for modernization.
As the nature of legacy burden varies from application to application, the modernization strategy will also vary accordingly. It is not an easy to task to come up with the right modernization strategy, as there are often conflicting levers and priorities.
Any modernization strategy must start with a comprehensive analysis, that looks at markets, technologies, and current state of the software including application architecture, technical debt and obsolescence. Based on this analysis, one must identify priorities and formulate a strategy to achieve the targeted modernization goals.
Based on the nature of legacy burden, and various technology or business drivers, modernization strategies can be broadly classified into: