If you ask IT professionals to describe their businesses' strategies for application modernization, you're likely to hear answers that center on technology.
They may tell you how they're migrating on-prem apps to the cloud, moving apps already in the cloud to new types of cloud services, or refactoring their apps to run as microservices.
In other words, when many folks think about app modernization, they think in terms of technology change.
I'm here to tell you that this is the wrong approach to application modernization. Instead of modernizing technologies, businesses really need to modernize their application development and deployment processes.
Allow me to explain by discussing why a process-based approach to app modernization is what organizations must strive for, along with actionable guidance on how to modernize application delivery processes.
App Modernization: A Never-Ending Story
A technology-centric approach to app modernization falls short simply because technologies constantly change. The technical innovations that make your app "modern" today may leave it looking like a legacy app one, three, or ten years from now.
For example, when application modernization became a buzzword about a decade ago, cloud technologies like Infrastructure-as-a-Service (IaaS) were at the core of many app modernization strategies. At the time, IaaS was a big deal to many organizations that had previously hosted workloads on-prem. To them, the concept of being able to run your apps on infrastructure managed by someone else and pay only for the resources your workloads consume was revolutionary.
Today, of course, IaaS feels much less like a big deal. It's still valuable, but it has become so commonplace that it is no longer at the center of the app modernization conversation. Instead, folks today tend to talk about newer types of technology and technical concepts, like containers and serverless functions.
This means that if your app modernization strategy focuses on updating your applications to take advantage of the latest, greatest tech (whatever that happens to be at the time you launch the initiative), your app will sooner or later cease to be innovative. Nor will it excel at delivering the most significant competitive advantage to your business. And in many cases, you won't benefit from the latest security protections, which are essential for staying ahead of evolving threats.
A healthier approach to app modernization is to focus on modernizing your processes. Despite momentous changes in application deployment technology over the past decade or two, the development processes that best drive software innovation and efficiency – like the interrelated concepts and practices of agile, Continuous Integration/Continuous Delivery (CI/CD), and DevOps – have remained more or less the same.
This is why every business's real focus should be modernizing its application delivery processes to take advantage of the most innovative techniques. When your processes are modern, your ability to leverage modern technology and update apps quickly to take advantage of new technology follows naturally.
How to Improve the App Modernization Process
The challenge for many businesses, of course, is actually going about modernizing the software delivery process in ways that make change faster, easier, and safer. Which specific processes should they modify, and how can they overcome the hurdles they're likely to encounter along the way?
To answer those questions, let's walk through some process modernization tactics that can help transform how businesses "do" software, regardless of which technologies they use.
1. Find problematic processes through value stream analysis
The first step in process modernization is determining which processes are most in need of change. To gain that insight, value stream analysis is in order. Value stream analysis provides insight into the tasks that occur within software delivery and how long each one takes – similar to how reviewing a budget helps teams hone in on ways to improve financial outcomes by tackling the largest budget items first.
When you perform a value stream analysis of software delivery, you learn which parts of the application development process take the longest or require the greatest manual effort or which components of infrastructure management are most prone to error.
Although almost all of your processes could likely be improved to some extent, value stream analysis allows you to hone in on those most ripe for enhancement. It also helps you identify unnecessary tasks or steps that you can eliminate to make the deployment process simpler, faster, and lower risk.
2. Measure software delivery
Analyzing software delivery practices is most effective when you systematically and quantitatively track your processes. You can do this using frameworks like Google's DORA metrics, which measure the efficiency of existing software development and deployment processes.
A metrics-based approach makes it possible to track software delivery outcomes in a precise way. By extension, it helps businesses assess precisely how much improvement (or lack thereof) they achieve following changes to their software delivery processes.
3. Declare war on manual processes
If your organization is like most, your value stream analysis will surface a fair number of processes that your teams are still performing manually. Automating these wherever possible should be a priority. Automation saves time, reduces the risk of errors, and facilitates safer deployments.
In most cases, manual processes are the antithesis of app modernization for two reasons. One is that they slow things down and create inefficiency. The other is that manual operations tend to increase the risk of errors due to the chance that a human will overlook something important or make a mistake when applying a configuration, opening the door to a breach.
4. Refactor management processes and procedures
Just as you can refactor a monolithic application by redefining its architecture, you can redefine your management processes and procedures – such as your approach to application development and system administration. In many cases, increasing the speed of application deployments and implementing continuous deployment and delivery require rewriting software change management processes because legacy approaches, like those associated with waterfall, don't scale. They can't keep up with the pace of continuous delivery pipelines where new code is pushed to production multiple times a week or sometimes even more frequently.
Processes that are slow and manual should be replaced by automated processes to the extent possible. For example, software tests could be automated to save time and improve quality (because, too often, manual approvals are simply rubber-stamped, which means they slow down the testing process without adding value). In addition, processes that are overly complex could potentially be broken down into smaller, simpler procedures.
5. Change your process mindset
In addition to modifying processes themselves, app modernization should also involve changing the way organizations think about processes in general. By this, I mean pushing developers, IT admins, and managers to use automation by default when implementing processes.
This might seem unnecessary because plenty of IT professionals today talk about the importance of automation. Yet, when it comes to actually implementing processes, they tend to lean toward manual approaches because they are faster and simpler to implement initially. To enable long-term app modernization success, you need your teams to embrace automation as a way to save time and effort and reduce risk in the long run, even if it's more work upfront.
Overcoming Challenges to App Modernization
In the course of making the process changes I've just described, businesses often encounter issues like the following:
- Resistance to change: If manual or inefficient processes have been in place for decades and the business has kept running, some folks may question the value of changing things up.
- Lack of resources: Overhauling processes takes time and effort. IT departments that are already overstretched may be wary of committing resources to process changes.
- Lack of leadership: Without executives or managers guiding process modernization, initiatives can lose momentum.
These challenges are, to an extent, unavoidable. But they're also solvable. Part of the solution is to start small; instead of trying to overhaul all of your processes overnight, pick just a few and scale up from there. It's also a best practice to start with just one or two teams.
Once you've determined where to start, ensure that you measure software delivery using metrics, perform a value stream analysis to determine where you can improve, and make changes. After you've improved the proficiency of your initial teams, members of those teams can branch out and assist others to adopt similar processes and mindsets.
Businesses should also designate leaders to oversee modernization initiatives, as well as delegate responsibility for certain aspects of the process to personnel with the requisite skills.
A Modern Approach to App Modernization
Ultimately, the success of any app modernization project hinges not only on which technologies you choose to implement but also on how you implement them. Until businesses modernize the processes they use to build and update software, they'll always be behind the curve. But with efficient, reliable, secure processes in place, organizations are in a position to modernize their apps by taking advantage of the latest technological innovations whenever new technological opportunities arise.
Subscribe to The CTO Club's newsletter for more app modernization tips, tricks, and tools.