Brent Simmons talks about the pain and pleasure of deleting features from your software:
I hope it’s self-evident that apps with too much stuff are, in general, bad. And that there are some features whose time has come and gone, and there are features that don’t get used much.
When working on a new version of the app, before I think about the features I want to add, I take a look at what I can get rid of first. It’s a quality-of-app thing. I think of it as making space for the new stuff — but first I have to take the wrecking ball to some old stuff.
Killing features should be a part of almost every developers’ playbook, but all too often it isn’t. We’re so used to adding new stuff that we don’t think about getting rid of stuff we’ve already added. A few years later, we find we’ve created an application so bulky with features that only pre-existing customers can understand it. New users are so overwhelmed that they look for something simpler.
When I delete a feature, I’ll often do it in an early beta version, and then never mention anything about it. If by the end of the beta period nobody notices that it’s gone, I’ll know that it wasn’t being used and I’ll remove it for good. Or if only a few people mention it, and none of them say it was an important feature, then it stays on my kill list.
Sometimes I get it wrong, though. I may remove a feature that I think isn’t important, only to discover that a ton of people relied upon it. So I resurrect it in the next version (although I often hide it to keep it from adding to the app’s “feature heft”).
Of course, if you find yourself wanting to delete a lot of features from your app, then you need to be more cautious about adding them in the first place. This was a mistake I made with early versions of HomeSite. I was new to commercial software, and I thought that in order to succeed I needed to make everyone happy by adding anything and everything that was requested. Sure, power users who requested a feature that got added were happy at first, but a few versions later, HomeSite was a toolbar-laden monstrosity. It was supposed to be a simple application for hand-coding web pages, but I’d turned it into something that overwhelmed new users.