If you ask IT professionals to describe their business strategies for application modernization, you will likely hear answers centering on technology. They may tell you how they are migrating on-prem apps to the cloud or moving apps that are 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 may not be the right approach to application modernization. Instead of modernizing technologies, what businesses must do is 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 because technologies constantly change, and the technical innovations that make your app ‘modern’ today may leave it looking like a legacy app one, three or 10 years in the future.
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 for many organizations, which 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.
However, today, IaaS doesn’t feel like such a big deal. It is still valuable but has become so commonplace that it is no longer at the center of the app modernization conversation. Instead, now the talk is 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 technology (whatever it is at the time you launch the initiative), your app will sooner or later cease to be innovative. Nor will it excel at delivering the greatest competitive advantage to your business. And in many cases, you won’t benefit from the latest security protections, which are important for staying ahead of ever-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 modernizing your application delivery processes to take advantage of the most innovative techniques should be every business’s real focus. 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 is modernizing their software delivery process in ways that make the change faster, easier and safer. Which specific processes should they modify, and how can they overcome the hurdles they are likely to encounter along the way?
To answer these questions, let’s walk through some process modernization tactics that can help transform the way businesses ‘do’ software, regardless of which technologies they happen to be using.
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, like 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 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 makes it possible to focus on those most ripe for enhancement. It also helps to identify unnecessary tasks or steps that you can eliminate to make the deployment process simpler, faster and lower in risk.
2. Measure Software Delivery
Analyzing software delivery practices is most effective when you systematically and quantitatively track your processes. You can do this with the help of 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 the level of improvement (or lack thereof) they have achieved 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 not only saves time but also 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, overly complex processes 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 the goal of changing the way organizations think about processes in general. By this, I mean pushing developers, IT admins and managers to turn to 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 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 to save time and effort and reduce risk in the long run, even if it is more work upfront.
Overcoming the Challenges to App Modernization
In the course of making the above process changes, businesses often encounter issues like the following:
- Resistance to change: If manual or inefficient processes have been in place for decades and business has kept running, some people may question the value of shuffling 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: If there are no executives or managers guiding process modernization, initiatives can end losing momentum.
These challenges are, to an extent, unavoidable. But most of them are also solvable. Part of the solution is to start small; instead of trying to overhaul all your processes overnight, pick a few and scale up from there. It is also best practice to start with just one or two teams. Once you have determined where to start, ensure that you are measuring software delivery using metrics, and perform a value stream analysis to determine where you can improve and make changes. After you have 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 who have the requisite skills.
Conclusion: A Modern Approach to App Modernization
Ultimately, the success of any app modernization project hinges on which technologies you choose to implement and, more importantly, how you implement them. Until businesses modernize the processes they use to build and update software, they will always remain behind the curve. But with efficient, reliable and secure processes in place, organizations are in a position to modernize their apps by taking advantage of the latest innovations whenever new technological opportunities arise.