Friday, June 16, 2017

Strategies for Dealing with Legacy Systems

Developing an IT strategy for some organizations can be difficult because of the presence of a legacy system. Legacy systems that are old, out-of-date, and difficult to maintain are a huge obstacle to innovation. As a result, business leaders become increasingly frustrated by their inability to roll out new mobile apps, connect with customers, analyze business performance, or become a digital business.

In recent years, it has become popular to describe organizations with an out-of-date legacy system as being in “technical debt.” I would take this a step further. If an organization ignores the need to update the system for too long, it can lead to what I refer to as “technical bankruptcy.”

We can define technical bankruptcy as a situation where the organization cannot, or finds it exceedingly difficult to, pay off the technical debt. It does not mean that the organization is in financial bankruptcy but rather that its systems are broken or held together in a way that makes them extremely difficult to upgrade.

Significant Percentage of Organizations Are at Risk of Technical Bankruptcy

In work with our clients at Strativa over the past several years, we have gained new insights into challenges facing organizations that have out-of-date legacy systems. We recently took the opportunity to combine those insights with survey data from our sister IT research firm, Computer Economics, to produce a new report, Avoiding Technical Bankruptcy in Legacy Systems. (Click the link to download the report free from the Strativa website.)

Figure 3 from the full report shows the magnitude of the problem as it applies to ERP systems. A small but significant percentage (7%) of organization have not upgraded their ERP systems for 10 or more years. These are likely to already be in technical bankruptcy. But the 13% of organizations that have not upgraded their systems in the five-to-nine-year time frame are in the danger zone: Technical debt is building, and if the organization does not undertake a major upgrade, it risks falling into technical bankruptcy.

Signs of Technical Bankruptcy

What are typical signs that a legacy system has reached the stage of technical bankruptcy? We found five characteristics:
  • Extensive modifications, extensions, and interfaces.
  • Poor understanding of the system by users and IT alike
  • Direct involvement of IT personnel in business processes.
  • Legacy system atrophy as shadow IT emerges.
  • Upgrade or replacement hard to justify.
In the full report, we explore the symptoms of technical bankruptcy and the devastating effects that it has on the organization. We continue by quantifying the scope of the problem specifically for ERP systems, using our research on the typical age, frequency of upgrades, and extent of modification of these systems.

Most importantly, we conclude with recommendations on how to avoid technical bankruptcy and, for organizations that have reached this stage, strategies for getting out and staying out of technical bankruptcy going forward.  

Download the full report, free from the Strativa website:
IT Strategies for Legacy Systems: Avoiding Technical Bankruptcy.
 


Bonus: Watch a Datamation's James McGuire in a video interview with me about the report.

3 comments:

Matthew King said...

Hi Frank,

The technical bankruptcy phenomenon is hugely pervasive. You describe the causes well.

I see three ways out of it:

The first is tenant aware SaaS. You have been a proponent of this for many years and for good reason.

The second concerns the separation of customer code from vendor code. This concept can apply to both cloud and on-premises deployment. Many vendors have embraced this concept already with the idea being that the customer makes as many enhancements as they wish but that their logic interacts with the vendor functionality via APIs only. This protects against the entanglement of customer code and vendor code that is present in many "customized" legacy systems and that results in paralysis.

The idea of this second approach is to enshrine ownership of separate code lines, which allows changes to be made more easily on either side by the respective parties.

The third way concerns visual development and empowering business analysts to extend functionality in and around the front end. The basic idea is to reduce reliance upon hand coders and manually driven productivity suites such as Microsoft Office. The Microsoft Flow and PowerApps combination, and SmartSheet/AppSheet combination, are two examples of this approach. However there are more open and general purpose aPaaS (application PaaS) alternatives arising such as Bubble.is

Where funding is not available for imminent legacy system replacement, the best approach might be to "ring fence" legacy systems and cease updates as much as possible, and instead begin to build a sidecar application system on a cloud platform which over time augments and replaces legacy system workloads - and to also serve as a unified front end for user interaction. Thereby legacy systems are gradually subjugated and can be quietly removed with little business disruption. In other words the application system running on the cloud platform effectively takes charge by orchestrating everything that happens - much like what happens in some conventional tightly-coupled and highly integrated and hideously expensive ERP systems.

Furthermore, using a micro services architecture in the application system running on the cloud platform - allows changes to be made more easily thanks to looser coupling. Gone is the monolithic architecture where changes in one part all too often result in unforeseen problems elsewhere.

Frank Scavo said...

Hi Mattthew, you comment is a post unto itself. Good job. I agree with all this. Of course, better to adopt these strategies from the start rather than wait until the organization has gotten to the point of technical bankruptcy.

--Frank

Matthew King said...

Thanks Frank. I tend to get carried away - as I shall once more demonstrate :)

The main point I wanted to convey is that many legacy systems are not worth updating and that the best way to deal with them is to relegate them into the background behind an application running on a Cloud Platform - with the intention of quietly swapping them in and eventually out later on.

I should give you credit for this post from 2002 which touches on the same concept.

http://fscavo.blogspot.com.au/2002/08/implement-eai-or-just-roll-your-own.html

Despite advocating this I still have a lot of faith in ERP Suite offerings as they avoid interface complexity. But on the flip side, maturity and cost effectiveness of modern Cloud Platforms and simpler interface protocols and services (such as Dell Boomi) breaths new life into the older EAI approach.

The downside with ERP suites is the cost of migration - and risk - because it generally needs to be done in a "big bang" approach. And like I was saying earlier this can be prohibitively expensive or just too difficult for many customers - particular those customers who have a patchwork of legacy ERP systems.

Building a custom application is ambitious - even in The Cloud - but it can be built gradually, starting with a front end followed by a unified user permissions model and a universal monitoring and scheduling consoles, for example.

Amazon Cloud Services, Google Cloud Platform, Microsoft Cloud Platform System, Pega 7 Platform, Salesforce Platform, Workday Cloud Platform, and SAP Cloud Platform (and other Cloud Foundry partner platforms) are some examples of where to build an enterprise application that glues together all the bits and pieces that invariably come and go in most large organisations. I've listed a bunch to avoid bias (in no particular order). Some are more general (or open) in nature while others might be a little more closely aligned with particular industry verticals or other products offered by the same vendor.

https://www.pega.com/products/pega-7-platform
https://www.salesforce.com/au/products/platform/overview/
https://aws.amazon.com/choosing-a-cloud-platform/
https://www.microsoft.com/en-au/cloud-platform/cloud-platform-system
https://cloud.google.com/
https://www.workday.com/en-au/applications/workday-cloud-platform.html
https://www.cloudfoundry.org/certified-platforms/