Upgrading to the latest Rails versions is a critical investment to protect platform stability, prevent security breaches and enable future releases.

Rails upgrades can also feel like a nuisance: They usually take longer than expected, and they pull your engineer away from day-to-day work and feature development where their domain expertise is critical.

Worse, along the way, the upgrades can cause unanticipated breaks. You are not only changing the foundation an app sits on, but also changing the cruftiest parts of the app that no one has touched in years.

Over more than a decade, we’ve built an expertise in how to make Rails upgrades seamless, while your team continues to deliver critical features and ship new products.

That’s why companies like GitHub, Gusto and ZenDesk relied on Test Double, which has more than 10 years experience working in large-scale Rails applications.

One of our consultants was even selected to speak about Rails upgrades at RailsConf 2023.

We’ve seen the challenges often enough—across multiple Rails versions and on numerous teams—to observe a few common frustrations with major Rails upgrades that end up costing time and money.

Problem 1: You don’t have the right team in place to upgrade Rails.

Rails is one of the largest codebases, and there is no core committer who knows all of Rails. The guide to upgrading Ruby on Rails is more than 100,000 words.

If your team hasn’t dealt with upgrades before, they’ll need to put their daily work on hold to learn it on the job. That means it will be a slow process, as your developers learn this technical task on the job.

Your team will also likely have a higher risk of introducing regressions while doing this work themselves.

The solution:

In contrast, we’ve developed an efficient process for completing Rails upgrades in a manner that has very little chance of causing other issues. We’re the low-risk option for Rails upgrades.

Our consultants have already built the expertise to minimize risks and avoid common mistakes – allowing your team to stay focused, without disruption or slowdown of day-to-day production.

Bonus: We also have developed a system that allows for sequential upgrades from one version to the next, because we want upgrades to carry forward without our involvement.

Problem 2: Shifting your team’s focus slows down feature development.

The changes demanded by an upgrade tend to be so broad-based and sweeping that it can feel necessary to halt all feature development until the upgrade effort is complete.

When making incremental progress migrating your code to a new API, it’s also easy for that progress to be unmade by other team members who might not yet be privy to each new way of doing things that’s been necessitated by a later Rails version — leading to breaks and more delays.

Alternatively, an upgrade that’s sequestered to a long-lived branch will inevitably devolve into a pressure cooker as patience wears thin and as merge conflicts become increasingly severe.

The solution:

Outsource the Rails upgrades. This may not sound like an ideal investment to make, but here’s why it makes business sense:

Companies are best served keeping their institutional knowledge focused on feature delivery, as the feature delivery within their systems require in-depth knowledge of their industry and business.

A company that uses a trusted partner to do things that are outside of their core competency can better leverage their investments in their own engineering staff.

Similarly, Rails upgrades are most efficiently completed by companies who have a history of completing them, successfully, with some of the biggest Rails codebases in the world.

Deploy your team’s deep expertise on the problems they are best equipped to solve. If you needed a new mobile app built when you have a largely backend/API engineering staff, you wouldn’t wait for a few of those engineers to come up to speed while building it. You’d instead find the expertise you needed for mobile elsewhere. Do the same for Rails upgrades.

Added value of hiring consultants

Ruby on Rails expertise and codebase renovation is a sweet spot for Test Double.

Along the way, our experienced consultants can radiate back a fresh perspective on your system, your process, and your teams. We believe in leaving teams better than we found them.

While at Gusto, our team fixed 1,700 test failures from the initial upgrade, protected the behavior of the existing code, and rolled it out on time and under budget. Gusto software engineer Daniel summed up our work:

Test Double brings a lot of good experience and knowledge—not just with the project objectives, but also with any other issues they see. They have been able to weave in code improvements when time is available, striving to leave it in a better state than they found it.

Contact us now for a free consultation on our approach to Rails upgrades and if it makes sense for your team.

Test Double Editorial Board

Person An icon of a human figure Status
A collaborative of Test Double leaders
Location An icon of a map marker Location
Across the U.S. & Canada