As your business has grown, its office space requirements have changed. New buildings may be bought and sold as divisions are launched and canceled. Existing offices may be heavily renovated to make them more flexible and efficient, and cubicles may be constantly adjusted to support smaller organizational shifts. In each case, the portfolio of office space is adjusted based on the needs of the business.
Your portfolio of enterprise applications is no different. These systems automate and govern your core operations, so they must be well-aligned with the needs of your business in order to yield value. Determining the best steps toward this alignment and then acting on them is the idea behind the enterprise application modernization life cycle.
The enterprise application modernization life cycle follows four steps: First, understand the contents of your application portfolio. Then, manage the portfolio to determine what path would yield the most value for a given application — for instance, replace the system with a packaged application or redevelop it. Next, act on the road map through automated approaches to modernization. Finally, maintain and enhance the application on an ongoing basis so that it continues to evolve with business requirements.
Now, let’s look at each stage in the modernization life cycle individually.
Understand What You Have
In any planning initiative, you need to know where you stand before you can plan where you want to go. For most organizations, this is a substantial challenge. After all, application portfolios contain systems that were developed in a broad spectrum of languages — from Java and Visual Basic to Cobol and Natural, and everything in between. Skills to assess these different environments are scarce, and productivity tools tend to focus on just one particular language, leaving your team with a large blind spot.
Second, your applications were developed, modified, and modified again over the course of years or even decades. The resulting complexities can further obscure an understanding of the portfolio’s structure and its business function. Without deep insight into how applications execute operations, you can’t be expected to know how they need to be adjusted.
Successfully managing your applications throughout the life cycle depends on success at the understanding stage. You must ensure that your team has a holistic view of the portfolio — both across diverse environments and deep into the application, from a business level to an implementation level.
Manage the Path to Modernization
Once you have gained an inventory and understanding of your portfolio, you’re able to make management decisions about the best path for each application. These decisions should be made based on information regarding the business and technical value of your applications.
The business value can be uncovered in many ways. For instance, the generation of business processes and rules embedded within an application can provide a firm view of what operations are automated by a particular application. This insight gives a strong indication of how much effort should be expended on a particular application.
From a technical perspective, mining industry standard metrics and information regarding the inventory of environments can provide a basis. This is just as a property manager may look at a particular building and decide that it is too costly and not able to be renovated, and as a result it may be a candidate for divestiture.
When management views this application complexity and technical data in the context of business value, your organization can best determine the optimal path. This may be to outsource the application, redevelop it, SOA (service-oriented architecture) enable it, or perhaps return it to production for ongoing maintenance. Again, this stage of the life cycle requires that your team have access to business level and technical level information across and throughout the application portfolio.
Modernize the Applications to Increase Their Value
Once you have selected the optimal path for your application portfolio, enterprise application modernization can take many forms. After all, modernization is about aligning the application portfolio so that it maximizes its value to your organization — regardless of the tactic. The path that you have selected will be based on the information collected and analyzed during the first two stages.
For instance, you may uncover a collection of key business processes that are duplicated by several applications. This may lead you to investigate how to retire the overlapping systems without negatively impacting the rest of the portfolio. Or you may find that a key process that would make an ideal candidate for SOA enablement is deeply intertwined in an existing application.
Locating and isolating this process to ready it for SOA may be your strategy here. Or, when you compare your team’s resources with the portfolio’s inventory, you may determine that you would gain from outsourcing the application. Or perhaps you’ve decided to redevelop an application into an environment that is better aligned with your business requirements — say, due to architectural requirements.
No matter which option for modernization you choose, you’ll want to get there in a fast, low-risk, and cost-effective manner. This implies that you are executing the application modernization activity based on rich and current insights into the application portfolio.
So, in our example of retiring an application, we’ll need to locate and account for all potential interfaces between the targeted application and related databases, systems, etc., to avoid unintended impacts.
In the case of outsourcing an existing application, you would want to ensure that you had developed a thorough repository of insights across the application portfolio in order to streamline knowledge transfer and speed the transition.
It also implies that you are relying on technologies that can automate key steps in the process. In the case of redeveloping an application, we would benefit from modeling our existing business processes and rules. This would ensure that any redeveloped application would align with our operational requirements.
Automating this collection of processes and rules is a smart way to get to the final goal of a modernized application faster. Or, in the example of moving to a service-enabled process, we would want to automate the step of isolating a targeted process into a standalone, ready-to-wrap component. Doing so would speed the transition from a monolithic application to a more flexible and reusable system.
Maintain the Applications on an Ongoing Basis
The life cycle continues to advance after an application modernization activity has been completed. Your team will generally place the modernized application back into production for ongoing, iterative maintenance to occur. During this stage, enhancements may be requested from management and business analysts that ensure continual alignment of the application with operational needs.
Thorough understanding of the application portfolio also helps us to execute during this stage of the life cycle. For instance, management will want easy — preferably browser-based — access to information about their applications’ health and the structure of the embedded business processes.
This can help them to better plan and specify day-to-day changes to their applications and spot future opportunities for modernization. For development professionals, these insights can speed up analysis and documentation activities so they can focus their efforts on making needed changes.
The Enterprise Application Modernization Life Cycle Approach
Your application portfolio represents a valuable asset for your organization; an asset that must adapt to shifts in your organization’s needs. By adopting an enterprise application modernization life cycle approach to governing your portfolio, you will be better equipped to identify, select and execute initiatives that yield more business value from these core applications.
However, this requires the ability to understand your applications across multiple environments and also at a rich level of insight. Solutions that focus on just one language or on just the surface of your portfolio won’t offer the enterprise-level of support you need. Further, it requires the ability to accelerate modernization activities so that you can more quickly reap the rewards.
Charles Dickerson is senior vice president atRelativity Technologies, Inc., a provider of enterprise application modernization solutions. He has 20 years of product marketing and product management experience in the software industry, and is an expert at successfully defining and delivering products for software developers.