Upgrading a Huge Monolith from Rails 4.0 to Rails 5.1
Like many companies, Power Home Remodeling was having difficulty allocating developer attention to the Rails upgrade project due to the demands of feature work coming from other areas of the business. That is why they decided to come to Ombu Labs for help.
Nitro is a Component-Based Rails Application. CBRA is an approach which organizes Rails applications into Ruby Gems and Rails Engines. By using this approach, they're able to parallelize their test suite, therefore making CI faster, and reducing merge conflicts due to the large size of their team. Also, they are able to onboard new developers faster by having the ability to separate them into teams based on gems/engines instead of having them work their way through the entire codebase. For more information about CBRA, check out this video: "Scaling Your Rails App Codebase with CBRA - Ben Klang".
We executed a full upgrade of the application from Rails 4.0 to 5.1 and prepared the company for an eventual 5.2 upgrade. This necessary upgrade of their application led to a “reduction of risk in terms of repeat bugfix/feature development work compared to what is available in a more modern stack”.
According to Ben, “Ombu augmented our in-house team with a specific capacity for the upgrade project, enabling our other developers to retain focus on direct business goals.” Ombu Labs' exclusive focus on the Rails upgrade allowed the developers at Power Home Remodeling to continue their work on features and other goals without distractions. In the end, Power Home Remodeling received an application with up-to-date Rails versions and was able to make progress on their other work as well.
For more information about upgrading your Rails application, check out our "Upgrade Rails Series", a series of do-it-yourself guides to upgrading Rails.