StorageScope’s advice to Netflix

Netflix, the popular rent-movies-by-mail juggernaut, recently announced that a little-used feature called “Profiles” was going to be eliminated in September of this year (see commentary on this here).

I thought that it would be fun to give Netflix a little free advice about what can happen when you remove features from a software product. I was on a team that faced some of these issues (EMC ControlCenter StorageScope, in going from version 5.2 to 6.0).

The Background

To integrate new data into StorageScope, we had to make some deep architectural changes. Daily snapshots of data were previously stored in bulky XML files and compressed into date-indexed directories, and any trending of that data required substantial processing overhead in extracting and collating the data across many files. I’m sure you can imagine the memory footprint! We fought with scalability issues with that approach for years.

One of our first decisions in the redesign was to use a database to store the data. Why re-invent the wheel? I’m really proud of the result — we gather a diverse set of information, trend it over time, and allow maintenance-free enforcement of simple retention policies. The new StorageScope is without a doubt a superior product to the old one. I’m sure the changes Netflix wants to roll out will make the new Netflix superior as well. But here are some lessons we learned.

Support the Same Use Cases

What we underestimated in our transition was the passionate users of StorageScope who had adapted to the specific use cases StorageScope made easy. One of these was the ability to see the world as it was on a specific date. We kept all data for as long as the user wanted to, and so there was no difference between today and 2 years ago. Of course, this required a large storage footprint and limited the ways we could efficiently trend data (want a hundred-data-point trend? Guess how many files we have to open up?).

Changing our approach gave us the ability to support many new use cases which made us very excited. We trended data dynamically, eliminating detailed data once it was past a certain age. Our data became much better, but we had fewer details. In the process we eliminated that one use case, and we’ve heard comments about it ever since.

Netflix, there’s a lesson here. You may think that your Profiles feature supports certain use cases in an ugly way, but the truth is that a small but vocal percentage of your customers have built their usage of your product entirely around that use case. Now you’re eliminating the ability to support that use case, at all. And people will complain from their rooftops until you address that.

Don’t Discard History

People are attached to their historical data. As I described above, we were fundamentally changing the way data was stored. We had to come up with a migration path, so that people could take the historical data we’d compressed away in XML files and store it in the database. While we didn’t delete their old data, a lot of it was no longer available in the database. And people missed that data.

Netflix is doing the same thing. A hardcore profiles user has hundreds (even thousands) of movie ratings across a handful of profiles. A lot of the data conflicts (Mary hates horror movies, John can’t get enough Pro Wrestling). What happens when you eliminate the profile feature? Your users have invested hours of their lives into clicking little stars on the Netflix site, rating their movies with the assumption the data would be associated with their profiles forever, guiding recommendations. All that work, gone. Users aren’t going to just be angry that their work is lost, they are going to be distrustful that your future plans won’t cause similar losses in data.

Another reason this is a bad move? That historical data tied that user to your company. They wouldn’t even look at a competitor, because they’d have to re-rate hundreds of movies. Well, guess what? Now it’s a clean slate. They are comparing you the competition in a new light.  This brings me to my next point.

Never Eliminate a Competitive Differentiator

Netflix has one very large competitor right now, Blockbuster Online. When people talked about the differences between the two, Profiles would come up as a feature provided by Netflix but not by Blockbuster.

And here’s the non-trivial part of this lesson. Just because the percentage of accounts actively using the Profiles feature was small doesn’t mean it didn’t factor into more competitive decisions. I personally saw Profiles as a feature that made Netflix innovative when compared to Blockbuster. It was part of their brand image. Now, that differentiator is gone.

The Netflix brand means less to me today than it did a week ago. I’m sure others feel the same way.

But Here’s the Rub

Eliminating profiles may well be a vital part of Netflix’s future plans. Just because a decision is unpopular doesn’t mean it’s wrong. StorageScope today is a much better product than it was before, and I’m interested to see what Netflix has planned that will be made easier by eliminating the Profiles feature.

Still, I can’t help but think Netflix could have handled this transition better. I know we could have done some things better when we made big changes in StorageScope. I like to think those lessons have improved our ability to compete in the market. Maybe Netflix will learn some lessons too.

(Thanks to Barry at work for giving me the idea to tie these two topics together.)


#1 Brian Houser on 06.23.08 at 11:47 am

Excellent analysis! You’ve listed some great points and I hope Netflix takes a serious read of your post. These are important aspects to software development and customer service that are being verified by example more each day.

#2 What a Crock: Netflix Removing Profile Feature « Magnificent Vista on 06.28.08 at 10:14 am

[…] Official Netflix Blog Indiscriminate Prose Hacking Netflix Don’t Touch Me The Consumerist Dave Talks Shop (good post from a software development perspective) Save Netflix Profiles […]

#3 Dave on 06.30.08 at 8:40 pm

Looks like Netflix listened. I received an email on June 30 stating they have decided to keep the Profiles feature.

I wonder if StorageScope will ever reintroduce some of the features we had to eliminate in the jump from 5.2 to 6.0? Only time will tell :).