Hacker News new | past | comments | ask | show | jobs | submit login
How to Be Helpful Online (nedbatchelder.com)
154 points by ingve on Sept 14, 2020 | hide | past | favorite | 57 comments



« Answer the question first ».

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.


On the other hand, you might be facing an XY problem

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.


You very likely are facing an XY problem.

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.


When responding with an XY problem with the answer up front, it's always worth bearing in mind that there's a very good chance that whatever you say after that will be blathering into the void. The consequences of this, especially if on StackOverflow or similar, can be hard to foresee. This is perhaps something to be cautious of one-size-fits-all approaches to, especially if the answer could be dangerous in the wrong hands.

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.


On Stackoverflow, keep in mind that any other users with similar questions may have them closed as duplicates and redirected to the one you're answering, and even if this user has an XY problem, they might not, so you should answer the question first.


You're absolutely right! There are potentially a great many readers with exactly the same question, and any response should bear that in mind.

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.


(I guess it's okay to answer the question last, too, as long as it gets answered).


While perhaps true, I think the toxicity of many support boards, especially Stack Overflow, are part of the reason XY problems are pervasive.

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.


I struggle with this a lot to be honest. In another comment in this comment section I've mentioned working with a technology; while working with it, I run into an issue and I'd like to resolve the issue.

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.


Yes, but preemptively assuming a XY problem is also not good.

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".


> « Answer the question first ».

> 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.)


My favourite is a torrent of people telling them to google it, and chiding them for being so lazy.

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 once had the most intractable, weird problem I'd ever faced up to that point, no help from my colleagues (I only had one and I was very, very much more experienced in that area), spent ages trying to understand it, trying to find answers.

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.


That's understandable... but it usually takes a lot longer to calculate that cost than it does to tell you "don't do this, it's silly and would have all these problems". I answer questions on bash/awk/sed in Stack Overflow. You can do a lot of things with those languages, but sometimes people think they know what they want ("how do I do this with 'cut'?") when they could do it much more easily with another utility (awk/sed).


In the special case of Stack Overflow, I think the overriding concern should be to make sure that the page with the title "How do I do foo with 'cut'" has, as its most visible response, a description of how to do foo with 'cut'.

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 biggest issue, in my opinion, is described by the author as "third rails". I have stopped asking questions online because of it, and tend to avoid forums while searching for answers because of it.

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.


I have found this a problem in real life too - people often assume that when you are asking for help you are asking for them to become a strategic partner that is going to shape your overall approach to the problem.

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.


Think about it this way. They know something that you don't and you're in a position asking them for help. Engaging them as a partner in your solution creates buy in from them. And really they are actually a partner in your solution now. Their extra information, thoughts and ideas, may all be useless but letting them say that is the cost of not having to RTFM for yourself.


I've had the same thing when asking in person for practical, physical help with something.

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.


A fine complement to ESR's classic essay on netiquette, How To Ask Questions The Smart Way.

http://www.catb.org/~esr/faqs/smart-questions.html

Not that ESR has outgrown straight-up flaming, mind: http://esr.ibiblio.org/?p=4650


Actually that reads like someone trolled him very well.

In the proper sense of the word, as in tripping someone up for taking themselves too seriously.


Really wish I hadn't followed your link, so I can see them post gems like this:

> >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.


Wtf.


ESR is a toxic person who attracts other toxic people.


That website was really pleasant to read on. It's a simple, straightforward design.

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.


> 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.

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).


It's really hard to miss my website or those of my competitors. No matter which combination of keywords you use, you'll find an existing answer for some questions.


Customer service calls are rarely quick.


In my specific case, the questions couldn't be answered by anyone else. They have a specific issue that could only be solved by the company in question. What else can you say but "have you called customer service"?


Reply with an URL, if you've already written it or have it handy.


That's what I usually do. I have them memorised by now. It's just frustrating to put so much effort towards documenting something, and have someone casually expect you to type words into a search box for them.

This extends to communities where the answer has already been provided several times.


We know it happens, and will unfortunately continue to. Total noobs often don't even know where they are. However, I've come to the conclusion that it takes more energy on the expert's part to complain, rather than simply paste the URL.

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.


Better yet, reply with a link to a google search


That's just classic, lazy passive-aggression.


This is good advice. I've been helping my partner learn javascript (she's smart and talented but hasn't learned programming), and the other thing I'd add is that a lot of the time her questions are about how you would use a language feature, and why you would use it, and that teaching her has helped me learn and think about stuff that I took for granted. I think more people should teach/tutor/help others, because it's honestly made me a better more thoughtful and less dogmatic programmer.


When I started doing instructor training for aikido classes and started being out on the mat as an assistant, answering questions, helping people correct things they hadn't realised weren't working like they should, I found to my great surprise that my own aikido became better.

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.


I've also helped teach Aikido ... mostly to kids.

Having to step out of yourself and break it down is a great learning experience.


This is good advice. I've seen the opposite of every one of these points play out again and again, across different websites and online communities. I recently wrote an answer on one of the Stack Exchange (meta-) sites, on why this happens: https://tex.meta.stackexchange.com/a/8472/48 (The short version is that the experts/regulars see so many questions that they start to become conscious of the "quality" of each new question, which leads to annoyance for all people involved.)


It probably should mandatory reading for Stack Exchange users, it's an excellent article. Certainly resonated a lot, both with things I've personally done wrong and have seen happen repeatedly.

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.


One way you can get rep on SE is to find those questions and actually answer them. People tend to appreciate it, assuming they notice amidst the mess.


That's simply not possible for the vast majority coming across these questions.


Good advice!

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


I really liked the "answer yes" point. It keeps the person needing help going in the right direction instead of stopping them cold.


nedbat was very respectful when I once asked a rather stupid question on #python (I was a noob back then). I am very grateful for his replies that day because it led me to go deeper into python.


Tip: if you want to ask a question and get a satisfactory answer on sites like, say, MathStackExchange, avoid the gate-keepers. They are not there to answer questions in good faith, much less learn anything. They are there to be a part of tight-knit community and, well, keep the gates :) They usually waste your time picking nits, idly invoking some site rules(for example, removing "thanks" from your OP) and ignoring your main point, even if they know what you're asking about. Especially so, if they know (or can sense) you're a beginner in the subject where they keep the gates. Avoid asking questions about famous (but elementary) topics which tend to attract the gate-keepers. For example, likelihood of you getting a good answer(other than sneers) when asking questions about, say, Birthday problem or Monty Hall problem (elementary probability) or convergence of some super famous series (elementary analysis) is very low. Oftentimes, I see people get jumped if they post wrong solutions to their (elementary) homework in the hopes of understanding why the answer in their textbook is different from theirs and how the authors came to that answer. That happens because gate-keepers (a) feel their authoritah is being challenged (b) never bother/ed to learn anything in depth anyway(often, they have only a surface level understanding of mostly classic (elementary) results). Ask questions sourced from more obscure(less famous) books which attracts more knowledgable folk as these questions tend to be left alone by gate-keeper (high school mentality) crowd(who believe correct answers are more important than the whys).


A counter subject: how to ask for help online? Asking a well informed question will typically solicit higher quality answers.

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.


A common saying is "the best way to get the right answer is not by asking a question, but by giving the wrong answer".

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).


This article is good advice to anybody doing consulting work in tech or other fields. It lasts out basically how as an expert in something one should interact with those who (perhaps) know less. From my own decades of experience I can say that this advice works.


If anyone knows how, it's this guy. I've seen him on freenode's pound python for years offering friendly help. I won't list all his contributions to the community here but he has made many.

thanks ned.


Prior to his Django/Python adventure, Ned was with Iris/Lotus/IBM working with the Notes and Domino platform. It's hard to tell now, what with IBM first buggering up the system and then nuking all of history with the sale of Notes and Domino to HCL, but that was probably the best tech hippie love-in environment ever. Not only was the documentation ridiculously friendly, the peer-to-peer dev community would often half-build your app for you if you seemed lost or headed in the wrong direction, and it wasn't at all uncommon for the platform developers to be in there neck-deep either dealing with unexpected behaviour (edge cases testing could never have caught) or explaining why a different approach might be better for performance or security reasons. Every dev community should be like that one was at its best.


I've recently been reading over certain forums that happening to be basically the only community support option for a niche and honestly I'm not sure I'd care to waste my time posting there.

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’s unfair to say that RTFM (if delivered well, and linked to the relevant documentation) is a poor response.

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.


If you think that's bad, I once had someone privately write to me an angry rant about how I was being too helpful to users on a mailing list.

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.


When you look deeper into these stories, most of the time the poster is entitled, passive aggressive or thinks he knows everything better.

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.


I've ended up asking questions that were explained in the docs pretty well more than I dare to think about.

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.


I think it’s very common to think “if I had to RTFM, then so do you!” It’s kind of depressingly pervasive.


I can see at least a couple of unpleasant interactions: On one end of things, people who want help but then get harsh/unhelpful replies like that. On the other end of the scale, if you have the capability to help, but are faced with people who are too lazy to even listen to your answers. -- It's an asymmetry with some poor incentives.

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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: