Rob Horton is a Senior Consultant and the Sustainment Practice Lead at ThreeWill. His experience includes over 20 years leading software architecture, design and development focusing on support tools, automation and e-commerce for large corporations and his own small businesses.
Let’s say you own a family vehicle. You saved for years to be able to afford it, worked with the dealer to make sure it had exactly the features you were looking for and were beaming with pride when you drove it new off the lot. Let’s say that was 15 years ago. In your mind, it is still a beautiful car, well maintained, and in good condition. But does it still meet your needs? Or is it less dependable, more expensive to maintain, and not quite as good as newer models? Or maybe you have started a family, became an empty nester? It may be time to modernize your means of transportation.
In this article, we will discuss what it means to modernize an application, and when it makes sense to do so. We will also review some reasons for modernization and what steps are needed to be successful. Anyone who is responsible for meeting an application’s underlying business outcomes should be contemplating modernizing their application, especially those who own a portfolio of applications and many business outcomes.
What is Application Modernization?
Let’s start by defining application modernization, it is: Taking a business-critical legacy application and updating its infrastructure, internal architecture, and feature set to meet current requirements and to take advantage of modern technologies. Think: from large and rigid to small and flexible.
Taking a business-critical legacy application and updating its infrastructure, internal architecture, and feature set to meet current requirements and to take advantage of modern technologies.
Application modernization is an integral part of any healthy application’s lifecycle: Plan, Develop, Test, Deploy, and Maintain. Done correctly, it can serve to accelerate the cycle by breaking the application down into logical components and increasing velocity by focusing on individual pieces rather than the whole application. For example, if your application’s approval process were its own component, enhancing that feature would only involve that portion of the application so long as the component’s interfaces aren’t changed. We will explore additional accelerators later in this article.
Is a Modernization Effort Necessary
Much like your family vehicle mentioned in the introduction, there are some obvious and not so obvious signs you may need to modernize your application. Below is a list of questions to help determine if a modernization effort is necessary:
Has the value of your application diminished?
- When you first rolled out your application, it met a vital business need. Now the business need has changed, and your application only partly meets the need and users are looking for workarounds to not use your application.
Does it cost more to operate and maintain than it’s worth?
- As application platforms near their end-of-life, they can become expensive to maintain. Also, the platform you originally rolled your application out on may have served multiple purposes, but now it only serves your application and infrastructure costs can’t be shared.
Are the costs of adding new required features too expensive?
- Large legacy applications can require unique, historical development knowledge that is hard to come by. The cost of transitioning application knowledge from one team or provider to the next can become increasingly expensive. Changing one feature of a monolithic application can be as costly as changing multiple features.
Is your enhancement backlog healthy and growing?
- Nothing generates more value than a vital application that is constantly being enhanced. If you have a strong backlog, you likely have a vital application. If the pace of updates can’t match the requests, your application’s vitality will fade, and users will go elsewhere to meet their business outcomes.
If you find yourself answering yes to one or more of the questions above, don’t worry, there is good news. There are many benefits to modernizing your application. You have already made the toughest investment: justifying the application, to begin with. Modernization is just the next step in your application’s lifecycle.
Advantages to Modernize an Application
Some of the many advantages include:
Lowering operational costs
- Maintaining a legacy application can be expensive. Cost-sharing for an aging platform decreases as other applications move off or sunset. Also, the aging platform’s support costs increase as they approach their end-of-life.
Protecting your investment
- You have already made a large investment in building your application in the first place, modernizing it protects that investment. Without continual improvement, your application’s value proposition diminishes.
Keeping your application relevant
- The more you invest in your application, the more invested your users become. Users will not look elsewhere to meet their business outcomes if they are confident your application is keeping up with their needs.
Taking advantage of newer technologies
- That feature that was once cutting edge and your application’s competitive advantage is now table stakes for new applications. To continue to deliver business value to your application’s user, you need to leverage the latest technologies.
Lowering your enhancement costs
- Componentizing your application will lower your enhancement costs by allowing you to share components and features across your application portfolio. Additionally, you can lower development costs by compartmentalizing that feature’s lifecycle versus the application’s overall lifecycle.
- Your older application may not be cloud-aware and multiple deployments may not be possible, let alone cost-effective to support and maintain. Modern applications embrace cloud architecture and are designed to be widely deployed, giving your application the chance to broaden its user base, business value, and impact.
Accelerating application lifecycle
- Breaking your monolithic legacy application into a collection of feature components gives you the opportunity to add features, innovate, and integrate quickly. The previous overhead of full system testing and expensive integration is eliminated.
The Application Assessment
Now that you understand some common concerns of an aging application and what benefits can come from a modernization effort, let’s determine if your application should be modernized. You will want to begin with an application assessment.
To do this, start by inventorying your application’s features and create a list of its core functionality. Based on that inventory, plot features on a graph from easy to difficult against increasing potential value. Determine if functionality can be modernized in stages, and if so, focus on those features that are easiest to implement with the highest value. If the return is enough, move forward. In a future blog post, we will outline our Modernization Assessment service offering, which helps application owners complete this process.
Aging applications that still facilitate vital business outcomes need to be upgraded with modern technologies so that they can continue to add value and remain relevant. Modernizing your application will lower operating and enhancement costs, increase scalability, and introduce the newest technologies. You have spent the money, time, and resources building your application now is the time to protect that investment. The only question remaining is, are you going to buy that new car?