If you fear release cycles, get too many errors in your code, or are finding it harder to move key services into more agile operations, you might be dealing with a legacy, monolithic application. I’ve had the chance to work in a lot of DevOps environments and have sat in on several projects. One common theme I see is that leaders simply are either afraid, or worse, complacent when it comes to moving away from legacy applications.
Let’s make this next part clear: The only way you’ll become a part of today’s digital world is if you truly embrace a more agile development and deployment process.
Gartner recently stated that IT will be increasingly tasked with supporting complex, distributed applications using new technologies that are spread across systems in multiple locations, including on-premises data centers, the public cloud and hosting providers. This means you’ll need to adopt a better model to handle complex systems, services, data points, and applications. Furthermore, according to a recent IDC report, worldwide spending on the technologies and services that enable the digital transformation (DX) of business practices, products, and organizations is forecast to reach $1.97 trillion in 2022.
“IDC predicts that, by 2020, 30% of G2000 companies will have allocated capital budget equal to at least 10% of revenue to fuel their digital strategies,” said Shawn Fitzgerald, research director, Worldwide Digital Transformation Strategies. “This shift toward capital funding is an important one as business executives come to recognize digital transformation as a long-term investment. This commitment to funding DX will continue to drive spending well into the next decade.”
Shifting the focus back to applications, it’s absolutely critical to note that moving to a digitally-native platform has a lot of core benefits. However, staying with a ‘it just works’ mentality can really slow you down. “Application modernization is not one ‘thing,’” says Stefan van der Zijden, research director at Gartner. “If you’re faced with a legacy challenge, the best approach depends on the problem you’re trying to solve. Replacement isn’t the only option.” Gartner predicts that every dollar invested in digital business innovation through to the end of 2020 will require enterprises to spend at least three times that to continuously modernize the legacy application portfolio.
In dealing with legacy, there are some core issues that will arise:
- You will start to run out of talent that can support your systems. Think mainframes and COBOL.
- You will start to see an increase in the cost around maintenance and management.
- You will be very limited in your ability to integrate with digitally-native solutions, like cloud and powerful APIs
- Your business will slow down because your application won’t be able to scale and adjust to a rapidly evolving digital market.
Furthermore, there’s a real ‘cost’ to keeping these old apps around. Specifically:
- System and application maintenance costs
- Knowledge costs
- Risk and instability costs
- Opportunity to the business costs
That said, there is good news. Approaching application modernization can be a great process for both developers and the overall business. The first step is a very thorough assessment. One that looks at the business, how users are leveraging the application, and where there are core dependencies. From there, you take an approach that will help you rehost, replatform, refactor, rearchitect, rebuild, or replace (retire) the application.
As noted earlier, it’s not just one process. And, many believe refactoring an application means completely rewriting it. This is a myth that only fuels the fear around application modernization. Sure, in some cases an application may have been really poorly designed and will need a rewrite. However, in many cases you can actually reuse a lot of the code to help the application become digitally-native.
I remember being involved in one project where we were able to reuse 80% of the code of an application, leverage microservices and containers, and allow the application to become a cloud-native solution. However, you won’t know what you can do with your apps until you review them and really understand the underlying architecture.
Holding on to legacy applications and process just to stay in your safe zone is no way to approach a digital market. New developments around DevOps now allow for automated testing, improved code check in/check out processes, and even better user acceptance testing. Effectively, you can automate so much of the process when you deliver a better application architecture.
However, the hardest (and maybe easiest) part is getting started. Conducting a workshop with a partner will help you align your strategic vision alongside your business. Most of all, you’ll quickly learn where there are still legacy processes and where you can modernize.
Once you move to an agile platform, it’ll be like a breath of fresh air. Now you’ll be able to integrate with cloud, use data more effectively, improve user experiences, and create a true DevOps culture. Most of all, you’ll enable your technology and business to really compete in a digitally-driven market.