Hello!

This website is also available in your region.


Skip to content
Insights + News/Expert Opinions

Navigating a Modernization Path That Drives Measurable Business Impact

Andrew Jutton

Andrew Jutton
Practice Director, Modern Application Development

Our clients typically have a complex landscape of applications and infrastructure of varying ages. These landscapes have been built up over many years (sometimes decades), driven by the business needs of the time.

These business needs, coupled with the technology available at the time of inception, drive a pattern in the “legacy” technology we see from one client to another. Centralized transactional monoliths such as mainframes were popular in the 1980s, driven by a need to automate business processes in the enterprise. In the 1990s, client-server architectures became more prevalent, driven by a lower barrier to entry and additional capabilities enabled by distributed computing. In the early 2000s, the internet drove business needs online, centralizing compute once more, but often with complex integrations back to legacy systems. Then, as the internet matured and mobile apps became the norm, the need for scalable, distributed internet-facing systems became more acute alongside the complexity of managing such systems. By 2010, the cloud had begun to address these operational challenges by providing capabilities in a platform as a service model. During the decade that followed, distributed systems became ever more complex in order to cope with globalization, high availability and high scale business needs. The data generated by these systems was at a scale where infrastructure limitations on storage drove the adoption of big data architectures, and this has led us to the AI revolution we see today.

If that history sounds complicated, it is because it is complicated! Most businesses are living with a complicated technical landscape and dealing with the consequences of this complexity.

Necessary vs unnecessary complexity

In technology there are two kinds of complexity: necessary and unnecessary. Necessary complexity is complexity that cannot be eliminated; some problems are inherently complex to solve. Managing necessary complexity is mostly focused on ensuring that the solution is maintainable, through good separation of concerns, reusable and testable code.

Managing unnecessary complexity is focused on simplification of the system, eliminating duplication of effort, removing constraints and redundant technology that often only exists due to some historical reason.

Many businesses today face a crisis of complexity which manifests itself into five drivers for change:

  1. An inability to ship features at the pace the business demands is driving the need to invest in greater business agility.
  2. An inability to add new features into aging systems in order to gain competitive advantage because the system is not understood by those who own it, the technical skills have left the company / are dwindling in the market, or the technology is no longer supported.
  3. An inability to meet increasingly demanding service level requirements is driving the need to invest in availability and scalability.
  4. An aging technology stack is driving the need to invest in mitigating risks associated with supportability, security and compliance.
  5. The cost pressures of operating an unnecessarily complex landscape is seeing rising maintenance, operations and support costs, further driving the need to invest in consolidation and greater reliance on efficiency and consistency through automation and AI.

Time to rethink application modernization

Failure to invest in managing these five drivers for change ultimately results in stymying business growth, either directly through a lack of capability or indirectly through impacting profits due to an increasingly high cost of ownership.

Investing in these five drivers over time is not finite; solutions require continual maintenance at both the software and infrastructure level. Healthy businesses will always have new business needs that need to be addressed. Equally, the risk profile of an aging application is not static.

For these reasons, Ensono believes that being your relentless ally today means to help you in the process of “Continuous Modernization”. The term Continuous Modernization means continually investing in the drivers for change to keep your technology landscape evergreen.

Continuous Modernization

A Continuous Modernization approach assesses each application in a service catalogue to be in one of two states:

  • In a project where the solution is being actively changed to an agreed target state. This is “Modern Application Development”.
  • In “Site Reliability Engineering”, where the solution is being managed, operated and maintained in a steady state.

Helping clients with Continuous Modernization requires a broad and deep set of skills that Ensono is uniquely placed to provide. We are industry leaders in managing large complex landscapes of technology from mainframe all the way to cloud, while also having deep capabilities in modern application development and cloud infrastructure. For existing clients, being their managed service provider gives Ensono a unique position in understanding the legacy, which reduces the risk profile of engaging with us on modernization scenarios. Further, for transformational projects, Ensono has a proven track record in modern application development (with clients such as ASOS) coupled with a strong IP offering, deep partnerships and competitive rates.

Ensono engages best with clients when we are in a deep partnership together; we provide the most value when we are helping to shape the direction of the transformation while also being held to account for what we deliver. In short, we focus on the why, what and how altogether. This value proposition separates Ensono from high-end and low-end consultancies, who usually only focus on one or two of these points.

When clients recognize the need for Continuous Modernization and Modern Application Development, they will often refer to the “5 R’s” view of modernization:

  • Rehost, meaning to “lift and shift” a solution usually into the cloud.
  • Replatform, meaning to “lift and reshape” a solution, by leveraging equivalent cloud platform services but without making any functional change and limiting code changes.
  • Rearchitect, meaning to refactor and reengineer significant parts of an existing solution to deliver new features or enable new outcomes to existing features. Code conversion – such as translating COBOL into Java – is covered by this strategy as well.
  • Rebuild, meaning to rewrite an application from the ground up, not replacing it like for like but instead leveraging the benefits of a different architecture.
  • Replace, meaning to buy an off the shelf solution to replace an existing capability often through the adoption of SaaS.

While these 5 Rs provide a useful shorthand for discussing the service catalog, these terms are insufficient in explaining how an application will be modernized; the definitions for replatform, rearchitect and rebuild cover a very broad range of scenarios and approaches.

Are your applications assets or liabilities?

In this whitepaper we describe Ensono’s approach to modern application development, detailing how we assess applications for replatform, rearchitect and rebuild scenarios, the patterns we use and the business outcomes they drive.

Don't miss the latest from Ensono

PHA+WW91J3JlIGFsbCBzZXQgdG8gcmVjZWl2ZSB0aGUgbGF0ZXN0IG5ld3MsIHVwZGF0ZXMgYW5kIGluc2lnaHRzIGZyb20gRW5zb25vLjwvcD4=

Keep up with Ensono

Innovation never stops, and we support you at every stage. From infrastructure-as-a-service advances to upcoming webinars, explore our news here.

Start your digital transformation today.