When Should I Upgrade Rails?

When Should I Upgrade Rails?

In 2016, the Rails core team will release Rails 5 - continuing the pace of a major version release approximately every 2 or 3 years.  Ruby itself continues to undergo continual improvement as well.  I have been working with Rails since the Rails 1.1 days and I have seen a number of applications approach the upgrade problem at each cycle.

Currently at my consultancy, ?LOGICA, we have two substantial client applications which are a major version number behind the current release.  They are both confronting the upgrade choice.  When Rails 5 comes out, each of these will be two major versions behind.  Rails 3.2 only receives critical security updates at the moment.  Eventually even these will stop.

There are many new features and benefits of Rails 4.2 and Ruby 2.3+.  Rails 5 promises further improvements.  Most pertinent to large existing applications are performance and security benefits.  Moving to recent Ruby versions used more effectively by current Rails will result in faster sites, higher performance and potentially lower infrastructure costs.  Most importantly retention and recruitment of technical personnel, whether in-house or outsourced, will be easier on recent versions of both Ruby and Rails.  Finding and retaining skilled developers to work on obsolete versions will become increasingly difficult.

Upgrading is typically not urgent work.  It rarely seems like something that has to be done next week or next month.  But it has to be done if the application or the business it supports is to have a bright future.

Choosing not to upgrade, or choosing to remain two or more major versions behind means the owner has basically given up on progress or growth in the underlying business.  It means you are in value-extraction mode -- like the landlord who never makes a repair or the value stripping CEO.  The property will deteriorate.  The people who live and work in it and use it will feel the impact.  The best will move on.

There are cases where upgrading may not make sense.  Let's suppose you owned the Netflix DVD business -- the forgotten progenitor of Netflix's booming streaming business.  It is in steady, predictable decline.  At first guess, you might not want to make any longer term investment.  But believe it or not -- this legacy DVD business -- the business that once killed the mighty Blockbuster -- is also a steady cash cow with over 4 million subscribers that continues to fund investment into streaming and international expansion.  The income and profits can be projected with fair accuracy well into the future.  (I would love to own that business at the right price!)  It would be wise to have at least a five year technical continuity plan for this business.  See [Netflix and DVD's Still Together]

Any growing business and even a business that is not on a growth path needs to make sure the systems it operates on can be maintained well into the future.

When might you want to hold off?  If the last commit to your code base was six months ago or more and the system is doing just fine, and you don't expect to need it at all in a few years, then perhaps, you might just leave it alone.  I have a few apps like that too.

Otherwise, plan to upgrade this year.

If you or someone you know is contemplating an upgrade, please contact me: [email protected].

In my next article, I will talk about how to approach a major Rails upgrade once the decision is made.

要查看或添加评论,请登录

Steven Talcott Smith的更多文章

社区洞察

其他会员也浏览了