How to Be Helpful Online
nedbatchelder.com
nedbatchelder.com
There are so so many interactions that would go better if people would only do that.
Yes, you may well be able to guess that the asker is taking the wrong approach, and if they only told you what they were really trying to achieve you might be able to tell them what your preferred way of doing that is. But they haven't asked you about that.
If I ask "about how much would it cost to build the hull of an oil tanker out of titanium?", there's no need to ask me why I think I want to do such a daft thing, or tell me about all the manufacturing problems it would doubtless involve. Once I hear about the cost I'm going to give up on the idea anyway.
https://en.wikipedia.org/wiki/XY_problem
Sometimes it's better to question a person's motives than to hand them a shotgun to shoot themselves in the foot with.
It's usually still best to start by answering the question actually asked, and let the asker carry on from there.
Very often the answer to the question is "there's no way to do that", or "you'd have to build a whole Z by hand first", and the questioner will then back away from Y on their own.
The universality of `chmod 777` among people with no understanding of UNIX file permissions as a tool to solve all their problems is a great example.
At the same time, Stackoverflow and similar public fora are doubly dangerous for the issue I've described. Instead of the possibility of one person mishandling information they're not equipped to contextualize, you have potentially tens of thousands who will stop reading once they get the answer you have helpfully provided first.
Again, you're completely correct. Any response should bear in mind the possibly sizable audience. I think it might be the case that there could be scenarios where answering the question as asked first is actually the least helpful thing one could do for this audience. I have personally fallen into this trap, reading the first few sentences of something helpful and getting the dangerous information I was looking for, coming back for the rest only when it blew up in my face.
If you ask a question without presenting your best attempt at a solution, your question will be derided as lazy. If you ask a question presenting a poor solution (of course it's poor, you don't know how to do it), your question will be derided as wrongheaded. You're damned if you do and damned if you don't.
Many times I've seen a question "how to make an input field update when I press a button" and the answer is "you should just use React".
But the issue I'm running into now may be a dealbreaker for continuing to work with the technology; that is, if I were to ask someone neutral, they would tell me the technology isn't suitable for my use case.
The main thing with the XY problem is that if I'm told that it's my technology choice, architecture or solution direction is wrong, I have to consider whether to replace, re-architect or rewrite big chunks of my application.
I mean in my case it's an investment of days, but there's bigger applications out there where we're talking in work-years. And for a manager, or in my case someone who has to balance his own time for the most part, that's a difficult decision to make that shouldn't be taken lightly.
So please, while the XY problem is indeed an issue, start a reply by just answering the question; "how do I do x" SHOULD be a straightforward question in a lot of cases.
In the second half of a reply, as this article implies, you can point out that you suspect that the question isn't the real underlying issue. Have the person asking the question decide for themselves what to do with that information.
> There are so so many interactions that would go better if people would only do that.
Haha yeah. One of the worst offenders of this that I've seen is the community at discussions.apple.com. So many times have I been googling something that I wonder about macOS and there are results from discussions.apple.com and the responses are not at all helpful; instead they offer irrelevant suggestions.
Meanwhile, results from apple.stackexchange.com are consistently great in my experience. (Like a lot of the other SE sites.)
And it’s inevitable that this will be the top result in Google’s results along with many like this.
The only thing worse is finding people with the exact same issue and then “I fixed it myself”... with no hint of what they did.
Nobody writes for the 3rd party from the future
I eventually found someone else with the same problem, in a German support forum, who had fixed it... but never explained how.
There is an xkcd for this, and it felt like it was written just for me.
A note afterwards pointing the user to sed or awk is a fine thing, but the purpose of Stack Overflow is to be a curated database of questions and answers, not a support forum.
The problem is that the people answering to the effect of, "you should do this instead," seem to believe that the person asking the question is completely ignorant of the issues involved. This is not necessarily the case. Expecting the asker to justify why they want to use a particular approach not only discourages the asking, but it distracts from the question. Making matters worse, the people offering these opinions rarely answer the question anyhow.
For example, getting someone at work with some free time to pitch in on a minor presentation aspect of a major project, where decisions have been made over a long period of consultation and trial and error, I have been told all sorts of things about "it would be better if we did this..."
I guess people are trying to be helpful, but cynically I think it also comes from overestimating their importance and assuming because you asked for help it must be at a project steering level and not just to get through a minor bind.
Occasionally someone has decided a simple request for assistance is really a request for them to completely redesign the solution I already have bought the expensive components for, and half built and tested. Start from scratch, appoint themselves project leader, do all the experiments themselves that were already done, etc.
If we're really lucky, they'll do this despite months of work preceding the request.
No, sometimes I just asked for some simple practical assistance, end of. And I rarely want to delete the work so far, so we can all start from the beginning.
http://www.catb.org/~esr/faqs/smart-questions.html
Not that ESR has outgrown straight-up flaming, mind: http://esr.ibiblio.org/?p=4650
> >There is no communist invasion force openly posturing to invade and occupy the United States.
> No. Instead we have a violent Communist insurgency within our borders. They are determined, murderous totalitarians who will shoot you for wearing a MAGA hat. And it is time to end them.
http://esr.ibiblio.org/?p=8752#comment-2450425
Hard pass on that shit.
In the proper sense of the word, as in tripping someone up for taking themselves too seriously.
However, the article doesn't tackle the main difficulty I have with being helpful: laziness.
I really struggle to help people when typing their question in Google verbatim would lead to an excellent answer, especially so when I am the author of that answer.
Another common one is questions that should be answered with a quick call to customer service.
This extends to communities where the answer has already been provided several times.
I suppose the only thing that would be less effort would be to delete such questions. Perhaps a "post deleted for lack of effort (+ FAQ URL)", button. Would be highly efficient, but feels rather stern to me.
Keep in mind that nowadays Google does not always gives exactly the same answers to the same question asked by different users, it takes into account their query history as well. It might happen that Google built different associations for word in query for you and for other people... that's especially likely for topic that you're an expert in (meaning you likely did a lot of Google searches on related issue in the past).
I mentioned this to the lead instructor on the class I was helping with and he nodded and said that he was always told "to teach is to learn twice". He is overly fond of little sayings like that, but it is true.
I am also aware that I became a better programmer in some aspects by coaching junior colleagues. Partly because you have to translate and explain what's in your head in a form that somebody else can understand - which is actually the same as the effect I observed at aikido.
I also think it can help us be nicer to people who know less than ourselves, because we see more often the reminder that people can in fact learn things, and also people will ask questions which push the limits of our own knowledge, or we just don't know the answer, and it's okay to realise that you don't know and to admit it.
Having to step out of yourself and break it down is a great learning experience.
The "No Third Rails" section just screams SE. So many times I've found a question that is exactly what I am asking only for the responses/comments to be filled with "Don't do that, do this instead" as though there's not a single person on the planet who has different usecases or needs than the __current paradigm__. The whole question then gets derailed and ends up useless yet still at the top of search results.
An aside, for beginner python programmers, here is a very nice talk from Ned (among many others from him).
Ned Batchelder - Facts and Myths about Python names and values - PyCon 2015: https://www.youtube.com/watch?v=_AEJHKGk9ns
Folks who sit back and shout RTFM are those who are burned out from people wanting them to do the work for them. If you’re trying to accomplish something you need to show some effort, too.
Put the work in; read the docs, write a POC, show the people you're asking what you tried yourself and where you're going wrong. Prove that you understand the problem you're solving. And don't ask for people to do the work for you; in most cases, you're talking to volunteers who are looking for a distraction during their day job (some exceptions there; some projects will have dedicated support personnel but honestly those are pretty rare for some reason).
thanks ned.
In one case a user wanted to do something a bit unorthodox, but not entirely crazy and was struggling to figure out a way to architect it. One of the first replies? A more experienced member making a sarcastic, snide paragraph on why the askers initial architecture was not viable. Thats it, no real info as to why (except that it was over complicated andcontrived), no guidance on a better option. There also tends to be a number of "RTFM" type comments when I know damn well the official documentation is bad. Its not uncommon to find broken links, links to obsolete, incompatible versions, poor discoverability etc. In other places, I've had people call my an idiot for wasting my time trying to do something because it was "too hard".
It's a different discussion, but I also get the feeling there a number of communities that don't really care for hobbyists or hackers in general.
I think it'd be ideal if everyone who answered questions was polite, respectful and helpful all the time. I think it'd be nice if people who asked questions also did so in a polite, respectful and helpful way.
Somewhat exasperating the asker's position is that.. often if they're conscientious enough to do the legwork in order to ask a good question, they're more likely to find the answer.
Whereas someone who is entitled and doesn't know enough about the domain is more likely to be asking bad questions.
Documentation should be the canonical source of truth and more clearly laid out than any person can deliver.
Though, a better statement than RTFM (that I see in the Postgres community on IRC most commonly) is “does this documentation answer your question?”
The intention is clear that if it doesn’t answer the question then they will help and update the documentation.
How come that some people never have issues when posting for the first time in various forums? Perhaps they use traditional etiquette?
Harsh reactions are a self preservation mechanism. You get burned out pretty quickly by accomodating every know-it-all on the Internet.
In that forum, the maintainers probably have seen similar requests for hundreds of times.
The issue, I think, is that while the people in a community live and breathe $technology, I'm just a tourist; $technology is just one of many things I have to work with, know and understand, and it's a lot of mental effort to try and balance them all.
I mean recently I'm running into more and more issues with $technology and am considering moving away from it; I've scanned the docs again, but finding no answer for my issue with $technology I've opened up a GH question issue. Usually the community manager is pretty helpful.
But the thing there: The community manager manages just that project, it's his job, it's his library, he wrote most of the code and the docs, and if anyone knows his stuff, it's him. But for me, his library is just one of many gears in my system.
At least the docs for that one are manageable, can probably be read end to end in about an hour.
They felt there must be something wrong with me if I had so much time to help, surely I had a job to do, that it was not good for other programmers when some of us give so much of our time for free, etc.
I'm not exaggerating, that really was the theme of the complaint.