TuneCore
Code Audit in Preparation for a Rails Upgrade
Challenge
Ruby on Rails Platform upgrade
Solution
Outcome
Code analysis, upgrade and process recommendations
Image of Tunecore artist and logo
Who is TuneCore?
TuneCore is the global platform for independent musicians to build audiences and careers.
They allow musicians to upload their work and automatically connect with over 150 digital stores and streaming services around the world, including Amazon, Apple, and Spotify. TuneCore is the only global platform with the tools, insights and services to meet all of an artist’s needs across revenue, promotion and distribution.
Artists subscribe to TuneCore to get their music on all the global music platforms, and allows them to keep the revenue earned from all of their streaming and downloads, along with the rights to their music. TuneCore empowers artists to distribute and market their music in ways they never could before, and keep the earnings from their success.
Challenge
A Rails upgrade was needed
TuneCore launched its distribution platform in 2005 with a Ruby on Rails technology stack. When TuneCore’s new VP of Technology joined the company in 2018, the company saw the need to upgrade its codebase to the latest version of Rails, reduce technical debt and plan new feature developments.
Knowing that hiring the right team quickly would be a challenge, they sought partners with the experience to help support and execute their plan.
Solution
To reduce risk and expedite the project, TuneCore’s VP of Technology began a search for an outside team with experience and results in Rails upgrades.
thoughtbot came recommended through a lead engineer at TuneCore. thoughtbot has a long history of working with Rails applications and conducting similar upgrades, with extensive documentation of their experience.
TuneCore tasked the thoughtbot team with analyzing their code and providing recommendations for the upgrade strategy at the end of the engagement. Two thoughtbot developers joined the TuneCore team to review the codebase and develop recommendations for a Rails upgrade. thoughtbot sought to understand the main friction points, test coverage and gem versioning in TuneCore’s current application, as well as to get a sense of team culture and processes.
thoughtbot interviewed the TuneCore tech, product and marketing departments to gather their requirements for this project. As a result, the thoughtbot consultants provided alternative options and approaches to achieve the outlined objectives, and recommended improvements to various processes, ranging from deployment to retros.
Outcome
After the end of the code audit, thoughtbot presented their proposal for upgrading Rails to TuneCore’s leadership.
The implementation plan included recommendations for enhancing the application's test coverage, a gem and overall rails upgrade strategy, and estimates of time and labor requirements for performing the upgrade. thoughtbot identified specific risks in the codebase that may need to be refactored and bookmarked areas of the code that would require further investigation.
With this information, TuneCore had a greater understanding of the depth of the task at hand. The custom upgrade plan informed TuneCore's product roadmap and budget for the year. thoughtbot created their presentation in a format which could be easily shared with the team for transparency around their recommendations in order to help the leadership communicate the plan to the company.
As a result of the audit, TuneCore chose to continue working with thoughtbot to carry out the Rails upgrade. In addition, TuneCore embedded their own developers on the upgrade team in order to facilitate thoughtbot’s process recommendations.