If you’re taking on a new Ruby on Rails-based project this year, there’s no doubt you’ll build it using the latest version of Rails. But if you’re maintaining a current project, you might be one, two, or many more versions behind. The process for updating Rails can be a daunting one for any development team to take on. Depending on the size of your application, you might be looking at several hours or weeks to get up to speed.
Though it can be hard as a project manager or stakeholder to prioritize an application update over a new, money-making feature, we’re here to tell you this: Upgrading to Rails 5 is worth the work.
Here are three reasons you shouldn’t wait to update your Rails app.
1. The Further You Get Behind, the Longer (and More Expensive) the Update Process
Rails sends out minor updates between every major release. When you’re updating to a newer version, you should aim to update to one minor version at a time (4.1 to 4.2 to 5.0 instead of 4.1 directly to 5.0). This is a good maintenance practice. If you’re reading this and fretting about months of work to update, don’t panic. If you’re smart and thorough in the update process, you can accomplish a lot in a short amount of time.
Depending on your team’s structure, upgrading doesn’t have to bring your new feature development to a complete halt. If you have the resources internally to run the two projects alongside each other in close communication, go for it. Outsourcing the update to an external development team is another option. This will allow your internal team to focus on delivering new features while ensuring the stability of your application long-term.
2. Outdated Technology Makes it Tougher to Attract Top Talent
In a competitive recruiting world, a company looking for new team members needs every advantage it can get. A savvy recruit might ask about the type of technology you’re currently working with – and mentioning something outdated could be a red flag for a few reasons. It gives the impression that your company isn't focused on long-term risks, or it could be reflective of a culture that doesn't embrace change.
Side note for developers: If you find out during the interview process that a company is using any sort of outdated technology, it might be worthwhile to ask why they have prioritized new features over app maintenance. This could give you insight into how the company operates. As a developer, are you prepared to inherit this technical debt? Will your team support you if you propose updating? Is an update anywhere on the horizon for the organization – or is it constantly pushed down the list?
In a startup world, developers are often drawn to small, agile organizations over larger ones. Working with the latest and greatest technology is just one of the reasons for this preference. What would you call an organization that always was a few steps behind? The opposite of agile...perhaps clumsy or rigid. And no one wants to work for a rigid organization.
If you’re a development manager or technology officer and want to compete for top talent, take note: It’s imperative you stay up to date with your web applications. And your current team members will thank you in the long run, too. While an upgrade might be more work in the short term, as the application evolves, working with the latest gems or seeking support will be easier.
3. When You’re on an Old Version, You (and Your Users) Are Vulnerable
As new versions of Rails are released, support for older versions is discontinued. After Rails 5 was released to the public in June of 2016, support for Ruby on Rails 3.x was discontinued. If your application is running on this version or earlier, you're no longer receiving updates, even for significant security issues.
Don't let a severe security problem be the spark that finally triggers your Rails upgrade. This could leave your team or your customers at risk for as long as it takes to update your application to a newer version of Rails. The short term investment into an update far outweighs the long term potential costs of putting it off.
But Wait… MY GEMS!
Ruby Gem dependencies are a major pain point during any Rails upgrade. Many teams would point to gems as their main reason for putting off an upgrade. But with Version 5 of Rails rounding in on eight months of public use, many popular gems have been updated to run smoothly with the new version. To see if the gems you're currently using are ready for Version 4 or 5 of Rails, try looking them up on Ready4Rails.
If you come across a gem that is inoperable on Version 5, you have a few options: Seek out a different gem, get in touch with the developer and submit a pull request for changes, or omit the gem altogether by writing a different solution.
If you’re stuck with a gem that doesn’t cooperate with Rails 5 and have the manpower (or spare time) to work on it, updating these gems are a wonderful way to contribute to the Rails community. Most gem developers would welcome a pull request that increased coverage. That community of collaboration is what makes Rails such an incredible language to learn. Of course, you also have the option to leave out the gem altogether and pursue another option. (You might ask yourself: To gem or not to gem?)
If you’re starting the upgrade to Rails 5, the Rails Guides website is a great place to start. As with any software development venture, there are bound to be a few – or a few dozen – unknowns that pop up along your Rails 5 update. But if you run into an unexpected thorny patch, chances are you can find someone who has worked through it before. The Rails community is an incredibly generous one, and you'll always find someone who's willing to share their experience on StackOverflow or your favorite coding forum.
And if you have trouble handling these errors on the fly, you might want to consider a career shift. This excitement is why you pursued programming, right?