Organizations painstakingly plan strategies to modernize legacy applications. They answer the financial, business and technical questions, then they roll out and experience an “oops” moment because they overlooked basic facts about and uses for containers, data and other tools.
If a software modernization project stumbles or underperforms, the cause often can be traced to a number of tools or processes. Sometimes, for example, the cause of failure could be not doing a user test. Other times, it becomes clear that a different choice of application modernization tools or services could have avoided project time or cost overruns. To avoid these moments, check out these tools and processes that modernization project veterans think are often overlooked.
Forgetting software modernization basics
Organizations often jump into software modernization projects without creating repeatable processes for DevOps and NetOps. Don’t overlook this first step, or rework will be a constant problem, said Brad Irby, software architect for Brad Irby Consulting LLC. They also underestimate the time and effort it takes to build this foundation. “It’s not trivial, ” he said.
Companies often forget the user when they rush to modernize legacy applications. “The user experience must be positive. Otherwise, people will abandon the modernized apps,” said Theresa Lanowitz, co-founder and head analyst for Voke Inc.
In software modernization, everything must be done with the customer in mind, Lanowitz said. Nonfunctional requirements, such as performance and security, must be front and center of any app modernization effort, and too many organizations overlook them.
Surprisingly, organizations often overlook performance optimization in app modernization projects, Lanowitz said. Some might think a modernized app deployed to the cloud magically cures performance issues and negates the need to test production performance, but that’s not the case. Ensure that performance engineering begins at the beginning of projects and covers app performance when it’s in production.
Theresa LanowitzAnalyst and co-founder, Voke inc.
Look for application modernization tools with performance engineering capabilities, Lanowitz said. There has typically been a lack of integration between performance test and monitoring tools and collaboration between the teams responsible for each task. Tools such as Apica and Neotys combine performance testing and monitoring to better understand how applications will behave in production.
Lost in the cloud
Businesses also tend to underestimate how long it takes to refactor apps when modernizing them for cloud deployment, Irby said. Refactoring code to take advantage of cloud capabilities and meet requirements for hybrid cloud environments is not a trivial exercise. The good news is that automated, cloud-focused refactoring tools can reduce labor time, and refactoring can be done while the legacy application continues to run.
In cloud-centric app modernization, transition teams should overlook problem areas, such as container security and data support, said Soliant Consulting Technical Project Lead Steve Bennett. Developers and architects find containers very useful to modernize apps, but they sometimes overlook the security risks of storing secrets in containers. Storing sensitive information in a Docker image or repository is a bad security practice, because several project team members typically share that repository code. “At any given time, this code resides on a number of machines, exposing the secret to anyone who can then gain access to these secondary machines,” Bennett said.
In a software modernization project, architects also overlook the need to support existing data and structure for legacy applications. “We often inherit a database that’s not well-documented or not documented at all,” Bennett said. Data integrity for relationships isn’t always there in a legacy system, which may have undefined foreign keys. With PHP 7.1 and strict typing, anything outside the bounds of what was defined for a database field in the code will cause application errors, which can lead to orphaned relationships between tables. Or fields may contain a mixture of character sets, which can cause issues.
Project teams also neglect to test not just the legacy data, but the new data generated when modernizing legacy applications, Lanowitz said. Test data for security and performance often, particularly as close to the production release date as possible. Make sure the size of the data can scale and perform appropriately. Test security to make sure that customer information cannot be compromised. In security processes, abide by industry compliance standards, such as payment card industry, personally identifiable information and other similar rules. Tools to manage and virtualize test data include CA Test Data Manager and Delphix, while tools to prevent data leaks include products from Check Point and Skyhigh Networks.
There are many i’s to dot and t’s to cross when setting up team processes and choosing tools for software modernization. By keeping a user focus, development teams can avoid overlooking ways to deliver high-quality and highly usable apps.