How to Approach a Ruby on Rails Upgrade

The wait is over! The new Ruby version is officially here.

A software release is exciting! New features, improved workflows, and maybe the loss of some bugs and nuance. Before you decide to upgrade rails versions, pause.  A major software update is not to be taken lightly. Here are some things to consider

When should you upgrade to a new Rails version?

If you want to avoid bugs that can be associated with a new release, we recommend waiting until the three-to-six months mark before upgrading. If you are interested in giving back to the Ruby on Rails community, you can be an early adopter and report bugs as you find them. Only you can judge what margin of error your team can withstand.

If your team doesn’t have the bandwidth or has someone junior completing the upgrade, we recommend waiting at least three months from the release before proceeding.

What are the risks of upgrading?

When you upgrade to the latest rails version, you may discover parts of your application that don’t work with the new code and haven’t been solved by the community yet. The best way to minimize risk is to

  • Wait for the kinks to be worked out.
  • Have a good test suite.
  • Have team members that are most familiar with the app help with QA (this may be your operations or customer service team!)

Can I upgrade Ruby on Rails versions on my own?

Certainly. The latest Rails version usually has an upgrade guide. You can view the most recent one here.  Railsdiff.org showcases the differences between a default install of any two Rails versions. This can help you estimate the amount of time your upgrade will require. We strongly advise that you estimate that before beginning your project.

What happens if I don’t upgrade?

When you don’t upgrade versions, security vulnerabilities accumulate. Your app - and any data it stores - are at risk. As your software version becomes outdated, it can become harder for developers to contribute to your app. For example, they can’t set it up on a new Macbook. We’ve all had that warning. You can expect to see a loss of functionality around the two-year mark.

*Note that this same philosophy applies to personal devices.  Waiting too long to upgrade a computer can result in the inverse problem. How disappointing it is to wait for MONTHS for the new Pages release only to find out that it’s not compatible with El Capitan, or worse finding out your Mac can’t run the latest version of MacOS.

I don’t have a developer currently maintaining my Ruby on Rails. Where does that leave me?

Your app will likely keep running for a while. Still, without regular maintenance, an outage could be long and costly. Someone may have to do many upgrades before it’s possible to get the app running properly again.

You may also want to ask the following questions:

  • Is anyone testing your backup and restore plan?
  • Could sensitive data leak?
  • How long do you want to let your wishlist sit unfinished?
  • Do you want to spend less time fighting your tools?
  • Bots are testing vulnerabilities of your site all the time

These are the reasons to never go too long in between developers. The cost can range from minor inconveniences to large-scale outages.

Upgrades are a vital (and exciting) part of software maintenance. When your application is a vital part of your.business, having long-term, as-needed developer support provides the peace of mind, agility , and security needed to keep your Ruby on Rails app, and clients, as happy as possible! If you're concerned your application may be due for an upgrade, contact us! We'd be happy to perform a complimentary audit to see what your application needs.

TL;DR

  1. Budget your time before beginning the upgrade
  2. Plan to upgrade around the six-to-eighteen-month mark (unless you’re a senior developer and an open-source hero).
  3. Upgrades protect you from security vulnerabilities and loss of functionality.

Still unclear about Ruby, Rails, Ruby on Rails? Check out our guide to understanding Ruby on Rails. Learn how it all fits together and why some people (like us) think it's so great.

About Neomind Labs

Focusing on long-term maintenance and operational support.

Neomind Labs is a software development firm that improves and maintains software applications using Ruby on Rails. We implement and support applications while taking responsibility for the codebase.

Our stewardship services are for proactively managing upgrades, patches, transitions, and improvement. We act as an internal development resource for clients who don’t have a full-time development team, or who need to augment existing staff.