Deciding on the right technical solutions for modernizing your business is challenging and can be time-consuming. This guide highlights 8 key challenges and two approaches you should consider when planning your modernization project.
Introduction
If it ain't broke, don't fix it.
This may sound like folk wisdom, but the phrase probably originated as recently as the mid-1970s. More importantly, many people have misunderstood that aphorism to mean "if it's working, why improve it?". That is the antithesis of innovation.
Clunky, wonky, kludge, outdated, unscalable, legacy - systems that are best described with these adjectives may be chugging along in your company but if you think they "ain't broke" you're missing the point. Such systems are often time-bombs. You may think you can't afford to modernize them, but when they break - after the disaster - someone higher up is going to yell at you. "Why didn't you see this coming? Why didn't you prevent this mess?".
Well? Why didn't you?
Consider this article a TIME MACHINE. You've experienced the disaster. Heads rolled. Financial meltdown. In the midst of all that chaos, a flash of light brings you here to give you a chance to prevent it. As the philosopher, John Conner said, "The future is not set. There is no fate but what we make for ourselves."
This is your guide to legacy modernization. We're going to walk you through the process to avoid a painful future by showing you the tools and methods that will prevent that outcome. This is also the path to improved performance and stronger and more resilient infrastructure. You're going the right way.
What is Modernization?
Computer systems aren't like home appliances. You might still be using the toaster you got as a wedding gift a decade ago. Or perhaps you still have the microwave that came with your house? Computers are different. About every year and a half for the past 40 years, the chips that you can buy for a computer double in speed. If you think about this in terms of cars, it would be like buying a car and while you make payments for 3 years, your neighbor picks up a new car and just because it is newer than yours, it can go 300 MPH.
But hardware isn't the only thing that changes. Software has changed too. New languages have emerged that give greater flexibility to developers. New coding techniques and practices create more efficiency and collaboration opportunities. Perhaps more frightening, your old code becomes harder and harder to maintain as your expert employees age out of the business. Business is a race. If you want to compete, you have to keep improving. The good news is that it is possible to do better than keeping up. With the right IT strategy, you can zip past the competition and take the lead.
Why Modernize?
If you're thinking about Legacy Modernization it's probably because some key system in your business is old, fragile, inadequate, or failing. We understand that. Frequently these are the systems that justify investment in a Legacy Modernization project. But we really want to encourage you to look at the bigger picture than that one pesky system.
The need for modernization often stems from technical debt. This isn't monetary debt, but rather it is the consequence of getting just enough technical work done to get by. Often there is an intent to go back and re-do it better but then that never happens and you're left with a fragile or underperforming solution. Technical debt tends to accumulate which can cause cascading disasters when things go wrong. Such debt isn't always disastrous, but projects such as a Legacy Modernization effort should definitely consider outstanding deficits of this kind and address them if at all possible.
What is "modern" anyway?
At the time of writing, (2020) modern business applications have most or all of the following characteristics:
- Containerized server components, allowing flexible deployment to the public cloud, private cloud, or on-premises infrastructure, with easy scaling to meet demand
- A web-based user interface based on Angular, React, or similar javascript frameworks
- Communication between front-end and application server via REST APIs, some or all of which are exposed to other applications with the appropriate security and governance process in place
- A Continuous Integration / Continuous Deployment (or "DevOps") model of ongoing maintenance and development, allowing frequent, incremental enhancements to the system
- Server components most likely are written in javascript using node.js or another similar server-side language
- Some or all of the application may be developed on or with a proprietary 3rd party application (e.g. content management (CM) system, business process management (BPM) system)
Approaches to Legacy Modernization
There are a variety of reasons why to modernize or transform your legacy systems. There are also a variety of approaches for how to actually execute on that challenge. Gartner suggests that there are seven possible approaches that you will need to choose from to meet your needs.
- Encapsulate
- Rehost
- Replatform
- Refactor
- Rearchitect
- Rebuild
- Replace
These abstractions do cover a lot of possible strategies. The best way forward will depend on both the nature of the systems you're relying on as well as the best possible outcome for the amount of investment you're willing to commit to the challenge.
Will you need to keep your legacy system running the whole time until you flip the switch on the new platform? Can you produce a hybrid solution that gives you a new front end to a common data back-end? Can pieces be replaced in stages? Can you use any of the old code? Are you going to have to maintain this legacy system but need new, supported infrastructure to maintain it? Are the original developers still around?
Your informed decision on how to proceed will depend on the results of careful planning, budget considerations, and a competent level-of-effort assessment. Failure to plan adequately up front will jeopardize the likely outcome. This is definitely terrain where you want organized leadership and strategy, not wild-west chaos.
Design In Modernization Projects
No matter what the driving force is behind your Legacy Modernization project, you can't just focus on getting rid of the old thing. It is vital to think about how to make the new thing the very best that it can be. If your legacy system has a user interface, you need to consider the user experience. Will your customers or internal users love the new system? Is it something they're going to use every day?
Will your new system be intuitive? Will it have adequate documentation? Like any IT project, there will need to be testing for functionality, but also for usability. Don't replace something antiquated with something so awful that people will long for the bad-old-days.
We recommend using an Agile design approach and engaging with the actual users throughout the entire project. This doesn't just help ensure that the program meets the functional needs, but it also means that the actual users will be informed and have a sense of agency in the outcome of your project. That is powerful and builds a sense of accomplishment throughout the entire business. One of the hidden pitfalls of IT is that if your end-users reject the platform or resent it, no matter how much you spend to make a powerful system it will be hobbled at best or rejected at worst due to the way people perceive the tool.
But before we even get to that phase of development, your best chance at success is beginning with a very carefully curated Envisioning project.
How to Plan Your Legacy Modernization Project
"Give me six hours to chop down a tree and I will spend the first four sharpening the axe." -Abraham Lincoln
Every modernization project is different, but they all require planning and thoughtful inquiry in order to succeed. However, a rigid plan in infrastructure is similar to a waterfall design approach in software - you can lose valuable time making a perfect plan that is doomed to miss timeline after timeline because of inflexibility.
Building an Agile-based infrastructure plan will help you chunk the work tasks into small, manageable goals. You still start with a big investigation to document your systems and structures but break out your work into smaller goals. As you progress through your work, you can test and verify your approach and pivot as required to conform to the reality on the ground.
The pathway to modernizing a few systems can evolve into a roadmap to developing a robust, constantly improving ecosystem and culture around your IT tools. The benefits of such a transformation are far greater than the simple ROI from getting rid of a few antiquated systems.
Tooling for Modernization Projects
Your modernization has got to be built on something more substantial than good intentions. The right tools can make a huge difference in outcomes. Will you house your new software in your own data-center? On a remote server? On the cloud?
If you're going to be cracking open the code on legacy applications, this is an excellent time to insert API capabilities so you can make your systems interoperable from the ground up.
With Low Code development tools, you can engage your business experts directly in the development process. This can offer powerful insights into how to build apps that the users will love, and can also give your legacy coders the opportunity to work on newer technologies and upgrade their skills to modern languages and platforms.
Open Source language platforms allow you to build industrial-strength applications without the recurring license fees of "off the shelf" platforms. You can use code repositories and collaborative office communication tools to engage in cooperative programming approaches that simply weren't possible even a decade ago. The application of modern tools, modern infrastructure, and modern methodologies will help you reach an enviable future-state.
Legacy Modernization with Low Code
The marketplace is full of Low Code platforms offering quick solutions to your programming and application needs. There is definitely a place for such tools in a robust Legacy Modernization project, but there are many factors to consider when it comes to selection of the right platform.
The benefits of such platforms to your LM efforts may not be apparent, but we've written a guide to talk you through the advantages and considerations around the use of such tools in this kind of work.
Would you like to get more programming developed without having to hire more programmers? Would you like to retrain your legacy coders to new languages with a brighter future? Would you like to engage more of your business experts in the process of innovating through digital transformation? If so, then adding Low Code to your IT ecosystem may be the right next-step on your roadmap to modernity.
How to Get Started
By this point, you should have a clear picture of what Legacy Modernization is, and how it can benefit your business. Hopefully, you have also picked up on the potential for such work to help create a powerful cultural and technological change that can put you ahead of the competition and future-proof you against having to deal with technical-debt on a massive scale down the road.
Our downloadable guide gives you resources and a checklist to help you consider all these items when planning your modernization project. Download the pdf here.