No one really wants to do an upgrade

So many things could go wrong, and maintaining the status quo can feel, well, safe, right? Except the longer you wait the more likely something will go seriously wrong.

We can help you plot out the best course for an upgrade based on your unique situation and how your engineering team needs to tackle daily production work.

Find out how the best kind of upgrade can go

How can we help?
Test Double logo rubber duck programmer sitting on a messy pile of LEGO bricks

Collaboration pays off for Gusto

Test Double came in to boost Gusto’s technology stack and upgrade from a legacy version of Rails, so their team could continue to deliver critical features and ship new products.

Rails upgrades can be complicated. We brought together a comprehensive approach that considered things like impacts to unexpected areas, working within unique constraints of their team, and minimizing disruption to to critical day-to-day production.

A more predictable upgrade plan built on experience

Find out how we did it
Piggy bank

Get people onboard up and down the org

We focus first on getting the upgrade itself completed without disrupting the day-to-day. We also put a plan in place to leave the team in a better state to run with upgrades moving forward. So no one needs to stress about future upgrades.

We'll work with your team to proactively identify risks and our experienced consultants will work to mitigate and reduce the amount of time necessary to address them. Dependencies identified and prioritized. Get current versions running with functioning tests and test coverage. A dual boot strategy that works for your team.

Most importantly, we'll empathetically help your team get comfortable with continuous small changes to help manage the risks and address stakeholder concerns. We believe in incremental progress, enabling learning, and communication to help others understand changes so future upgrades are easier.

Perspective on what to expect

Chat about the process
Green dinosaur toy attacking a motherboard

Tips and tricks for your upgrade strategy

Rails upgrades can be a slog. We've been there at some of the biggest Rails shops around—and learned a few useful things to help make your upgrade go smoother.

While helping GitHub with their Rails upgrade we contributed ActiveSupport's Disallowed Deprecations to help others.

Supporting two versions of Rails can be easier with a dual boot strategy. If you're working in Rails 4.x you might discover an incremental approach gets interesting, because Bootboot doesn't play well with older dependencies. You can solve for that using Docker.

How does a zero downtime Rails upgrade sound?

Watch the talk
Two toy construction workers wearing orange jumpsuits, working on a motherboard with a drill and a pick axe

You get an upgrade, and you get an upgrade ...

Our Double Agents have worked on upgrades across a wide variety of languages, frameworks, and situations:

  • Ruby on Rails shops as large as GitHub and Gusto
  • Ruby, Rails, Elixir, React, Vue, Golang, Python, Angular, AngularJS, PHP, Vue, and more
  • Gems, JS packages, developer tooling, CI/CD, logging, analytics tooling
  • Startups and privately held companies at inflection points for scaling

We've come across a wide array of upgrade-related challenges and helped clients emerge with more secure, more maintable codebases.

Don't push off your upgrade—later is never

Let's talk
Toy robot holding a wrench while standing against a bright yellow background