30 January 2007

About Feature Requests...

Some of you might have noticed that the feature request tracker on the SF project page did vanish. Well, this is intentional. I closed it. My goal was to reply on everything posted and getting more and more requests while not being able to fullfill at least some of them is totally pointless. And more important it is totally frustrating, because over time it creates the distinct feeling that one is not able to keep up with the users and that one is heading in a totally wrong direction with the implemented features. I know this is probably just imagination but to say it bluntly: it generates dissatisfaction.

Another point is this: when you post a feature request you mostly outline some way of how to use an interface or how a program should behave. Usually it is a refinement of the existing implementation, sometimes it is asking for a different way of realization. What I miss with most of the requests is the consideration that maybe the developers already thought about it and decided against it for well-thought reasons. These might be technical reasons, but more often these are mismatches with the project goal and program design.

So in the end all the work with feature requests is reduced to these actions:
  • Explaining why something is not possible with the program design.
  • Pointing out why something does not match with the program goal.
  • Pointing out why something is not planned due to shortage of developer resources.
  • And sometimes explaining that something is already implemented. RTFM...
Hmmm... Why do I ask is this necessary? Why is it necessary to spend hours each week just to go over these question in different areas of the program again and again? What does the user get from it? Why does he expect this explanation?

Until today I remember never writing even a single feature request to any open source project out there. It just was not necessary. Now what is wrong with me? I always found that each project implements a certain use case with a certain level of program complexity. And when I found that the program was too simple the answer was to switch to a more complex one. And when I found that a program does not do what I want despite being of the correct complexity I found that usually I tried to use it in totally different way compared to the intention of the developers. When trying to adapt a bit to the intended use case one usually sees that there was a lot of thinking behind. And problems suddenly do solve, but in a different way than my "obvious" one. Sometimes it helps looking for the competetive projects because the realized use case might be closer to my "obvious" one.

When reading reviews of applications the argumentation is often this: "after clicking three times and waiting for several seconds I found the program to be totally useless" or "I didn't find a way to do X and before this is implemented I won't use the program". And I ask myself do these authors even have the faint capability of understanding others people thinking and ways of doing things? They probably do, but they obviously do not want to apply it. The same seems to be true with the human species of feature requesters.

After critisizing the current you-have-to-do-what-I-want feature request praxis I want to give my criteria on useful feature requests:
  1. Feature requests should inform the developers of things they propably won't think of themselves.
  2. The suggested feature should match the programs complexity and the project goal.
  3. The suggested feature should match the development resources.
  4. Explain (at least to yourself) why you consider the effort to implement the new feature worth the developers time.
  5. Optional: only suggest things that you would consider implementing yourself.
Back to my claim that I never wrote a feature request myself: with the above conditions you see that #1 and #5 are almost never given which is why I think feature requests are a pseudo mechanism doing nothing good for the open source world except for eating up support resources. So I conclude: feature requests do not help a project. In the opposite!

What do you think?

Ahh... I forgot to mention: This is a rant!


Holger said...

Closing the request tracker will not help. You need to vanish from earth to not get any feature request. Else people will mail you, use the bug tracker or even ask in your blog comments. ;)

I disagree that feature requests are always useless for all projects. Some projects even ask for feedback.

About your points:
1.& 2. I agree. That's why I normally check the bug trackers or TODO list (if there is one :)), before I ask.
3. can be really tricky to get right, especially for people without a knowledge in programming. Also many projects don't list all active developers.
4.& 5. I totally agree.
And you forgot 6. Be polite and patiened. :)

robber.baron said...

I think feature requests are helpful, but only when a project feels rather feature complete and seems to need input on what else to add.

I know working from smaller projects that when the developer is content with the feature set sometimes input is helpful.

I think the best way to avoid this kind of clutter is working through a proxy. I lurk in #gaim and every now and again someone pops in the channel to demand some feature and rather than the developers themselves explaining, again, why that isn't going to happen (ie video/voice chat) a proxy does. Some nondeveloper who is in contact filters insane requests.

That said there needs to be some volunteer for that role and you as developer need to not actively read requests.

Finally having experimented with the competition and having used liferea for a long time now, I think it is the best RSS reader for Linux (and Windows for that matter) and feel it is exceptionally stable and rather feature complete. So certainly don't get discouraged from all the crazy requests.

Lars said...

Thanks for both your opinions!

@holger: I agree there are projects (especially bigger and maybe commercial ones) that do live from user contributed feature requests. Mostly with the goal to increase their user base. But for most smaller project that, to be honest, almost always just implement what the developers want to have themselves, feature requests do have little value.

@robber baron: Good idea. A proxy could be a good solution. In fact when having a look at the different Linux distribution specific trackers I must say the maintainers do block a lot! This is really a big help.

Niels Langager said...

I just found your blog while searching for a way to submit a feature request to liferea.

How about just ignoring the request that you don't find inspiring. This way I get the opportunity to submit my feature request, and you don't waste your time.

PS: Don't spend time replying to this comment.

PPS: Thank you for liferea.

Lars said...

> PS: Don't spend time replying to this comment.

Arrghh... The pink elephant! Impossible to resist...

I don't think that "ignoring" the requests is possible. Because to filter the "good" ones you have to read all of them and then the original problem of the induced pressure and frustration of never being able to fullfill them/not even wanting to fullfill them reappears.

It's like in real life, you just want your smaller/bigger sibling to start continuously bothering you.