The First 100 Days of Roon

If we had launched Roon according to our original plan, this post might have been called “The First Ten Days of Roon”. Our intention was to release in September as a feature-complete, mature product with the benefit of complete alpha and beta test cycles, but that isn’t how things played out.

At the outset, we knew what we wanted out of Roon, and based on our experiences at Sooloos and Meridian, we had a pretty good picture of who our customers would be and what they would want, too. The further we got into development, though, the more we realized that feedback from our valiant troupe of alpha testers wasn’t enough, and we were persuaded by various well-intentioned friends and colleagues to get out there, show our stuff, conquer the world.

The decision to go ahead with a May launch made a white-knuckled ride out of those early months, equal parts exhilarating and terrifying. We trimmed back to MVP features, throttled our marketing ambitions, and cut our test plans from weeks or months to days.

There was a certain amount of pent-up demand for what we were doing; we had a solid number of people on our pre-launch mailing list so there were clearly customers out there. We hoped that they would understand that what were doing was costly and had real value, and therefore be willing to pay for our software. We knew that while they might be tolerant of the quirks of a young product, they would also be demanding and vocal about what could be improved.

Naked in public

All of that turned out to be true, which made our early launch possible. But Roon didn’t emerge as the ironclad multi-device, multi-room music platform we had envisioned; it started rather more modestly as a Mac and Windows desktop music app. Releasing as early as we did had an interesting and significant side effect: Roon was going to have to “grow up” in the public eye.

Our team structure is flat and our culture democratic even by startup standards; everyone contributes to some degree to product design, development, and testing. By launching early, we were forced to extend that ethos into customer-facing functions as well: everyone answers email inquiries, everyone participates in our community forums, and we disclose everything about what we plan to do and when.

That openness has had very positive consequences, as we hoped, but it came with some hiccups that we didn’t foresee.

On the plus side, we listened when our earliest adopters demanded features we had no idea anyone would have wanted. For example, support for various DSD audio formats and for ASIO drivers came up as “show stoppers” for many users, and we’re proud that we managed to add those features (in addition to another user interface theme, an Android tablet client, and numerous smaller features) within 30 days of launch.

On the minus side, being open about our plans for our 1.1 release caused us some difficulties. When you set yourself a goal and miss it by a few weeks, you still get the glory even if you privately wish you had pulled it off on schedule. When you set your goal publicly, it becomes an expectation on which people begin to rely, so you amplify the risk of disappointing users. In an effort to be transparent, we’ve gone out of our way to explain that if our community is going to watch the sausage being made, they’re going to see the whole process, and it isn’t always going to be pretty. The response has been overwhelmingly positive.

Roon 1.1

That 1.1 release, which we finally shipped late in August, is a big deal. It includes the Roon Remote app for iPad, a “headless” RoonServer app for Mac and Windows, and a massive set of new features that allow users to set their preferences for metadata display and to edit their metadata manually.

An iPad remote app was easily our most-requested feature, and one that had the most trial users on the fence. Learning from our experience with Sooloos, we took the time to get it right and achieve 100% feature parity between desktop and iPad clients. Together with RoonServer running on a PC, that strategy forms the beginning of Roon’s evolution from desktop product to multi-device platform.

Metadata editing is an especially tricky feature for us, because people who groom their music info by hand are a passionate bunch, and may have spent hundreds or even thousands of hours getting their file tags just the way they like them. The thing is that Roon tries very hard to make that kind of grooming unnecessary by identifying music and pulling in a wealth of associated metadata from authoritative sources. Our new editing features attempt to bridge the gap between these two approaches, so users benefit when Roon finds great data, but they can tweak things manually if it doesn’t.

We made some tough decisions along the way, like supporting only 64-bit iOS devices, and telling some users that their feature requests were on the roadmap but unlikely to be prioritized soon. Those decisions have caused difficult conversations on our forums, but by sticking to our policy of openness and consistently explaining our motivations and rationales, we’ve been able to earn the trust and confidence of the vast majority of our users.

The price

We fully expected our pricing model to draw a certain amount of fire. While there are precedents for premium subscription pricing in the world of professional software (Microsoft Office, Adobe Creative Cloud) and services (streaming content, cloud storage) the pricing of consumer software has been driven ever downward towards freemium or low-cost apps shooting for volume.

Roon is specialty software-as-a-service that aims to provide something truly valuable to its users, who are in turn specialists in music, audio, or both. Music lovers are not casual listeners, and their needs aren’t met by the likes of iTunes and Pandora. Audiophiles are likewise poorly served by consumer software, and have gravitated to premium media players which put far less emphasis on user experience and usability than we do. Roon’s goal is to delight both of those groups by delivering premium audio quality and a rich and sophisticated browsing experience.

Doing all of that costs real money and takes considerable effort. We didn’t just implement some publicly available APIs, throw an app in the store, and hope a few thousand users would pay 99 cents for it. We license a huge amount of data at considerable expense, maintain cloud infrastructure, and have developed a substantial body of software (both cloud- and client-side) which let us make sense of a user’s music collection and add all that information to it.

Perhaps most importantly — and the reason we chose a premium subscription model for Roon — is that as a team, we are “all in.” We have been tackling the challenges of music metadata, audio processing, and multi-room streaming for fifteen years, and no one does that just for the paycheck. We are passionately dedicated to making Roon the best possible music and audio experience in the world, and that is what a Roon membership is really buying. Our first release was a charming (if quirky) start, 1.1 is a strong first step, and every day we wake up obsessed with what we’re doing next.

Now what?

To make Roon the ultimate music experience, we know that we have to support every possible type of content and play it on as many hardware devices as possible. When we achieve that, Roon will evolve from the product it is today into a music platform we envisioned at the outset — one that is a joy to use, but also powerful and flexible. Since we don’t sell audio content or audio hardware, the road forward for us is based on partnerships; we want Roon to work with all the products and services our customers use, and that is our path forward in a nutshell.

More about that next time!