TuneCore

Code Audit in Preparation for a Rails Upgrade

Icon of a triangle with an exclimation mark in the middle

Challenge

Ruby on Rails Platform upgrade

Icon of a location marker with five dashes coming out from the top

Outcome

Code analysis, upgrade and process recommendations

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.

Quote about the thoughtbot development team

thoughtbot brought an efficient and organized approach to analysis and development practices. Their methodology can help any company achieve its objectives.

Neil Bhay
VP of Technology, TuneCore

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.

Proactive developers

Their proactive, independent approach was the ideal solution for this project. The end result was well-organized and was more impressive than a competing proposal.

Neil Bhay
VP of Technology, TuneCore

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.

What does success look like for your project?