May 5, 2010

Don't Say "Patches Welcome"

Don't say "patches welcome" it does more harm to your community than good. Why? It's a polite way of saying "I don't care. Fuck you. Fix it yourself. End of discussion".

1.) Not a Developer

The person you are saying this to is not developer. They don't know how to do it. PERIOD. At this point you are refusing to help them. This person may now have the opinion that your community isn't helpful. Don't ever for any reason assume someone is a developer, assume they are not. I would wager only 1 person in 10,000 is a developer.

I was once told that I should be able to fix a bug in git (msysgit technically) because git is a developer tool. At that time I couldn't code at all but was using git to store homework or something...

2.) Novice Developer

Some how you know the person can code through some method other than assumption. They aren't as smart as you are, there code is so amateurish that it wouldn't be worthy of inclusion, even if they could figure out how to fix the problem. They can't get that far, they've no idea where to begin. You're probably just frustrating them instead of helping the problem. All people that you know are developers fall into this category (unless they fall into the next), either be willing to help this person patch your code or just give them the real reason (e.g. I've no interest in this problem) for not helping. These people know they could be helping, they may even want to be helping, but you telling them that they could be is not helping. They need guidance, not an invitation.

3.) Doesn't Care

So the person doesn't fall into any of the 2 above categories. Guess what? they don't care about it enough. They don't need you to tell them "patches welcome", they know what open source is. They know they could send you a patch, and that you might accept it. They know all that, but there's some reason they don't want to. You aren't telling them anything they don't know. Again just tell them the truth of why you don't want to work on it. Maybe ask them why they don't. Maybe it's a silly little barrier that you can help with. But only bring that up if you know they are competent enough to do it.

Just Stop

Just stop, after years of hearing this when I couldn't do it. All I hear is "fuck you I don't want to take the time to help you". Why would I want to help if that's what I hear? Don't tell me it's not what you mean. Because I've had that said directly.

Stop acting as though everyone can or should write you a patch. Most of you don't agree that you have a responsibility to the free software you create. No one else has a responsibility to contribute to the software. They aren't leeching if they don't give back, you gave it away. Don't ask them to, don't tell them to. They don't want to hear it anymore than you want to fix their problem. Definitely do NOT "volunteer them" to get something done, that's just plain rude.

Pretty much everyone you've ever told this too already knew that patches were welcome, so there's some other reason they weren't writing one.

Exception: If someone asks you if you mind if they work on your code. You can of course answer them "patches welcome" this is because they asked, as opposed to you volunteering that info.

28 comments:

  1. "Stop acting as though everyone can or should write you a patch."

    If only the same advice were followed by those telling authors that they really need to add this feature or fix that bug or paint the bikeshed a different color.

    ReplyDelete
  2. Rudeness on both sides. But you should fix bugs (if you know how), and try to implement features. Both within a reasonable amount of time according to severity. Obviously life comes first.

    If it's really a Bikeshed situation the patch probably isn't welcome anyways. We don't want all features. If you don't want it just say it.

    Although I love what rjbs said the other day... (paraphrased) "I didn't understand why people wanted a dzil new, now that I've built it I see all sorts of potential for it." Point there is that just because you don't see the reason now doesn't mean it doesn't exist, and you won't see it later.

    ReplyDelete
  3. I should note: I get patches welcome when I first suggest something quite regularly. It's not like I'm pestering.

    ReplyDelete
  4. When I say "patches welcome," it usually means "it's not on my list, but if someone does it I have no problem with it." If I think some feature doesn't belong, I'll say so. It also doesn't mean the person asking the question has to write the feature, they can find somebody else to do it as well.

    ReplyDelete
  5. @phaylon how many times have you seen someone with no programming experience take that suggestion and find someone else to implement it?

    ReplyDelete
  6. @phaylon and do you believe that it was the direct result of you saying "patches welcome" or would the patch have gotten written anyways.

    ReplyDelete
  7. I don't really publish applications. More libraries, so most of the people I say it to *are* developers. And more often than not people will contribute a patch. And no, if nobody else had written those patches, most of them would have not been written. If I'm planning to write something, but don't have the time, I usually say so. Then the other guy can decide if he needs it now or wants to wait.

    ReplyDelete
  8. @phaylon Yeah but what I'm saying is... do you think you saying "patches welcome" has had any impact on the patches coming in? I speculate that if you don't say "I don't want that" and you find another way to say you don't have time to write it right now. then you'd still be getting a patch.

    Given when you're a library writer it might be a bit of a different ball park.

    Although I can think of some cases where I would come to a library writer as a user... because I've had distro's and application writers tell me it was a problem with the library then I had to go talk to the library people...

    ReplyDelete
  9. In my experience it is understood as I meant it, so I don't see any difference for me.

    Talking to a non-developer about one of my libraries or a library I contribute to is happening on so few occasions that I can't even think of one. If a user says they can't patch it, I won't say "sucks to be you." I'll try to find out the reasons and tell them their options. Maybe directing them towards a mailing list or something. Or simply telling them to file a wish-list item and hope somebody will have time.

    Users are humans too. But so are we.

    ReplyDelete
  10. @phaylon "Users are humans too. But so are we."

    I'm not suggesting otherwise...

    but admittedly I've heard this so much over the past 7 years of using linux most of which I was lucky if * could write bash scripts. That frankly I have a immediate negative reaction (I've developed a pet peeve) to the person, and project. I most certainly won't be producing a patch. Although sometimes I see this problem exists only in certain members of the project.

    It also depends on the person. I think some people do it to try to get more contributers and that's not a good reason, nor do I think it increases the chances.

    I can also say that I've had a conversation with another person that agrees with me that 'patches welcome' attitude is generally a problem.

    ReplyDelete
  11. I've heard it often myself. I don't speak any kind of C or C++, and rely solely on others in that regard. But I never took it as an insult if somebody said "patches welcome." And most of the times when I answered that I couldn't, I was told why it was a lower priority, why nobody yet needed it as much as I seemed to be, and so on.

    Also, I see people becoming contributors this way every other day on IRC. This especially often happens in regard to documentation patches. It's not hard, and there's nothing you can mess up. It's not like people are left for themselves after a "patches welcome." There's usually no problem getting help on solving the problem from the community. Answering questions, reviewing code and guiding someone is often easier than doing it yourself all the time, plus you might end up with another helping hand.

    And I'm sure you find lots of people who agree with you. Personally I'm more concerned with the entitlement that some people feel (the topic we had in the past). Because as a developer I can say this: It wars one down. Having to defend yourself because one thinks as oneself as part of the community, and not a service provider, wears one down much more than doing anything productive.

    ReplyDelete
  12. @xenoterracide:

    Note - this is my personal POV as a chainsaw-delegate for a large project. My OSS work is also centered around libraries, quite complex ones at that. I agree with you that "patches welcome" is mildly offensive - furthermore this is somewhat the point. A grown-up will smirk and "suck it up", and just write the damn thing (or ask for *specific* help if he can't). If you can not handle a rude-ish equivalent of "Yes this might work, but my TODO definitely prevents me from writing it myself", how can I expect you to handle the actual patch-review process, which for a library used by hundreds of developers is akin to the circles of hell? Being all warm and fuzzy, and then engaging into a long warm and fuzzy discussion why your contribution is utter crap and can not make it in, has a very high opportunity cost. If "patches welcome" deeply offends you - I do not want your patch in the first place, because you do not have what it takes to make it to trunk.

    ReplyDelete
  13. @Peter see... as time goes on I get more an more competent as a developer. But I'm also getting less and less interested in contributing code because I'm tired of this attitude. So by the time that I'm good enough to meet your standards, whatever they may be, I won't give a shit. All because I've been treated this way for years. If you lose 1 good developers contributions while shoving away 10 that you didn't want anyways. Is it worth it?

    ReplyDelete
  14. I'm not sure "patches welcome" is *always* brush off. Accepting patches is *far* more time-consuming than you'd think: you have to review it, understand it, check it's well tested and plays well with existing and future features.

    Saying "patches welcome" also implies that you may be willing to spend time to point the patcher in the right direction, or to help nurture a valid-but-incomplete patch.

    These nuances don't necessarily come across in a 2-word phrase of course... ;-)

    ReplyDelete
  15. I wish all people thought accepting patches meant understanding and reviewing them. I once pulled a patch from someone... and reviewed it... I realized it should have been like 5 different patches and that 2 of those patches should have been thrown back as being crap. ( on list of reasons I won't use Funtoo. drobbins wasn't doing any QA on patches he was accepting .)

    But I find that at least half of the people who say 'patches welcome' don't mean they are willing to help you get there. They only mean that if you can come up with one, they might apply it.

    ReplyDelete
  16. "at least half"? Half the time when you asked if they'd be willing to assist and answer questions they said "No"? That's not my experience at all.

    ReplyDelete
  17. half not necessarily meaning perl developers... and they usually don't say 'no' they just don't answer the questions being asked. At least that's been my experience. Half is a Pooma number. I have no idea if that's accurate or not. It could be much lower, but it's high enough to be a problem in my mind. It could be because they themselves don't know the answer. Or it could be because I'm a novice and no one wants to spend the time dumbing things down to the level I'd need to actually get things done.

    ReplyDelete
  18. It could also be that they just don't have the time. Lots of possibilities. What do you think is more rude, not answering for some unknown reason or assuming the silence is meant as an action against you?

    Besides, it seems your problem is not with people saying "patches welcome." The problem seems to be with people who don't mean it.

    ReplyDelete
  19. It's impossible to differentiate which's which. Better to just stop using the phrase and start saying things differently, since "patches welcome" could really mean any number of things depending on person(s) involved and context. Better just to say something else, like what you actually mean. If what you mean is to be rude, just be obviously rude instead of veiling it.

    ReplyDelete
  20. But it *does* say what I mean. Patches *are* welcome. Unveiled and to the point. So for me, it's not better. IMO it would make much more sense to educate people that what they think someone meant on the internet might not be what was actually meant. Seems much simpler than trying to get the world to stop using a phrase every time someone is sufficiently annoyed from hearing it too often.

    ReplyDelete
  21. I learned a long time ago that it doesn't matter what you meant. It matters what other people think you meant (or what they heard). You can get in a lot of trouble for what you say (even in countries with 'free speech') regardless of what you meant by it. You seem to think this problem is relegated to the internet. It's not people interpret what they think you mean all the time in real life. It may not be what you meant, or even said at all.

    ReplyDelete
  22. And nothing about saying "patches welcome" (or any of the other similar phrases, conveys you're willing to help the person.

    ReplyDelete
  23. Your examples are all about situations where the meaning and the language are not identical. This is not the case here. "patches welcome" contains two words, "patches" and "welcome." Together they imply that I, as the author, am open and even welcoming to receiving patches from other people. And that is exactly what I mean by it. The only ambiguity is because you read something and thought it meant something else, which in my case it wouldn't. You can get in a lot of trouble for that too.

    And no, I'm not explicitly saying I'm willing to help. Because if I advertise that too much, people will feel entitled to my support whenever they please. I'm generally willing to help as much as I can, which is sometimes more and sometimes less. But I certainly won't start using disclaimer-like remarks in case my opponents social base level is to assume I'm an ass. Frankly, if they come in with that attitude, I'm not very motivated to help anyway.

    ReplyDelete
  24. I don't think I can generalize of the meaning (or my understanding) of "patches welcome" but I certainly felt on many occasions that it means "I don't care much".
    Of course I understand people are busy and my current issue might not be the most important one for them to say the least but I feel that a more elaborate answer usually motivates me more to try to write that patch.

    Acknowledging the issue, saying a few words why you won't do it yourself, giving some directions. These can all lead in the direction of friendliness.

    Some people don't need that. Some do.

    It might be related to getting people to be more involved and turning them into long-term contributors, but I don't have a proof for that either. Just gut feeling.

    ReplyDelete
  25. 1 - Not a Developer

    Most of the OSS that puts authors/developers in direct contact with the end-users are, indeed, libraries. That means the end-users *will* be developers in most cases.

    2 - Novice Developer

    Providing patches is one of the best ways for a novice developer to raise the bar on his personal skills, including the initiative to spend time on getting things done (as opposed to spending on complaints about things which aren't done), which is, IMO, the most valuable skill any professional can have. This is what happened to myself, btw.

    3 - Doesn't care

    First and foremost, if the end-user doesn't care, why is he asking for support in the first place? Also, if the end-user has the right to "not care", I think it would be reasonable for the developer to acquire the same right as well.

    Your self-cited "responsibility to the free software you create" is just plain wrong. "Free as in freedom" means anyone can do whatever they want to the code, which includes abandoning it if they please. I would say the quality of the software is a lot more vital to the community than anything else. If you have high-quality software, less people will be asking for support, which leads to less oportunities for developers to say "patches welcome", which defeats the entire purpose of this article. This alone, is enough reason to justify asking for patches. Also, be reminded that time spent on writing rants can almost always be better used writing patches.

    ReplyDelete
  26. #1 since we're talking FOSS where do you think people get there support if not developers? there isn't a support line... you experience a bug or lack of functionality if you have the desire and clout you go talk (via bug or whatever) to the developer. Or do you know something I don't?

    #2 what I mean is not that novices shouldn't contribute. But that the don't know (necessarily) enough to get started. So just saying patches welcome isn't necessarily going to get them going, because they won't know where to begin.

    #3 they don't care enough to spend the time digging around in your code to solve it.

    yes quality is of utmost import, and people can /abandon/ projects (however, if the project is abandoned then the developer probably should have posted that in which case no one is probably going to ask for support unless they are talking about maintaining the code themselves). However, most open source projects don't reach any kind of standard for quality. You could name almost any project I use and I can tell you something that it could use work on, even those of the highest quality like PostgreSQL. With that in mind consider that I still consider myself a novice developer and if I wasn't I wouldn't have all the free time in the world to fix every project that I had a problem with. Which is among the reasons 'patches welcome' annoys me. I have things to do too, and it seems every foss developer expects that a person talking to them and asking for there help is more than willing to become a contributer. Sometimes it'd be a useful feature for us... but not to the extent that we have time to learn a new language, api, or codebase to accomplish it.

    ReplyDelete
  27. 1 - I might be wrong, but in my experience, FOSS users get support from the community as a whole, AKA other users in blog posts, mailing lists and irc channels. This in fact, is one of the motivators behind free software. And, in my view as a project manager, if there are any cases where developers are giving out support, the project is going in the wrong direction, because a software developer that is giving out support is a sub-allocated resource.

    2 - Again, if people are being invited to contribute, they should get the assistance they need in order to do so. If that's not the case, then *this* (the lack of assistance) is the problem, not the invitation to contribute.

    3 - If they don't care enough it means they don't have a serious use case for the software. This is also a project management issue, support resources are better allocated helping people that *do* care.

    Also, people aren't obliged to do anything as long as they're not infringing the law. This means you can reply a "patches welcome" with an entire rant in a blog post or a polite "I don't have the time or knowledge to contribute". This is also what moves free software, different projects have different models and new models are coming to life every day to adapt to the new problems they face.

    ReplyDelete
  28. I much prefer having a SubmittingPatches document http://xenoterracide.blogspot.com/2010/05/submittingpatches-is-better-than.html

    which defines what kind of patches are welcome and makes no assumptions. I don't welcome all patches.

    ReplyDelete

No trolling, profanity, or flame wars :: My Blog, my rules! No crying or arguing about them.