If you’re a CIO, CTO, or senior technology leader, application modernization is a term you’re probably very familiar with by now. Generally considered to be part of the broader category of digital transformation, app modernization sounds simple on the surface. You have aging, legacy software and you need to update it. In practice, however, modernizing your apps and doing so at scale is complex. Luckily for Polaris, we’ve been through app mod projects many times over and have addressed diverse needs and business objectives for our clients in the process.
Informed by that experience, we’ve compiled seven must dos from our team of experts. No matter your industry or size, these are the things to account for before and during any app modernization project. This checklist isn’t meant to be fully comprehensive, but should give anyone considering app modernization a baseline to think about what’s involved and keep their transformation on track once it’s started.
#1 DO Understand Why Modernization is Necessary
“If It’s Not Broken, Why Would I Fix It?”
We’ve fielded this question more times than we can count. It’s generally driven by the concept that a 20-year-old software product has been running “just fine.” How could we suggest to an organization’s leadership that they throw money away by fixing it? This response is usually the start of an insightful conversation. While we’re huge proponents of taking a pragmatic approach, we also believe it’s important for organizations to take the time to think critically about their aging product. Check these app modernization icebreaker questions off your list, and you may find that there are broader benefits to be had.
- How critical is the application to your business? What would happen to the business if the application had a major outage?
- Who in your organization has deep knowledge of the application? What happens when they either move on or retire?
- Who in your organization has enough knowledge in the technology to adequately maintain your application in the future?
- What is your strategy for when the technology is no longer supported?
- How much are you willing to spend integrating the application with newer technologies as they are developed (new reporting, monitoring, etc)?
- How much more do you think you’re spending on maintenance and infrastructure for this application than you would if it was built today using modern technologies and infrastructure practices?
Start weighing the application’s importance to the business against the risks that the technology will not be supported in the future. You should also consider the fact that finding people to work in aging technologies can be very difficult and prohibitively expensive. The cost of modernization is suddenly far less than the cost of supporting the application over time.
#2 DO Target a Limited Scope
Rome wasn’t built in a day. Likewise, your software portfolio took a significant amount of time and planning to build up to the point it’s at now. We rarely recommend that clients attempt to modernize their entire organization’s portfolio all at once. The task would be overwhelming for one, and more importantly some key learnings will come out of each modernization project. Inevitably, you will try some things that make sense up front only to realize that they didn’t work out. We’re all humans who like to learn and iterate. If you touch your entire code base all at once, those iterations can become costly and frustrating.
To target a limited scope, take stock of your technology assets and application landscape, then ask the questions from #1 above for each app. From there, you can set priorities and agree on the most immediate needs.
#3 DO Assess an Application’s Business Value
There’s a tendency with most organizations’ app mod initiatives to start by thinking about how exactly they’ll modernize. One approach to app modernization, for example, is called Rip-and-Replace. Basically, this means to rewrite, verbatim, an existing application on a new platform and/or using new technologies. Instead of starting with how, start with why. Everything we do as technology leaders and software developers needs to have a purpose. It’s this line of thinking that naturally leads us down the path of looking to define what value our applications provide to the business.
Many times we’re looking at legacy software that was written one to two decades ago. It’s hard to imagine any business, enterprise, or market that hasn’t changed significantly over that period of time. Now is the time to transform not just the technologies an application uses, but how the application serves your business. What needs–on the part of your customers or team–does it meet? From there, modernizing any application should result in two outcomes for the business: (1) stability for the future and (2) cost savings tied to utilization of new technologies and platforms.
#4 DO Assess The Level of Investment You’re Willing To Make
After understanding the why, now is the time to consider how you’ll execute your app modernization. “Application modernization is not one thing,’” says Gartner research director Stefan van der Zijden. “If you’re faced with a legacy challenge, the best approach depends on the problem you’re trying to solve.” We mentioned Rip-and-Replace above, but there are really four main approaches to consider: rehosting, refactoring, rearchitecting, and rebuilding.
With this in mind, know that each of these approaches presents a unique set of value propositions. Think about these approaches and select the one the makes the most sense based on:
- value of the application to your organization,
- cost of maintaining the application, and
- cost of infrastructure to support the application.
Generally, the more you invest today, the more you’ll reap in benefits in the future. An experienced partner can also help you sift through the available options for your specific project.
#5 DO Realize It’s More Than Just Software
The technical side of software development is just one piece of the puzzle. The trends in software development over the last five-plus years have shifted to a more holistic understanding of software as a gathering of tools, technology, people, and process. App modernization should also include modernization of your software development process and DevOps stories. Implementing Agile and CI/CD should go hand in hand with building modern software. Use this time to level up all of these capabilities.
#6 DO Be Ready for Cascading Challenges
Tesla drew more attention than usual in 2018 when, after years of setbacks, they brought production of the Model 3 to 5,000 units per week. This was a great milestone for the company, and cause for a huge celebration. However, it wasn’t all smiles over at Tesla. Turns out, making that many cars means you have to deliver that many cars. This is a great example of a cascading challenge.
As we improve certain aspects of our software development practices, we create bottlenecks that weren’t there before. For instance, developing features more quickly often puts unmanageable pressure on QA. Developing features more rapidly, without upgrading the DevOps story that accelerates release of those features, means that valuable software sits “on the shelf” gathering dust rather than being recognized by end users.
With some intentional and thoughtful planning, and the support of an experienced partner, these cascading challenges can be accounted for and avoided entirely.
# 7 DO Partner Up
Rapidly evolving web technologies, cloud solutions, service offerings, and Agile delivery practices–these are all things that can be new to companies as they work to become future ready. An experienced partner will have the tools to not only help you watch out for every item in this list, but execute on them as well.If you have questions about how to get started on your own app modernization journey and want to ensure your project is pointed in the right direction from the start, reach out today.