Every aspect of your business is automated by powerful applications. As these systems are modified, they often become more expensive to operate, slower to adapt and riskier to maintain, which can be a significant drag on your business when budgets are tight and competitors are threatening.
Modernizing applications has emerged as a best practice to address these business issues. With application modernization, you can extract more business value from your existing software assets, making this pragmatic approach the top priority for your senior IT peers, according to industry analysts.
Application modernization addresses a number of key pains faced by CIOs and IT departments: reducing the costs of operating, maintaining applications, lowering the time and risk required to adapt applications to new business needs and allowing proven business processes to be accessed and reused throughout your organization.
Choosing the ideal path is the domain of application portfolio management. APM collects cost, value, risk and complexity metrics to help you determine your highest priorities for modernization. In this article, however, we’ll take a look at the next step. That is, how to understand the reality of your applications in order to select and fast track your modernization engagements.
Application modernization activities can take many forms, depending on your business needs and technical realities. They could involve transformational improvements by shifting application workloads to more flexible and lower cost platforms. Or, it could involve continuous improvements, for example, re-architecting applications or modernizing development and testing tools and processes. Let’s take a brief look at several of the key modernization options.
Transformational improvement: It takes massive hardware resources to run your core business processes, but is there a more cost-effective platform than your current hardware? Hundreds of companies have shifted platforms without disruption – and with millions in savings.
Continuous improvement: This path covers ongoing, incremental approaches to modernizing your application portfolio, for instance:
- Application improvement: This can involve renovating existing applications to eliminate dead, non-standard or inefficient code. It can also involve service-enabling, or improving the architectural quality of, applications. This path yields more maintainable applications and better access to existing, proven business processes.
- Process improvement - development: This path emphasizes improving the tools and languages used to build your applications. For instance, the efficiencies that development teams accrue via integrated development environments are massive.
- Process improvement - testing: Effective testing can avoid embarrassing delays and business outages. But when application testing relies on old tools and methods, there is continued risk. Modernization here suggests incorporating modern tooling and practices to thoroughly test applications before customers must rely on them.
Using a “SCALE” to Weigh your Options
Modernization is an iterative process. You may start with one modernization solution, generate benefits, and then reinvest part of those savings in the next modernization activity. But how do you get modernization projects moving?
When changing an application or the processes around the application, it is imperative to understand the reality of the applications themselves. Like shining a light in a dark room identifies obstacles, assessing your applications helps speed modernization by avoiding the pitfalls that complexity brings. In this section, we’ll look at a step-by-step process for conducting this assessment.
As new lines of business and functionality are added, applications grow. In fact, many companies now manage application portfolios with tens or even hundreds of millions of lines of code. At least initially, it may not be your goal to modernize the entire application portfolio, so how do you narrow the focus of your modernization effort? Appropriate scoping is critical to avoid over-resourcing a modernization project.
Static analysis tools are generally used at this stage to determine what’s left in and what’s taken out of a modernization project. In some cases, the targeted application may have well-defined boundaries – it is clear what is “in” the application. Analysis helps prune away focus from unnecessary peripheral elements of an application and locate related but forgotten code that should be included. This ensures that your modernization effort will focus on the complete application.
Once you have scoped the boundaries of the application, it is important to scope within the system too. Most large applications contain vast amounts of unused “dead” code. This code is redundant and doesn’t need to be migrated, renovated, maintained or tested.
Once the initial scope is defined, you have a targeted set of code for modernization. The next step is to understand how the application should be modified, but again, you don’t want to wade through millions of lines of code to determine required changes. You want to streamline efforts. This can be done by placing your applications into their appropriate context – geographic, business process, architectural or whatever perspective makes sense to you.
For instance, let’s say your modernization goal is to increase the flexibility of your account management system. Account management could encompass a variety of interconnected systems. But that doesn’t matter to you as a business owner; you want to modernize that business process. By filtering your analysis to include only the appropriate business process, you’ve narrowed your effort to a smaller set of code – further focusing and simplifying modernization.
You have now focused your attention on the subset of your portfolio that is relevant for your modernization goal, and you can now apply analytical effort. Exactly what analysis is conducted in this stage will vary depending on your modernization path. For instance:
Transformational modernization: This approach generally involves changing the platform or deployment model of an application. As such, it is important to understand how the transition affects the applications’ interrelationship with data stores, users and other applications. Static analysis is typically used to determine “points of interest” in an application that, for example, must be changed for a platform migration, where data access may need to be reconfigured to consume data correctly on the new platform.
Application modernization: Architectural and coding inefficiencies tend to creep into applications over time, which can lead to higher maintenance and hardware costs. Here, static analysis is used to locate inefficiencies and help developers enhance code quality. The result is cheaper, readily adaptable systems.
Development process modernization: Improving the efficiency of day-to-day development can have a major impact on IT’s ability to support the business. Development teams use this analysis to modify applications to support new requirements, which often leads to productivity gains of 40 percent and above.
Test process modernization: Testing efficiencies can have a dramatic effect on the throughput of your development team. Analysis in this case helps narrow test cases to relevant code only. This allows automated and manual testing to work with a smaller subset of application code. Analysis also assists in identifying code anomalies and weaknesses that need to be more thoroughly tested. Again, promoting efficiency in the testing process.
The kind of information collected by application assessments will vary depending on the goal of the modernization activity.
Launch and Execute
At this stage, we have focused our attention on the subset of the application portfolio relevant to our business goal and we have collected insights into the most relevant application. It is now time to launch our modernization project. Throughout, the execution analysis will continue to add value as actions are modified and checked based on assessments of the reality of the application portfolio.
Analysis and measurement will also be of critical value for monitoring the success of the modernization activity and re-allocating resources as appropriate.
Modernization is recognized as an efficient way to derive more business value from the applications running your business, and getting to modernization fast requires insight into those applications. Using these best practices for narrowing analysis to what matters most, you can accelerate modernization and get the business value you expect.
Register or login for access to this item and much more
All Information Management content is archived after seven days.
Community members receive:
- All recent and archived articles
- Conference offers and updates
- A full menu of enewsletter options
- Web seminars, white papers, ebooks
Already have an account? Log In
Don't have an account? Register for Free Unlimited Access