There are benefits to modernization, but often companies have to be dragged "kicking and screaming" into such projects. There are complex reasons for this but the ones we see the most are:
- Apprehension that the new system will break a complex ecosystem
- Management isn't willing to spend on improved systems when they have something that works
- Assumptions that the new system won't be better
- People are willing to endure discomfort to put up with the system they have
The benefits of Legacy Modernization outweigh the risks and fears. Moore's Law famously suggests that computer power doubles about every 18 months. That is typically a consideration for why to buy a new computer processor but the inverse implication of Moore's Law is also important: Every 18 months the relative power your legacy system is halved compared the latest processors available. By the time your systems are 6 years old, they've only about 6% of the power of what your competitor's slick new system is packing. With a properly executed Legacy Modernization plan, your systems can be on the latest processors with just a few clicks of your cloud management software.
Benefits of Modernization
The Many Benefits of the Cloud
In ye olde times, the way to build powerful software was to start by building it specifically for some powerful server framework. This approach was hard to shake off - but over the past two decades a shift has taken place to remove the server specifics from the equation. First, there was a shift to "virtual machines" or VMs which took the entire operating system and made it a portable, expandable layer which sat atop management software which could be used to scale up the underlying server power with minimal down time. Now another shift has allowed putting applications and their required supporting programs into containers which can be placed easily ported and expanded. These layers of abstraction mean easier portability and expandability for the consumer. You don't have to be shackled to a big server somewhere.
These containerized apps running on virtual operating systems in a distributed cloud mean you get quite a few benefits. Read on.
Load Balancing, Clustering, Scalability
Because modern applications are built with containerization in mind, it's very easy to put them into load-balanced clusters. This means that if your application gets a lot of traffic, it can be spread across multiple processors and even across multiple geographic regions. Growing the underlying server power usually just means allocating more server processors to the cluster and restarting. What once took weeks of planning and preparation often gets executed today with a few clicks and minutes of time.
The use of physical diversity across a cloud platform can mean that your company's systems are impervious to local disasters. That takes some planning, but the benefits in the event of an earthquake, fire, or flood are immediate. Your systems just keep on keeping on.
User Experience and Expectations
The driving factor for many modernization projects can be the need to get away from a dated User Interface. Ever seen the look on a millennial's face as you explain how to navigate a mainframe application by tapping function keys? Have you sat in your doctor or dentist's office marveling at their Windows 95 record keeping system? The fact is that dated UIs can make employees and customers feel like they are dealing with a dinosaur, and negatively influence their perception of your company.
A similar situation occurs where user experience has been ignored during the rush to get a "minimum viable product" out the door. Sometimes the MVP becomes a mainstay of company operations without that user experience getting revisited. Too many systems were created to meet the user requirements without considering the user experience. That is a formula for creating critical business software that slowly crushes the soul of everyone who has to use it.
When modernizing an application you're not just replacing old code with new, you're also getting another chance to make it enjoyable to use.
Probably the easiest to grasp part of modernization is the potential performance improvement caused by Moore's Law alone. But don't be fooled. Just throwing more processor horsepower at a problem will only take you so far. A good modernization project will invest in code that can be parallelized (the opposite of being paralyzed from an IT perspective) so that it can take advantage of multiple processors and be massively available to tackle problems.
With cloud-based systems, you can throw more memory, processor, and storage at a problem quickly. But you need to develop with that platform in mind from the ground up. Performance testing and continuous improvements are part of the ongoing maintenance of a modern IT solution. We'll cover it more below, but the future-proof goal depends on a DevOps mentality with ongoing improvements and deployments. Never stop innovating.
Got Batch in the Belfry?
Chances are if you're using some big monolithic legacy system with nightly batch jobs to process the day's data, a Legacy Modernization project could open you up into the world of real-time access to your sales, inventory, and other critical mission and logistics data. These are potentially business model changing opportunities and should not be overlooked.
There can be cost savings from modernization. However, this is not a guaranteed outcome. Another possible outcome is that the total cost of ownership (TCO) decreases and the return on investment (ROI) increases - but the literal expense is higher. Be cautious in how you evaluate these criteria. Not only is there the question of how much does modernization cost - but there is the hidden question, the important question: how much does not modernizing cost?
You might especially pay attention to the possible savings of embracing open source platforms instead of licensed commercial products. By using open source and agile development, you can avoid the recurring license fees of expensive customized commercial software and end up with a solution that is uniquely yours, evergreen, and adaptable to changes in the business.
The key to escaping legacy apps isn't to replace them with a new modern app and then wait for that to also go stale. No. What you really need is to replace those old applications and infrastructure with a new approach. You need a new mindset that realizes that "cutting edge" isn't a destination, it's a way of life. You need to always be improving.
This is accomplished through adopting the mindset of continuous improvement, the habit of regular releases, and the foundation of portable and scalable tools with APIs that can talk to each other.
Instead of thinking of your IT systems as discrete programs that perform a set of functions, your future state should be something more akin to a collection of interoperable systems that share with each other through well-documented APIs and which are constantly being improved. You can't go stale if you're reborn every few weeks.
So Let's Get Modernizing
You already knew that you needed software and infrastructure that can grow easily and adapt to your needs quickly. Now you might be thinking about modernizing some of your legacy systems as a way to achieve that goal. Hopefully the "what" and the "why" are clear, so it's time to think about the "how". Read the next post in this series to find out more.