Earlier this week, Rainforest’s CIO Derek Choy and Customer Success Manager Akhila Iruku sat down to discuss a sometimes-neglected topic in the QA world: ensuring the quality of legacy code. They were joined by Thomas Teruel, Application Development Product Manager, from Integris Health, whose team uses Rainforest as part of their legacy code management strategy. Here are just a few key takeaways from their conversation on creating a more effective strategy for dealing with legacy code.
“A common misconception is that legacy code is bad code, but that’s not necessarily true,” says Akhila. “Often legacy code is maintained by engineers who didn’t originally write that code, but are continually patching it. It often becomes deprioritized because it gets complex and messy to support.”
Legacy code often supports critical functions of the application, but because it is relatively stable it seldom takes priority when allocating development resources. Teams often focus on newer, more volatile areas of their codebase. This focus can leave older features susceptible to regressions and other problems that may impact customer experience.
Derek pointed out that not testing legacy code can include lost revenue and decreased customer satisfaction. Legacy code doesn’t exist in a vacuum, changes are being made around it that can impact the quality of the application overall. What’s more, while functional testing for legacy code generally doesn’t require additional effort, fixing bugs that may crop up around legacy applications can be more challenging to resolve.
Most teams start work on a retrospective for production issues. Akhila recommends doing a retrospect on pre-production issues as well, spending at least 3 months tracking pre-product defects, then conducting a deep root-cause analysis. In the end, they should have data around three essential metrics:
After that, teams can reassess your testing process, understand where defects are coming from, and build a data-driven QA strategy. This analysis can help you determine how much testing your legacy applications and features really require -- for very stable features, a light suite of smoke tests might be enough. For features that have issues more frequently, a more robust plan may be needed.
Because customers don’t know what’s considered “legacy” and what’s not, it’s important for them to have a seamless brand experience no matter what application they’re using.
Akhila and Derek turned to Thomas from Integris Health for more context on how his team approaches legacy code testing. Thomas’ team recently inherited a few legacy applications, and explained how they’ve approached quality assurance for those apps.
Integris Health takes a customer-focused approach to their legacy applications. Because customers don’t know what’s considered “legacy” and what’s not, it’s important for them to have a seamless brand experience no matter what application they’re using. His team works to assess every legacy application with end-to-end testing to ensure that they’re still up.
Since these applications are still used by customers, Thomas’ team focus on providing the best support possible, collaborating with the support team to provide phone, chat and email support for legacy apps. “If I can’t get to every application to assess it, supporting it and letting the customer know -- making them feel empowered by communicating with someone on the other side of the application -- is very gratifying for them,” says Thomas. This support-focused strategy helps Integris Health have more confidence that their customers are satisfied with their products, even if they happen to be using a legacy application.
During the session, Akhila, Derek and Thomas went even deeper on best practices for managing legacy code and applications. Download the on-demand recording of the webinar now to learn more about working effectively with legacy code, including how Integris Health uses test automation and Rainforest QA as part of their legacy testing strategy.