Should you deprecate a feature untouched by 95% of users?
support.toggl.com
support.toggl.com
Comment #13 on the OP says it very well (aside from english errors):
"I bet 95% of all emails sent across the world doesn't have any files attached. Let's remove the ability to attach files to emails!!!"
If really only 5% of your users are using some obscure feature and it's getting in the way of other improvements, then you should probably deprecate it unless those few customers are disproportionately more valuable to the business.
I disagree, in the general case at least. For one thing, you need to decide the granularity of "feature". It can be anywhere from the entire project to a single line of code. It can actually get even more specific when you start talking about combinations of things as a "feature".
If you try to apply a "only 5% of users will use this" rule to any significant project, I think it will quickly start to feel incomplete. Users can tell. They develop expectations about the features that should be present in a certain class of application. When they come across a need for the feature, even if very minor, they will be very frustrated if it's not present. That frustration will destroy the user community.
Another thing is that often software is bought in bulk for an organization. The accountants will demand support for X in the standard software package, and IT will demand Y, and pretty soon you need a full-featured product. If you say "only 4% use X and only 3% use Y", and eliminate both, then you've just lost an entire organization worth of users.
If you're a startup or have a new product, then I'm not saying you need to reach that level of maturity before 1.0 release. But when your product gets big, you will need to invest in this kind of completeness.
If you're building a time tracking software and your customers are using it to do project management... you might be in the wrong business. Something to think about.
It is, of course, possible that folks paying you $12 a month get very attached to one particular thing. $12 a month does not buy you a whole lot of development priority, to put it mildly. It is occasionally necessary to tell them "Nope, sorry, it appears that we're not the best fit for your needs."
-- remove the button for the feature, replace it with a "Give me back my feature!" button
-- when the "give me back my feature!" button is clicked, send a GET request to mydomain.com/theywantedthefeatureback.php , and give them back the feature button
-- look at your server logs to determine whether anyone actually uses the feature
This is no big hassle for the developer or the user and it will tell you rather quickly whether anyone actually uses feature X.
"80% of the people use 20% of the features. So you convince yourself that you only need to implement 20% of the features, and you can still sell 80% as many copies.
Unfortunately, it's never the same 20%. Everybody uses a different set of features." http://www.joelonsoftware.com/articles/fog0000000020.html
The Pareto Principle comes into effect here. If the 5% of users adopting the feature are your most important customers, or if they're bleeding-edge users or opinion leaders to the other 95%, then it's worth keeping them appeased. On the other hand, if they're users you neither care about nor need, then consider whether the feature is extraneous -- or, worse, whether it's actually annoying the 95%.
Having a bunch of features isn't always good, especially if the features are half-baked, require constant attention, or impede more useful features.
It's probably not the best analogy, though. Maybe if this discussion were about alt tags on images then it would make more sense.
If the issue is truly usefulness, and keeping/maintaining the feature could negatively impact the majority of non-users, then deprecation is warranted.
1. Make sure the feature can be completely hidden from the UI.
2. Add an option somewhere in Advanced section of Preferences that toggles the visibility of the feature.
3. Turn the feature off for all new users and keep it on for all existing ones.
4. If it is possible to detect whether the feature is used by an existing user, then if it is not used, show one-time message saying the feature is being turned off and how to turn it back on if needed.
That is it. Graceful deprecation.
1. The feature is highly tangential. The core product is a time tracking app. A time tracking entry (core) can be associated with a "project" (metadata), which in turn can have "notes" (metadata about metadata). These guys built a time tracking app and ended up maintaining, in a dark corner inside of it, blogging software (functionally speaking).
2. This is the sort of feature that just grows and grows. Already we've gone (guessing here) from what was a project note to "notes" plural. Someone presumably had to figure out how to sort the notes and how to delete a note, etc.
Next the users will be asking for text search. After all, if you have 100 notes on a project, with people using them as a repo of project knowledge, search is kind of a basic feature, don't you think?
And it would also be nice if there was a pretty archive view with a nicely formatted calendar so you could easily go back in time without clicking through endless pages of old notes.
Oh, can we have RSS feeds per project, too? I'd like to see when there's a new note.
Oh, also, we should be able to attach an image to a note. Pretty basic.
Hey, if we can attach images why not videos? Can we embed tweets, too? Audio? Will you support HTML5 for my iPad AND Flash so we don't have to transcode to ogg for Firefox?
Oh and this text entry form is looking a little, hmm, primitive, could we add WYSWIG controls?
Etc. etc. They are smart to nip this in the bud when their product is still young, IMHO.
* How many users are 5% (there's a difference between 5 people and 5000 people)?
* How critical is this feature to them (Meaning: Will they drop our product if we remove it? Or just be slightly annoyed?)
* How much money do we make off these users and how important are they in public (will they cause enough bad will to form via ratings/blogs to affect further sales?)
Think, analyze, ASK.
You should not. As soon as a feature has got released to all users of a software, you won't be able to disable it without some users becoming really dissatisfied.
The solution is not to release a new feature to all users.
Before even thinking about releasing a new feature, first ask yourself:
What is the goal of this new feature?
The answer to that question is your hypothesis, you need to try to answer by experimenting. That is, perform an A/B-test:
Launch the feature to a subset of your users and check if it achieves its goal. This goal must of course be measurable and ideally there are KPIs that you can use to check the success or failure of your experiment.
When the experiment is successful you deploy the feature for all users. If the experiment fails, you remove it for the subset of users and the rest will never know about it.
This also helps the codebase to stay clean, features not making it into the product, is code not making it into your codebase, which means less code to maintain, less complexity.
Personally I think this aim is where they're going wrong. It's unreasonable to think that all your features are going to be used by everyone, much less have "exceptional value". If it's not causing much maintenance, why not just leave it in? Why go through all this trouble?
This feature is notes which isn't completely unrelated to their app. I don't use their app but something they could do is just make it less noticeable if they really don't want people using it for some reason.
I'm not quite sure if it'd work how I imagine but, if it could work, it sounds like a pretty good idea.
I've seen this firsthand too many times: the loss of users when removing a feature is more concrete than the gain in simplicity (particularly because new users are generally not well represented in feedback vs. old users) so there's paralysis over removing features that just never really got traction.
Without a lot of research and care, you could potentially lose more than 5% of users with such a move.
And what happens if they find another feature that only 5% use? And another?
"Rarely used" is not the same thing as "not essential".
1. If that feature is essential to them
2. if they'd be willing to pay a little more to keep it
I find most people are very reasonable when you explain exactly what the problem is to them.