Don't Like It? Code it Yourself!

Speaking as the lead developer on one open-source project and a developer on another, I can say that, at least from those two projects, it’s not a ìfuck youî.

I ask you to look at the situation from the side of the project’s maintainer. When we say ìpatches welcomeî, we say it because your feature or bug is not more important to us than any of the features we already had on the slate or any of the bugs we want or need to fix.

There’s a ratio at work here. On one side is the benefit we’d get from the feature. On the other side is how hard the feature is to implement.

We only have so much work in us in a day, and we’re going to spend it on the things that give us the most benefit. It’s simple self-interest. It’s not a slap at you; it’s just us trying to make ourselves happy with our limited time. Anything we do for others is a combination of generosity and hobby.

Thus, getting your feature higher on our priority list requires changing the ratioóeither making it less work for us to add, or increasing its benefit to us.

There are two parts to the benefit: its direct benefit to us (what we get from using it, which is zero if we won’t use it), and the indirect benefit of satisfying however many people want the feature.

Increasing the benefit is really hard. You basically can’t change how useful we personally would find it, so all you can do is is boost its popularityóthat is, get other users to second your request. But we balance the popularity of a request against how much work it’d be to do, so even an extremely-popular request may still go on the back burner (such as voice/video chat in Adiumóextremely popular, but extremely hard).

That leaves the first way. If you write it yourself, our work to add the feature consists of reviewing and adding the patch. For large features, that’s a significant drop, and can make the difference between ìmay happen somedayî and ìwill be in the next versionî.

So ìpatches welcomeî is not ìfuck youî. It’s ìwe have limited time and other features planned that we consider a better trade for our time than this oneî. There’s only one way to change that: You can’t give us more time in a day, and you probably can’t increase the feature’s benefit to us (not much, anyway), so all you can do is reduce how much time we’d have to trade away, which you would do by writing the feature yourself.

Also, all of the above applies to bug fixes as well: A very minor bug, especially if it requires a lot of work (or even a systemic redesign) to fix, may go unfixed for several versions. A patch could change the work/benefit ratio enough to move it up the slate.