This article is part of an Essential Guide, our editor-selected collection of our best articles, videos and other content on this topic. Explore more in this guide:
1. - Approaches and tools for modernizing old apps: Read more in this section
- Top considerations before upgrading old apps
- Using a services approach to modernizing legacy apps
- Mobile computing's impact on application modernization
- Approaches and tools for app updates and architecture modernization
- Application modernization needs on the upswing
- How to tackle application portfolio assessment
- Challenges and trends modernizing apps and migrating to the cloud
Explore other sections in this guide:
- 2. - Utilizing the cloud for app modernization
- 3. - Getting mainframes and databases up to speed
- 4. - App modernization and cloud: Must-know terms
This article can also be found in the Premium Editorial Download "Business Information: Today's customer service starts with mobile, social consciousness."
Download it now to read this article plus other related content.
Manufacturers that use Lynden Inc.'s Web application for tracking shipments can now see the interface on any screen their end users are on—including mobile devices. That's because modernizing apps to support mobile devices is now a priority at the Pacific Northwest transportation and logistics firm, according to applications architect Rob Terpilowski. But doing so without redoing the server infrastructure calls for a more flexible application architecture.
Application modernization has long been associated with updating early mainframe-era applications, but that is changing as new social, mobile and cloud technologies arrive on the scene. Developers and other IT professionals are finding that even the newest applications need to be regularly updated with new functionality to keep up with the pace of innovation.
By the end of 2014, 78% of midsize and large businesses will complete or start legacy enterprise application modernization projects, according to Stamford, Conn., IT research group Gartner. Those figures do not include large-scale business architecture transformation initiatives or new Application efforts, both of which can include some modernization efforts.
"Modernization is needed for what was considered to be the latest technology only months ago," said Michael Azoff, an analyst at British research group Ovum. Even applications built last year may not work in tandem with new Web, mobile and cloud technologies.
Application modernization can take many forms. In the early days of client-server computing, apps were modernized using basic but time-consuming tasks, such as rewriting most of the application's code or "screen scraping," or deleting, the user front-end views, leaving logic and data architecture untouched. Those techniques are still used today, but many projects have broader mandates. That can include migrating applications from one platform, say, an in-house server, to another, like the cloud. Sometimes a project might involve the complete renovation of business and IT infrastructures and architectures.
What? You haven't modernized yet?
Key drivers for application modernization include a lack of support for older technologies, difficulty in finding staffers with legacy skills and business adoption of mobile computing and social media.
But more and more, application modernization projects are more often tied to increasing application value to drive business growth, according to Seattle software consultant and blogger Toddy Mladenov. As a result, he said, retooled application portfolios are being used to exploit competitive opportunities, largely by enabling the delivery of more services and ultimately closer ties with customers.
Scrape it, scratch it, rip it out
Application modernization is the repurposing of legacy software applications that lack the functionality required to meet current technical and business needs. The goal of application modernization is to create new business value from existing applications. Common approaches used to modernize business applications include the following:
- Refactoring, the revision or cleaning up of source code, is commonly used to reduce "technical debt," or gaps in functionality found in an application feature release.
- Re-engineering a legacy application in a new technology or platform using a service-oriented architecture can enhance functionality, improve scalability or meet the needs of developing an enterprise architecture.
- Screen scraping calls for deleting or "scraping" data from legacy apps and displaying it in a graphical format.
- Code conversion -- a developer converts legacy code into modern code.
- The rip-and-replace method calls for demobilizing old applications and building new ones from scratch.
- Extend-and-surround approaches call for putting legacy applications into software environments that can provide needed functionality. An example is moving a legacy application into a business process management layer, extending the applications with business logic.
- Virtualization and cloud deployment can be used to replicate a legacy environment in a way that allows it to be scaled and managed better.
Mobile computing changes how and when users access services, and the freedom it affords them often leads to increased transaction volume, according to Matt Brasier, head consultant for British consultancy C2B2. As employees and customers use mobile devices, they change their usage patterns, sometimes accessing a system outside of office hours. Applications must be able to scale to today’s load as well as to unknown load sizes of the next year and beyond.
Most legacy applications weren't designed to have a mobile interface. Introducing smartphones and tablets into the workplace means companies have to rethink how applications are going to be accessed from those devices. At the same time, they have to accommodate consumers using traditional desktop computers. For example, Azoff said, if a bank's customers are spending more time on smart devices, the bank has to figure out how to design a device-specific graphical user interface (GUI) for each type of device. Giving device GUIs the same functionality the desktop version has is the big challenge for the bank's developers.
"It's a conundrum, because if you build first for a large form factor—the desktop—and then you remove features for mobile, that tends to be not as efficient or performance-optimal as if you build it the other way around," Azoff said.
Big, big reasons
Typically, older applications are not designed to deal with vast amounts of data, but today businesses collect and create astounding volumes of data—that's partly the phenomenon known as big data. Another problem with older applications is most can't be updated quickly enough to meet today's constant stream of compliance-related, data-centric regulations, especially customer information privacy regulations. Also, many data protection issues have been created by the bring-your-own movement, as employees use their personal devices and mobile and cloud applications to access business data.
Big data technologies present an opportunity to expand the business value of applications, Mladenov said. But that can be a serious challenge to existing system architecture. For example, advances in business intelligence capabilities call for updating older medical applications, enabling mobile capture of more types of patient data that can be analyzed.
A higher calling
There is some confusion in the business world about the role of cloud services and applications, according to Brasier and consultant William M. Ulrich, president of Tactical Strategy Group, a business architecture and management consultancy.
Cloud computing is more of an opportunity than a driver for application modernization, Brasier said. Virtualization and cloud deployment can help, and both can be used to replicate and manage a legacy environment as it grows.
Just moving a legacy application as is to a cloud environment is not a viable option, Ulrich explained. "Cloud isn't architected that way." To move applications to the cloud, companies have to analyze, decouple and re-architect current systems.
The interconnectedness of business software and Web services today calls for a holistic approach: an application rationalization strategy and planning effort related to a company's entire software and services portfolio, even when only one or two applications need to be updated. In other words, said Ulrich, don't start modernizing applications without developing and implementing an architecture-focused, business-driven strategy.
"A business can't fix significant underlying architectural problems by smoothing over something with a bunch of new front ends," Ulrich said.
For more on application modernization
What is application modernization?
In an era of application modernization, mainframes undergo their own upgrades
BPM fills some, but not all, application modernization needs
Lynden's Terpilowski is moving the company from a traditional application architecture to a responsive-design architecture, which enables use of flexible layouts, images and user interfaces, but doesn't call for changing the company's underlying server infrastructure. Using these tools, the interface can adjust automatically to whatever the application pages are being viewed on: desktop, tablet or phone.
"This is allowing us to modernize these Web applications to support mobile computing without
incurring additional costs to refactor the server-side components," Terpilowski said.
Another holistic approach to application modernization is app portfolio evaluation, analyzing how new requirements will affect current applications, architecture and business processes. In this analysis, companies need to make sure business goals drive the plan to move current architectures to target architectures, Ulrich said.
Once advance planning has been done, choosing ways to do application modernization is relatively simple, according to C2B2's Brasier. The underlying approach to application modernization has been replacing legacy application components one by one. "That still remains the same," he said.