But then I made FeedDemon. It's still a pretty geeky product, but it's not just for power users. FeedDemon users range from hardcore developers to computer newbies.
At first I built FeedDemon as though my customers were geeks like me, since that was what I was used to. Power users were happy with all the features and all the options, but the extra baggage made it harder for less technical people to use the product. It scared them away.
So with each new version I tried to simplify the user interface, and dropped features & options that complicated the product. FeedDemon became more popular as a result, but you’d never know it if you visited my online support forums.
I’d come out with new versions that I thought dramatically improved the product, only to find my forums filled with complaints from power users who wanted the return of some obscure option, or were upset that I wasn't adding the geeky features they wanted.
Sales went up, but positive feedback went down. I had built FeedDemon with the wrong customer in mind, and I paid for it by spending a ton of time defending each release.
I've been a FeedDemon user for many years and also been following the discussions in its support feed. I've found myself laughing, shaking my head and wondering at WTH(eck) at some of the discussions/requests. Having released my own products and solutions, Nick's post above resonated with me a little.
In short, my take away was that if you're releasing software, carefully consider EVERY knob and feature you expose. Some consider your feature set a contract of sorts and will fight tooth and nail to keep them as is. Also consider your audience. If your product, solution, source, program or app is available to anyone else, then remember you are no longer the audience.
So what do you do? One thing comes to my mind, runtime telemetry/analysis. If you can show hard numbers that you have 1000 users, and feature X is used by only 1, then I think it's easier to justify killing that one feature. But if you don't have hard numbers, then you're just guessing how many use what features... And I don't know about you, but I suck at guessing (I always say to myself, "but this is SO cool, everyone will love this!" or "No one uses THAT!!!"... sigh...)
Also start simple and try to stay simple. Even power users learn to accept and appreciate simple, as long as it "just works."
Finally, if you release software (or anything for that matter), grow a thick skin. You will never, ever, ever, please everyone and you'll likely only ever hear from the squeaky wheels (which might lead you to think you suck... You don't! If your brave enough to release anything, you're still heads and shoulders above those who are...)