Until very recently, users could not add more than 10,000 songs on their Spotify library (by the way is not called a library anymore, it is “Liked Songs”…). This was never not a problem for most of users, but it could be a major issue for the minority of users that encountered this limitation. After years of complaints by those affected, Spotify “finally” lifted this limit in May 2020.
I write about this because the most interesting aspect I got from this story is an article published by Spotify Engineering explaining in quite some detail why this change was much less trivial than may have appeared for observers. The undertaking seems to have been quite intense: over 100,000 lines of code were removed or modified; starting with a group of 30 employees, in the end 1,000 Spotify employees were involved in the testing process.
Yet I still think this story highlights another opportunity to make it easier to try new improvements in the future. But first some context, with quotes from the article.
The story begins with growing importance of smartphones and their RAM limitations:
Liked Songs, one of Spotify’s most popular features, is a great example of this approach. Every time you open the Spotify app, it loads all the metadata associated with these tracks from the device’s disc storage into the active memory (RAM).
Simple, right? Not necessarily. If you collect thousands of Liked Songs, every time the app starts, all that metadata (including artist name, paths to album artwork, and so on) must be loaded from scratch. That’s fine if you’re using a laptop, or the latest smartphone because there’s enough RAM to manage this step with minimum delay. (Laptop users generally benefit from stable wireless connectivity, which also speeds up the process.)
But we now live in a technologically diverse world. Spotify listeners are increasingly mobile, which means that the smartphone Home page plays a greater role in the user experience than the Library, where Liked Songs resides.
It’s also thirteen years since the launch of the first smartphone. Today, there are thousands of different devices. This presents another challenge. How do you deliver an outstanding user experience to all Spotify listeners when there are such disparities in device processing capacity and network connectivity?
Users with older phones and slower networks are particularly affected:
Over the past two to three years, we noticed that the startup experience for those with less powerful devices and weaker connectivity wasn’t ideal, especially when they were near or at the 10,000 limit. We also discovered that even if a listener had thousands of such tracks, they generally only listened to a few hundred.
For both of these reasons, we decided to act. It’s important to remember that now the goal wasn’t just to lift the 10,000 limit. That was the tip of the iceberg. Rather than simply focusing on the limit itself, we found a much larger opportunity: modernizing our client-side architecture, thereby addressing the needs of our entire demographic, especially those with older phones and access to slower networks.
A very interesting detail: Spotify has a tradition of making small, cumulative changes (“iterative approach”), but now this was not an option:
Historically, Spotify has taken an iterative approach to improving the tech stack. But as our research showed, this wasn’t an option with Liked Songs.
That’s why we needed a year to complete the project from research to release. To modernize the client architecture we had to remove or modify about 100,000 lines of code in the shared client code base. Some of these required several additions, adding to the complexity. We also tweaked both the Android and iOS apps.
The scale of the testing process: from 30 employees to 1,000 employees to 1% of all users to 50% of the user base:
Testing and development took place in parallel, allowing us to add more people to the test groups as the stack became more stable. About seven months before launch, we were working with 30 employees, growing to 1,000 four months later. This gave us control over the testing process, and returned plenty of unfiltered Spotify feedback on changes to the user experience!
We then added about 1% of all users, gradually increasing this figure to 50% to find those ‘one-in-a-million bugs’. This enabled us to complete any remaining fixes before switching all users over to the new architecture.
An important conclusion about the importance of audience segmentation. I wonder if there are other segments of the audience that could be better served? (Hint)
This also forced us to rethink our approach to audience segmentation. Sometimes, organizations with hundreds of millions of users and huge datasets can lose sight of the individual. It’s very easy to imagine that the average Spotify listener has the latest smartphone or similar, but of course they don’t. Our approach has definitely shifted in favor of more segmented analyses that better serve the entire device-connectivity spectrum.
By the way, this way of testing softwares changes on a fraction of the user base is really curious, as they explain in the support forum:
At Spotify, we’re often testing and launching improvements and new features.
This means you might see something on the app your friend doesn’t, or you could get a new feature to try out temporarily.
It surely can be frustrating to be the “guinea pig” of a new experiment:
Spotify updated about a week ago on my laptop, and it’s absolute trash now. I can no longer edit playlist photos or descriptions. When I click on my profile, I can’t view my account the way others do anymore. I can’t change the order of playlists anymore. I can’t filter/search for songs in a playlist either. I can’t add local files anymore, and any existing ones in playlists don’t play anymore. I can’t adjust the size of the left and right columns either. Also, the heart icon beside songs is no longer there, so how am I supposed to know which songs are saved or not? And the friend activity tab doesn’t show up anymore, even if the toggle under display settings in turned on. Is there a way to revert the version of Spotify I have? If not, will I just have to wait until an update where they fix their mess?
The answer from a moderator is not really immediately encouraging:
Thanks for sharing your thoughts about this in the Community!
We’re sorry to hear you’re unhappy with the recent changes we’re currently testing on the desktop app. For now, the new test version is missing several features that used to be available on the desktop app.
We understand this is not ideal, so if you’d like to be able to switch between the test version and the old design, we suggest you add your +VOTE to this idea.
- Spotify historically has an iterative approach to software improvement: small, cumulative changes instead of major redesigns.
- The Liked Song limit was one successful experiment with a “drastic” change: it took over a year, involved 100,000 lines of code among several platforms; testing involved up to 1,000 employees and half of the installed base – more than a 100 million users.
- The way that the tests are deployed within the user base can be annoying: users update the apps and suddenly find dear features missing or radically changed and have no direct option to revert the situation.
- (There is even a poll in the support forum where users can vote on the idea to “Allow an optional switch” between versions on the desktop app. “Once it reaches the necessary amount of votes”, as the page says, “Spotify Staff will look into this idea”….)
- As the article states, the limit change “forced Spotify to rethink our approach to audience segmentation”. This time it was the case of older phones and slower networks, but perhaps there is much more user segmentation that could be investigated…
So, now I naively make a suggestion: why not make experiments with a distinct application, for mobile and desktop? Let’s call it “Spotify XP” or “Xpotify” (for ‘experimental’ of course).
In my draft of the idea, Spotify XP is a sister app that any user (or premium user) can install in addition to the main program (let’s call it jokingly “Spotify Classic” for now), and experiment with it.
Maybe this could turn into a whole new playground for the R&D team to try more ideas, and implement them faster. “Freedom” as a fuel: the possibility to try new tools, features, interfaces modes for a relevant installed base without the immediate concern of disrupting the lives of the hundreds of millions of Spotify Classic users
It is certain that this kind of experimentation already happens inside Spotify research labs, but perhaps this program would get a life of its own when released as a public option. Because XP would also serve as a kind of commitment to the idea of exploring novel ideas and interfaces, and it could particularly attract and retain a slice of the most adventurous users.