Thumbnail

How Do You Balance Innovation With Maintaining Legacy Systems?

How Do You Balance Innovation With Maintaining Legacy Systems?

In the fast-paced world of tech, balancing cutting-edge innovation with the reliability of legacy systems is a crucial skill. We've gathered insights from Software Architects to CEOs, offering a spectrum of strategies from integrating innovations judiciously to adopting modular development. Dive into these nine expert perspectives to discover how top technology professionals achieve this delicate balance.

  • Integrate Innovations Judiciously
  • Innovate in Phases
  • Strategize for Continuous Innovation
  • Plan Technical Debt Like Financial Debt
  • Conduct Risk Assessments for Updates
  • Digitize Records in Parallel
  • Combine AI with Traditional Methods
  • Build Middleware for Legacy Integration
  • Adopt Modular Development Strategies

Integrate Innovations Judiciously

Balancing innovation while maintaining legacy systems requires careful consideration. As a software architect with 30 years of experience, I believe innovation should be added judiciously, ensuring the value outweighs the investment. For example, in an open-source project over two decades old, we integrated web components, which significantly enhanced the reusability of front-end components. Additionally, we adopted OpenID Connect to secure APIs and extend their use. Both efforts were months of effort for significant modernization of the project. However, we have not yet adopted AI large language models, as we have not identified a use case that justifies the effort yet. This approach ensures we remain current without compromising stability.

Benito Gonzalez
Benito GonzalezSoftware Architect, Unicon, Inc.

Innovate in Phases

The trick here is to innovate in phases rather than conducting a complete overhaul. We had a pretty robust macro-based tool for economic modeling, or in simple terms, for the estimation of financials for projects. The tool helped with calculating NPV, IRR, Payback Time, and also the benefits over and after the project life cycle.

The new requirements or features requested by the client included capabilities for reconciliation, resource management, financial analysis, and generating MIS reports. Since our tool was prepared using VB code, moving to a new tool with enhanced capabilities was a no-brainer. The question was, how do we do it? As the saying goes, 'Old is gold.' This was true for our tool, as users were very well-versed in using it.

So, we decided to take a phased approach where different modules for the new tool were treated as microservices. We visualized microservices like Forecasting, Resourcing, Timesheet Tracker, Reconciliation, Variance Analyzer, Year-to-Date View, etc. This allowed users to continue using the old tool while slowly transitioning to new modules from the new system.

The transition took almost a year, during which we had two dedicated teams for each tool. As it was a financial tool, we had to run both tools in parallel for four quarters to help users get accustomed to the new system without any disruptions. The legacy tool is still in use, and some reports are migrated for complex calculations, which are still in the testing phase in the new tool. The harmony between the legacy and new tools is crucial, and we are often reminded by our clients that we are building a plane while flying it.

I would conclude by stating, use a phased approach. Legacy systems are in place for a reason. Please don't be in a hurry to pull the plug; rather, do it surgically and, if needed, go with a tactical approach. If you're migrating from an old system to a new one, consider using APIs to connect to the new system. This will save much of your time and money. The mantra here is 'Slow and steady wins the race'.

Akshay Shah
Akshay ShahConsultant, Infosys Consulting

Strategize for Continuous Innovation

Innovate or die is usually the hidden concern for most modern businesses. If your services, SaaS product, or technology are not iterating to drive continuous new growth and efficiency, then eventually the business will stagnate. Conversely, in the technology/IT/engineering world, the mantra of “if it isn’t broken, don’t fix it” also applies, especially in production environments.

Hence, in mission-critical production environments, there will be times that a system, software package, or product gets left behind and becomes part of the company’s legacy portfolio if the second mantra takes too much priority. But there are several definitive strategies that can be taken to prevent a system from ever reaching that point. In each of my past and current roles, some of the strategies that I’ve implemented are as follows:

1. Modular/Microservices Architecture: Design systems in a modular way so that components can be updated or replaced without affecting the entire system. This is especially effective in critical production environments where downtime is not allowed.

2. Technical Debt Management: Regularly review, address, and allot time for technical debt whenever the product roadmap is revised, enhanced, or added to. This will help minimize large-scale refactoring needs in the future if a fixed percentage of all development or roll-out sprints are pre-allocated to address technical debt.

3. Parallel Development: Develop new systems to replace portions of the legacy system and run them in parallel. This will identify and mitigate potential issues and allow for a phased transition.

4. Stakeholder Engagement: Keeping communication channels open with stakeholders, users, and clients of the legacy system will greatly ensure that any product innovation aligns with their business needs and allow for a smoother transition.

Ultimately, balancing innovation with maintaining legacy systems is a common challenge for technology professionals. It involves ensuring that the organization continues to leverage its existing investments while also adopting new technologies that can drive growth and efficiency. But if this balance is regularly planned into all aspects of the product lifecycle and stakeholder conversation, then it would likely never become an issue of note.

Joseph LeungCTO

Plan Technical Debt Like Financial Debt

The key to maintaining legacy systems is to think of them as debt—not necessarily exclusively in the technical sense but also borrowing from concepts in the financial sense. When you take on financial debt, you have a payment plan, something like a monthly mortgage for a house. Debt in the technical sense needs similar levels of planning. Often, teams will get caught in the trap of only spending time on legacy systems when they break or when there is a crisis. The key is to be conscious about how much effort is needed generally on an ongoing basis, and to make sure you're continually making improvements that minimize the cost of that maintenance. I've seen great success in creating a rotation; for example, having some members of the team work on maintenance or legacy work for a sprint and rotate back and forth between the maintenance work and forward-facing product work.

Zach GoldbergChief Technology Officer, Gruntwork

Conduct Risk Assessments for Updates

At Tech Advisors, balancing innovation with maintaining legacy systems requires a careful approach. Risk assessments are a crucial part of this process. We evaluate the potential impacts of new technologies on system stability, considering both immediate and long-term effects. This helps us anticipate issues and prepare effective contingency plans.

A real-life example from my experience involved a client who wanted to integrate new cybersecurity tools into their existing infrastructure. Our team assessed how these new tools would interact with their legacy systems. We discovered potential conflicts that could have led to system downtime. To address this, we implemented gradual updates and provided training to the client’s team, ensuring a seamless integration without disrupting their operations.

For professionals managing similar challenges, it's essential to communicate openly with all stakeholders. Understanding their needs helps in aligning technology updates with business goals. Regular maintenance and updates to legacy systems can also prevent minor issues from becoming major problems. This proactive approach, combined with clear communication, ensures a smooth balance between innovation and stability.

Konrad Martin
Konrad MartinCEO, Tech Advisors

Digitize Records in Parallel

In a healthcare organization I worked with, we needed to introduce an electronic health record (EHR) system while maintaining our existing paper-based records. To achieve this balance, we began by digitizing only new patient records, allowing the EHR system to run in parallel with the legacy paper records. This phased approach ensured that staff could gradually adapt to the new system without compromising patient care.

Training was provided to all healthcare providers and administrative staff, ensuring they were comfortable with the new system. Over time, as confidence in the EHR grew, the digitizing of older records was done in batches, eventually transitioning to a fully electronic system. This method allowed for innovation and improved efficiency while maintaining the reliability of the legacy records throughout the transition period.

Dustin Mathews
Dustin MathewsDirector of Information Technology

Combine AI with Traditional Methods

As a co-founder of Fintech, I have always balanced innovation and legacy systems. This demands a deep understanding of both cutting-edge technology and traditional methods. For personal finance, we have integrated AI-driven robo-advisors alongside human financial advisors. This combination allows clients to benefit from efficient automation while receiving personalized guidance for their complex financial decisions. It's all about harnessing the strengths of both approaches to provide clients with the best possible experience.

Chris Yang
Chris YangCo-founder & CEO, Coins Value

Build Middleware for Legacy Integration

It's difficult to remain innovative when you must reconfigure legacy systems that are key to the functioning of the organization. As an example, you might need to connect a modern customer relationship management (CRM) system to an older, and very important, inventory management system, so that it can be tied in while keeping existing operations functioning.

At LunarWP, we're tackling such problems by building middleware to help the new speak with the old—say, through application programming interfaces (APIs) that help to wrap legacy systems and allow new applications to communicate with the old. Such an architecture lets information flow freely between the new and old applications, without requiring as much disruption to the legacy infrastructure. Retrofitting a legacy application with a modern web front-end can dramatically improve the user experience and accessibility of the legacy system, but it still lets enterprises make use of the backend with minimal new code or training expenditures.

This technique turns the advantages of new technologies into business benefits without the cost and risk of a full system rewrite. This is especially problematic when a WordPress website hasn't been updated in some time. When completing WordPress core updates, these can break old plugins and affect the functionality of the entire site. It is important to ensure that the website is updated regularly so that fewer, bigger changes are made often and frequently. Zero in on the best return on investment, meaning the combination of new technologies with existing ones.

As an innovation leader, be aware that innovation is not always about replacement. Many times, it is about enhancing what you already have to generate colossal returns. If firms can solve these problems, they can stay competitive and hold on to their assets but, importantly, they can do so in a way that holds minimal threat to critical infrastructure.

Dominic Bonaker
Dominic BonakerFounder & CEO, LunarWP

Adopt Modular Development Strategies

At our company, we focus on modular development, which allows us to update or replace individual components of our software without overhauling the entire system. This approach helps us integrate new technologies and innovations gradually, assessing their impact step-by-step. It minimizes disruption and maintains operational continuity, which is crucial for our enterprise-level customers who depend on our reliability.

When updating Toggl Plan, we integrated new project visualization tools that required more advanced browser capabilities than our legacy system supported. We introduced a progressive enhancement strategy where users on older systems received a simplified version of the new tools, whereas users on modern systems experienced the full capabilities. This strategy allowed us to push the envelope on innovation while respecting the technological constraints of some users.

Alari Aho
Alari AhoCEO and Founder, Toggl Inc

Copyright © 2024 Featured. All rights reserved.