How to get an open source community to be interested in helping you
snoyman.com
snoyman.com
Great post, definitely these are the things that make for a great participating in an OSS project.
Unfortunately, the folks who spew out impatient, one liner bug reports are exactly the folks who will never read such a blog post, or anything else for that matter. They won't even read the ALL BOLDFACE bug posting instructions I put up that tell them to post a usage example and don't just show a line of code you think should change.
I've had many days ruined by naive idiots who think I work for them or something, and it is an ongoing, multi-year practice to learn how to not escalate and how to not have your day ruled by such people.
In case I'm not getting downmodded here enough, I'll add that users/nicknames that seem to identify as female never have any of these issues - users that identify as female always come very well prepared with great test cases and all the up front research done. More and more the issue of "decency" seems to pervade all areas of human interaction as we've descended into such a non-decent era.
Oh, the dozens and dozens of times I solved my own problem while making it reproducible, before actually filing the report!
Recently I started a new project and got 7 contributors in a week - more than I've gotten for any project ever. [1] I think its partly due to hacktoberfest but also because I realized I can't waste a contributor's time. I made issues with descriptions of exactly what should be done - where in the code they could introduce edits, and what kind of dependencies people could use to implement, etc. Though I could have done myself, I didn't have to and I also got to see some ingenuity of other people!
Here the packages he's a maintainer for on Hackage:
ESR did it better, imho :-)
I much prefer Julia Evans: https://jvns.ca/blog/good-questions/ and https://jvns.ca/blog/answer-questions-well/
Regarding the "lowly questioner" dynamic, look at it this way: if you're asking someone a question about their software, you're seeking to extract time from someone in order to extract value from something that they created. Be humble.
https://jvns.ca/blog/good-questions/ covers both of those topics in detail, in my opinion.
I don't think it's saying that. It's just saying "the person you're asking owes you nothing, is probably very busy at best, and may be a self-important jerk at worst, this is probably the most effective way to ask them for help."
(There's nothing wrong with being defensive of your time. There's something very wrong with being a jerk about it.)
Quoting directly from the document:
> you are one of the idiots we are talking about
> leave us alone and everybody will be happier
> What we are, unapologetically, is hostile to
> We call people like this “losers” (and for historical reasons we sometimes spell it “lusers”).
> J. Random Hacker is quite likely to reply with a uselessly literal answer while thinking “Stupid question...”, and hoping the experience of getting what you asked for rather than what you needed will teach you a lesson.
> Stupid:
> we can't be bothered
> will make you come off like a giggly teenage girl, which is not generally a good idea unless you are more interested in sex than answers
The entire section entitled "RTFM and STFW: How To Tell You've Seriously Screwed Up", especially things like:
> You shouldn't be offended by this; by hacker standards, your respondent is showing you a rough kind of respect simply by not ignoring you. You should instead be thankful for this grandmotherly kindness.
> The same place I'd find it, fool
> J. Random Hacker's response to this is likely to be “Right. Do you need burping and diapering, too?”
> While muttering RTFM is sometimes justified
(no, it isn't)
- Terms like "ruthless" used as praise.
- Numerous attempts to praise lack of basic decency and excuse bad behavior in the community.
- A pervasive "us" and "you" approach to othering the lowly petitioner, despite claiming to want to welcome them.
The above is a partial list of reasons why not to recommend that particular document, and why to seek out and recommend better ones. I've seen people recommend this particular document while simultaneously attempting to excuse it; better would be to write it off as a hopeless bit of elitist historical interest, recommend better documents that already exist, and update any such documents to include any useful information that they might lack.
This is an inaccurate and dismissive description. This document is actively hostile, and revels in its hostility. It's propagating a perspective that it's acceptable to deride and denigrate newbies, that it's acceptable to be hostile and toxic and unwelcoming, and so on. It gleefully celebrates, or at the very least excuses, people who throw around "RTFM" and "STFU noob" and "UTSL". Propagating this document encourages people to think such behavior is a good idea.
We can, and should, build better hacker communities, and this document has no place in those.
> personally. I'd like to think most folks attempting to build/repair/maintain systems built by other people can too.
You might like to think that, but that assumption excludes many people from the community, in a self-perpetuating vicious cycle (where "vicious" is a particularly appropriate word). It creates communities that exclude people who are not like you. And even those who can should not have to. I can cope with such people, but it's painful and draining, so I spend more time in communities where such hostility is not accepted.
You might find if you spend time in such communities that you may enjoy them more as well. Or perhaps not, but either way don't make things worse for others.
The right response to such hostility is "we don't do that here".
The ideals you've posited sound pleasant initially, but they bear little resemblance to being able to do real work in the messy, impatient, human-infested world others live in. Would it be nice to eschew the linux kernel, or the openbsd community, because a large fraction of those folks meet the ESR 'busy hacker with attitude' definition? Sure. Would it be career-killing to say "Linus/Theo were curt with me, _how wude_, let me agonize over it on my Tumblr and waste dev cycles finding another kernel/crypto library/whatever"? Absolutely.
ESR's guide is pragmatic, and far more effective at solving the real problem in front of the questioner, than the "pout and shun" methodology you've espoused.
You seem to be reading more into that statement than I've actually said. You're also attempting to ascribe a ridiculously patronizing tone that is of course easy to argue against, having been artificially constructed for that purpose rather than representing any actual position I've stated. I didn't say "don't use Linux because LKML is awful"; that would indeed be counterproductive. I'm saying "make new communities more friendly and welcoming than LKML, and don't encourage or excuse being awful to others".
Are you actually attempting to claim the document has no issues at all? Or are you simply trying to claim that despite its issues the document also contains useful information? I'm not arguing against the latter, simply stating that that's a good reason to create and propagate new documents that don't have those issues. If you're trying to claim the former, you've done nothing to actually support that position or reply to the detailed list of such issues.
I re-read it every few years, and if we all spent the time to ask smart questions in every sphere of our lives, we'd all be better off. It's hard to do though, because it demands we expect more of ourselves. Sometimes it's easy to just post a question to the ether than to do the hard work of investigation/research needed to ask a smart one.
My all time favorite- asking for a feature that is already existing, not taking time to search the documentation, then when somebody duplicates the information for you (basically becoming your free of charge search engine) - you dont thank him, but ask for a implementation (basically hiring a programmer for free)- once that doesent happen, you are never heard of again.
And that above is the norm in Open source community. Those hostility arise, because there is a constant stream of clueless users doing the crybaby on forums. Which is why man open source devs retreat to irc and only answer your question if you lurk for a day and post a little history detailing your own investment.
A quick analysis of "Example 1":
* developer has already figured out that the person almost certainly means to get the extension, but they then inexplicably post the likely irrelevant answer that blithely returns the last three characters. (More on that below...)
* developer uses caps-- meant to convey that they are YELLING at the questioner-- which is unwarranted and pointlessly aggressive
* developer is obviously annoyed by questioner taking too many steps to get to a proper statement of their problem. But after the developer states the problem properly and the questioner confirms it, the developer wastes a step in their own response to demand that the questioner obtain an arbitrary level of knowledge before they state future problems. I write "arbitrary" because the developer has apparently decided that the questioner should have already known that a) a file extension is called a file extension and b) file extensions don't always contain three characters. But the implication is that a questioner armed with this increased level of knowledge (and who would have therefore Google'd the answer more easily) strangely would be more deserving of receiving an answer than someone who obviously sought out the help of a fellow human being because they didn't know what to search for. That's a bizarre (and frankly anti-social) line of reasoning.
* developer uses a mean-spirited adjective "blindly", ostensibly to hurt the newcomer's feelings. But this is my favorite part-- the developer has already shown that they were nearly certain that the questioner meant to ask for concept they were unable to name-- an extension. (Plus having that confirmed by the questioner.) So for the insult to work here, the developer refers back to their own irrelevant example, calling that "blindly grabbing three characters," and using sleight of hand to reinterpret that as the initial query. All this after having already confirmed the questioner's actual problem!
That shows an impressive level of premeditation to be a jerk-- that is, setting up an irrelevant answer in order to heighten the language for an insult in a later response.
I sure hope this example response doesn't really reflect the current communication style of FLOSS devs.
The issue I run into is this: I work in the enterprise environment. I have a lot of experience but sometimes I'm forced into doing something seemingly stupid that you would normally never want to do (obviously more complicated than the silly "last 3 characters" problem). So I ask on SO giving as little detail as possible, purposely because I'm hoping to avoid a bunch of wasted time with "but you don't need to do that you can do solution A", where solution A is a solution I already wanted to do but was unable because of some reality of the company I work for (and no, I can't download or install anything and I won't be able to change that). All the obvious solutions will be this way. What I actually needed was what I asked and I had to ask precisely because I also never normally want to do this so I don't know how.
I find the kind of answers that some people advocate for extremely arrogant. By answering e.g. an SO question by answering something that wasn't asked you (a) assume you know more than the person asking (you may, or you may not) and (b) assume there will never be another user anywhere that will actually need the answer to the question that was asked. I get hit by (b) the most: I put my question into google, I actually find an SO question that I need the answer to but some jerk explained the user wanted something else, answered that and then, of course, the thread died.
That said, your reading is not very charitable. Mine was:
* Developer reflectively responds to the question as stated
* Developer then thinks "wait a minute, why 3 characters?"
* Developer assumes questioner knows that extensions are called extensions, because "everyone" (certainly "everyone in a tech IRC channel") knows. Speaking from personal experience, this is an easy trap to fall into
* The response of the questioner ("yes", rather than "maybe, what's an extension?") confirms that assumption in the developer's mind
I think it doesn't only stem from OSS communities, but is some sort of innate tendency in the types of people who get into software and IT, which dictates that community culture unchecked can become a contest of derision, one-upsmanship, and as you put it, impressive levels of premeditated jerk-ness. I don't know if it comes from the (apparently) increased levels of antisocial personalities in software, or insecurity, or maybe a more base, primal urge to haze the newcomers unnecessarily.
Not as pervasive as it used to be, but sadly still present in some places, particularly in communities that don't go out of their way to discourage it.
Personally, I would suggest https://jvns.ca/blog/answer-questions-well/ and https://jvns.ca/blog/good-questions/ , the first of which was specifically written to address the lack of availability of documents talking about the issue without that kind of newbie-unfriendly elitism.
This is 100% accurate. There is no better way to get assistance with HiDPI tweaking on a Linux desktop than to go onto a subreddit and bash your DE of choice, complaining about its lack of HiDPI support.
I've also found that timing can be important. Basically: don't ask on Fri at 3:30.