Hacker News new | past | comments | ask | show | jobs | submit login
How to answer questions in a helpful way (2017) (jvns.ca)
249 points by zdw on Oct 18, 2020 | hide | past | favorite | 65 comments



  George: I’m doing X, and I got this error, how do I fix it

  Jasminda: Are you actually trying to do Y? If so, you shouldn’t do X, you should do Z instead
Argh, this makes me so stabby. These days 90% of Stack Overflow "answers" are of this form, where the respondent does not respect the possibility that the questioner knows what they are asking and why. It is not always a sunk cost fallacy, where the questioner "might be attached to the steps they’ve taken so far" as the article states. That's also condescending!


thanks for pointing out the "might be attached to the steps they've taken so far" line -- that is condescending, and I've fixed it to make the point I was actually trying to make (don't be condescending! :))


Always answer the question first.

”Here’s how you fix that error. But that’s an unusual situation and it sounds like you may have taken the wrong turn. What was your original goal?”

Another frustrating thing is trying to teach when the asker is in hair on fire mode. Don’t do Socratic methods when there’s an emergency or the person is stressed about a deadline. Help them, then bring it up over coffee next week and explain the teachable moment.

edit: Why the downvotes? Does HN really prioritize being unhelpful? That's weird


I'm guessing you got downvoted because people tend to be attached to the Socratic method. There's a fairly narrow scope where it is a good idea - particularly when there's an understanding on both sides of mentor/mentee. In other cases, it sometimes works, and sometimes goes south.

I've noticed that it's fairly common for people to resent the Socratic approach being used on them. Probably they think that you're assuming a teacher/mentor role (and this may not be your intention), and they want to keep it as a "colleague" role.

Whatever people's intentions/interpretations, the Socratic method backfires a lot. Every one I know at work who is heavy on it has a number of colleagues who refer to him as "arrogant" behind his back. I remember the first time this happened, I was quite taken aback because I knew the person quite well, and he was anything but arrogant. But by using the Socratic method, people felt he was assuming a superior role.


I'll add that there's a whole other dimension to this. People often ask leading questions with the Socratic approach. For the vast majority of folks, their experience with leading questions involves either:

1. A trap

2. Someone who wants to tell them something but insists on doing it via questions.

3. Both

An example of 2 above is when A (e.g. a manager) is upset at B (an employee), but won't go into the details, but instead keeps asking "You did X. What do you think person Y thinks of this?" and a lot of "Why" questions. In practice, this has a high failure rate: B is often annoyed, and A failed to adequately express the problem.

I've been guilty of doing this, and I've often had people tell me after I ask a question "It sounds like you have something on your mind. Why don't you express it?" Less polite people (including me) have said "I'm interested in a dialogue, not a one-way set of questions. I have better things to do than answer questions. If you have something to say, I suggest you start saying it. "

Communications and negotiations books universally tell you not to ask leading questions. Ask questions only for clarification or out of genuine curiosity. For everything else, express concerns openly - don't ask questions.

Anyway - the point of this side note is: Often when people use the Socratic method, they use leading questions.


> I've noticed that it's fairly common for people to resent the Socratic approach being used on them. Probably they think that you're assuming a teacher/mentor role (and this may not be your intention), and they want to keep it as a "colleague" role.

It is not just that. It is fundamentally asymmetric style of communication. One person is forced to defend every tiny point, the other person does not have to defend anything. It is much easier to ask questions then to answer them. No matter how much you know, I will be able to reach borders of your knowledge.

In negotiation or causual debate situation, people quickly realize that your communication style is putting them at disadvantage and act to prevent that. Imagine we are discussing whether to go with my idea A or your idea B. You ask all questions, I am expected to answer them, and there is no place for your idea to be questioned too. The typical end result is that faults of my idea are presented, faults of yours are not, so you win.

Of course there are ways to counteract that, but people will still perceive you as hostile/unfair rather then cooperative. Because they had to use verbal wrestling.


> It is fundamentally asymmetric style of communication. One person is forced to defend every tiny point, the other person does not have to defend anything.

That is often how people use the Socratic approach today, but it is not fundamental to it. One can make it two sided, with both sides participating and asking/answering questions.

> It is much easier to ask questions then to answer them.

Indeed. I've at least once told the other person that it takes almost no cognitive load to ask a question, but plenty to come up with a meaningful answer, and that I was done answering his questions unless he brought something to the table.

Now if the questioner is indeed trying the Socratic approach, he probably is putting quite a bit of thought into his questions. But for the recipient, it is hard to tell if he is or isn't. Furthermore, asking questions is a tactic used by people to confuse others, so the questioner can't tell if you're being sincere with your queries or not (hence why people say "Don't answer my question with another.")

> Of course there are ways to counteract that, but people will still perceive you as hostile/unfair rather then cooperative.

I mentioned a way in another comment: "It sounds like you have concerns with my approach. I'd like to hear those concerns." For most sincere people, this is enough. If they keep asking questions, I switch to responding with further questions: "Would that not mean that if you do X, then Y will result?" to which my response would be "Would it?" or "Can you explain how you came to that conclusion?" or even "I'm not sure. Can you explain why that is a concern?" If they answer, then I get to respond by questioning them.


> I'm guessing you got downvoted because people tend to be attached to the Socratic method

Would be pretty ironic for people to be reflexively downvoting things they disagree with, in the same of the socratic method.


This is a shame to hear. I like the Socratic method and think it's the quickest way to get on the same page with someone.

I also don't see any problems with someone probing what I'm doing. How can they help if they don't understand what I'm trying to achieve?


Communication is hard.

The Socratic approach is not flawed in and of itself, and works great assuming both parties share a common understanding on the purpose of the conversation. Often, that is not the case.

It's also great amongst equals, where both parties are trying to learn from the other. But this is not the scenario here.


There’s a time and a place. I love the socratic method and use it often.

But when production is on fire, put out the fire first, then go into a series of probing questions about how fires happen.


Some people are anti-intellectual or are fearful and defensive at appearing less competent, perhaps out of fear that they will lose status or their job


>I've noticed that it's fairly common for people to resent the Socratic approach being used on them Socrates famously got sentenced to death for being too obnoxious, after all


It is tad more complicated then that. It was not just being obnoxious, it had to do with politics and previous bloody dictatorships by his students.

It was miscarriage of justice using pretext. But the core reason was not pure obnoxiousness.


Usually the people answering this way don't know how to fix the problem being asked, they know something that upon first reading looks sort of similar and they want to look smart so they shout "xy problem". This is part of why this behaviour is so infuriating - it's usually the low quality responders who act this way, but there are so many of them that they drown out the high quality ones. Yes I'm bitter about SO - first they replaced single purpose mailing lists, and then they went low quality, sort of like a big box store first driving out the mom and pop stores and then replace everything with plastic low quality merchandise.


Answering the question first typically takes a nontrivial amount of effort.


> Don’t do Socratic methods when there’s an emergency or the person is stressed about a deadline.

This was a good lesson for me to learn when I was at the receiving end of it. It’s like I’m asking for how to get the production service back up and someone is teaching about postmortem.

Separate out the immediate fix from the longer term solutions. And don’t intervene if you don’t know the answer to the exact question. You will muddle the discussion than being helpful.


Well, it's hard to tell apart, because people are not good at communicating their situation.

In some cases I'm really just grasping in an unfamiliar territory and I would appreciate overall guidance of "you're holding that from the wrong end", big picture view of how things actually work and fit together instead of the twisted ways I may have come up with.

At other times, I'm already quite familiar with an area and I'm trying to fix some rare case where I really need what I say I need, because I know the usual way, but in my case it won't work and having read up on some bug report discussions, I'm certain I will have to make a certain workaround work and it will require something unusual, but possible.

It's just like how a help desk technician will ask me to turn my router off and on again, even though I'm a power user. It is because everyone, especially ignorant people think they know what's wrong, and they are never mistaken (just read /r/talesfromtechsupport).

If you want to get past this, make sure to write in a way that's uncommon from ignorant people. Include what you have tried, what makes your case special, write with good spelling and formatting, use the technical terminology right to show you are experienced etc.


> ... big picture view of how things actually work and fit together instead of the twisted ways I may have come up with.

I can seldom find anyone with this answer at work. It requires that I read up on the tech/product being used, then exploring the repository for the configuration and code, asking six or seven people who have committed recently for their perspectives on why we're not doing what's in the docs (they don't know, they just followed the pattern and have no idea where other parts of a system rely on this particular thing...) Ultimately I discover that the diagrams on the wiki are outdated by several years, so, in text on that page, I note the differences. Then I discover that one of the first people I talked to were indeed The Subject Matter Expert who just can't be bothered to explain (or can't admit they don't know...)


> George: I’m doing X, and I got this error, how do I fix it

The question should be

  "I want to do A. I have tried doing it using X, but it doesn't work. Can you help me find a better solution?"
The key is knowing what you want to achieve - which is A.


Often, explaining what A is and why you want to do it is a ton of work, and my question (and the answer I'm looking for) is often very simple. Competent people don't like having to provide a lengthy justification for a simple question.

In my experience, most people who push back and start saying "You really want Y" are simply not willing to listen to the story about A - especially if it will take more than 1-2 lines to explain it. I've found this to be the case both online and in person.

As a somewhat related example, a decade ago I was building a PC and had been given a huge discount on a pretty powerful Intel CPU. I figured out all the parts (motherboard, etc), and went to a well known forum to post it and solicit feedback.

Now the CPU was overpriced. You could pay 40% less and get another CPU that was almost as good. I knew this, but it was irrelevant as with my discount, I was getting it cheaper than the alternative.

I posted my question, and acknowledged the price discrepancy, and almost all the responses were: Don't get that CPU, get the cheaper one. I made it explicit that I wanted a technical answer and not an economic one. I even said "Well, assume I'm getting it for free."

The problem was that pointing out that I was getting my CPU even cheaper with a discount did not change anyone's response. Some people ignored it altogether. Others simply refused to believe I had a discount, claiming I was a wealthy newbie who was hell bent on paying full price just to get a tiny performance improvement and wasn't willing to admit it.

Eventually some people took me at face value and answered my questions, but I spent a lot more time justifying my choice of CPU than on the actual questions I wanted answered.

Also, asking:

"I'm trying to do X. I'm aware of Z and I agree it's usually the way to go, but I have some restrictions such that Z won't work."

Doesn't work.

"I'm trying to do X. I'm aware of Z but I really want to see if I can do this with X."

Doesn't work.


I've found that sometimes when posting questions on the internet, and you want to avoid some sticky bit of your question, just straight up lying to smooth the backstory can work, as long as you're sure what you're lying about doesn't matter when it comes to the discussion.

So you could have said you were gifted the CPU by a friend so you're stuck with it (even if you don't have it), or a friend can sell it to you for cheap (maybe the same price of your discount), and then go from there.

Obviously you shouldn't do this in-person, but this is good for stack overflow or random internet conversations.


Competent people, nearly by definition, aren't asking questions on Stack Overflow. (We're all incompetent sometimes.)

pcmasterrace fanbois arguing about their tribal alliance to CPUs is a different matter.


> my question (and the answer I'm looking for) is often very simple

If you're asking questions then confidence that the answer - which you do not know - is simple betrays the reality that you've become falsely confident of your understanding despite the fact that you don't know what you're doing or else you wouldn't have a question at all.

Asking questions is a skill, whether you are asking the questions of a machine or of people. An insistence that everybody else is doing it wrong because you get unhelpful answers is a mistake nobody else can fix for you.


> If you're asking questions then confidence that the answer - which you do not know - is simple betrays the reality that you've become falsely confident of your understanding despite the fact that you don't know what you're doing or else you wouldn't have a question at all.

That's a lot of assumptions without even knowing the question, and is symptomatic of troublesome responders.

A lot of times the question I ask is of the form "Yes/No".

As in "Is it possible to do it using X?" If the answer is "Yes" I may have follow ons, but it's amazing how often I cannot get an answer to this question. Even a "Yes, but it's a bad idea" will suffice, but I'm more likely to get several "You probably want to use Y". That's simply not answering my question at all.

"Can doing it via X handle a size of N?"

Sure, maybe doing it Y is usually better than doing it with X, but telling me that is not answering my question, and the majority of times Y will not solve my problem. I also may already know that Y scales better, but my point is that even stating that up front in the question will not get me the answer I am seeking.

Sometimes I'm just curious. I know Y is better, but I want to know what the limits of X are. It's an appropriate question.

Depending on how well I know the person, I may give context, which is part of the skill in asking good questions. However, in an impersonal online setting, this backfires more often than not. As the example showed above, it usually leads to a 5x more effort spent in explaining and justifying the context than in discussions that are on the route to my getting an answer.

(As an aside, I do come from an academic background, where it is the norm to explore, and be curious. A lot of the questions they ask and discussions they have are not for anything practical. Which then becomes annoying when they ask a question online and the other party has all kinds of assumptions on why I may want to do X.)

> Asking questions is a skill

Agreed, and so is answering questions. Jumping to conclusions on what the questioner is trying to do means the person has poor answering skills.


I have tried this in the past and then the answer becomes "why would you want to do A?".


If they're trying to gather context, I understand asking a question similar to that. Though that exact question seems a bit pointed.


Possibly you don't, but you must want to solve _some_ prime problem.


To achieve Y, of course.


Well, there are multiple ways to achieve Y. I prefer way B, because it faster/cheaper/simpler/more durable/etc. than A.


Couldn't disagree more. The first thing that should always be done is answer the question as asked. Do what ever you want after that but anyone who doesn't should have their post removed.

The issue is this: it is completely irrelevant why the person asking wants to do X or A. Stackoverflow and others are public websites and anyone who ever will want to do X/A will probably only find that page as an answer. It is beyond arrogant to assume anyone who could ever ask the question is just missing your guidance on what they really want to do.

To be concrete, I find myself in these situations due to company restrictions that I simply cannot lift. So I need to do something I know very well shouldn't be done or fail (and someone else will do that or worse anyway). So I search all over the web and find a Stackoverflow page... that tells me why I shouldn't be doing it. And since it's been "answered" no one else will ever bother, and if I ask anywhere I get linked to that page.


lost way too much time the other day trying to figure out how to do encryption for a legacy PHP application. apparently it's incomprehensible to stack overflow writers that there are reasons i might want to know this beyond "implementing an unsafe login system".

that said, this is talking about coworkers so maybe it is more appropriate when you can go back and forward on it


I really like when it continues thus:

    George: I am not trying to do Y. I'm trying to do V, and the path to V requires W which necessitates X.

    Jasminda: *crickets*
In other words, Jasminda doesn't have an answer to the problem. I can only guess at Jasminda's motivations.


  Are you actually trying to [hammer a nail]?
  If so, you shouldn’t use a [screwdriver], you
  should use a [hammer] instead.
EDIT code formatting now wraps on mobile!


Why not just file cross on the nail and make thread? In this case, screwdriver will work, so no need to buy hammer for one nail.


What if you don't have a file?


Which one could easily address when formulating an question by making clear why this approach is taken (and who knows even if you know what you are doing, there might be really a better way to do it somebody discovered).


SO has helped me to ask questions well. It doesn't always prevent the patronizing, snippy slaps, but helps a lot.

I've asked almost twice as many questions on SO as I've answered. It's a valuable resource to me, and I appreciate it.

I do try to give back, and usually try to paraphrase questions that I'm not sure about, like "If you are trying to get X working, then here's how I did it." I've learned to try to remove as many "you"s as possible, and keep it focused on my experience and point of view, qualifying it as such. It does, sometimes lead to people accusing me of "Making it all about you," but it also removes elements of judgment.


The X/Y problem is a real problem, though. http://xyproblem.info/


I always thought of it as telling everyone you are stuck in a hole with no ladder, and everybody tells you that you need to use a ladder.


Yes on Stack Overflow, how can do do this in javaScript? Oh you need to download this library.


That's a misconception. The respondent absolutely respects that possibility. It's just virtually never the case. If anything, your type of criticism does not respect the low effort involved in almost every question asked.

There's a bit of Dunning-Kruger to this too: the stupidest of questions will come from people who are absolutely convinced that in their case The question is warranted. It's just practically never.

When one in a thousand misguided-sounding questions is legitimate, the only sensible thing to do is to assume all questions that sound misguided are. Then it's up to the person asking to be clear in why it's not. (Not to mention that clarifying that also tends to reveal other meaningful constraints on the answer.)


The case of questions on public boards is different, because those also serve as reference for future people with the same question. Places like SO in particular exist not just to help the person asking, but the countless thousands who will find the question through Google search.

In those cases, if you do the "looking at your context, did you mean Y instead of X" substitution, your answer will be still attached to a "how to X" query, and will frustrate a lot of people who may have a legitimate reason for doing X.


IMO one of the best things about Stackoverflow is that it helps all the other thousands of people who thought they needed to do X but really needed to do Y. Having the answer for "how to do Y" under the correct label would be useless to these people because they'd never know they needed to do Y.

If you really do need to do X, then explain why clearly in your question and you'll likely get an answer for it. And of course SO allows multiple answers, so we can have both the technically correct and the not technically correct but still useful answers.


> In those cases, if you do the "looking at your context, did you mean Y instead of X" substitution, your answer will be still attached to a "how to X" query, and will frustrate a lot of people who may have a legitimate reason for doing X.

And, conversely, it will help a lot of people who may not realise that their desire to do X instead of Y is flawed.


Which is probably the larger population as this kind of substition happens most often when a common solution to a common problem is not used.

So, when you notice this happens often and it annoys you, ask better questions. Explain what you want to achieve, what you considered and why you discarded certain solutions whilst you know they are common. If you get a substition beyond all of that chances are the person answering knows what's up. Embrace it, see why it is proposed and simply take time to explain why you couldn't use that (or can). It takes a few minutes but the person answering is spending more than you are, for free. Also you help every next viewer of your question.


> The respondent absolutely respects that possibility. It's just virtually never the case.

It's a lot more common that the respondent is trying to get points on SO and wants to appear smarter than he/she is.

> If anything, your type of criticism does not respect the low effort involved in almost every question asked.

This reminds me of my years in university. There was always a professor with this attitude, and it was always the case that the professor was misunderstanding and not helping the student.

Students do ask lots of questions where a professor rightfully says "You don't want to do X, you want Y." But the few professors that insist on it are always problematic. Thank God for TAs and other professors one can turn to.


A good thing to do if you think a question is "low effort" is just ignore it instead of assuming your own superiority.


Ironically, that's not what Dunning-Kruger means.


Example question from the article:

> “I’m seeing errors on the site, what’s happening?”

What was the error? What were you doing when the error occurred? How can I reproduce the error?

These sorts of one-sentence questions with no context are the worst, because when you come across them and decide to help out they force you to fully engage with someone who pretty much just wants to be given a fish rather than be taught how to catch them. I've even participated in communities where the expectation seems to be "give me the code I need to solve my problem. now.", and I'll be honest after awhile of experiencing this I got burnt out and now just reach for RTFM responses and get back to what I was doing when I encounter (what I perceive to be) low-effort questions.

I guess my point is that, if we want to tell people who give their time for free how to properly answer questions such that the feelings of the asker are respected, we need to have some discussion of what to do when that's evidently not the case. When I read this article, I find myself wondering why I should have these sorts of expectations unconditionally placed on me by someone who is asking me to make time for them. I feel like a discussion about respectful knowledge exchange aught to encompass both parts, lest either side come off as entitled to a free lunch.


> if we want to tell people who give their time for free how to properly answer questions

I see this article more as a resource for curious people who want to improve their interpersonal skills and provide more helpful feedback. (I especially feel this way based on the author's blog, and their activity on Twitter! They create a lot of kind, supportive, educational material.) I _don't_ see this as a prescriptive piece trying to impose constraints on other people's behavior. If the specific advice doesn't resonate with you, then that's okay!


I just love reading her stuff. She must be a joy to work with.

Our industry needs as much humanity and empathy as possible. She sets a high bar.

It goes without saying that she's obviously absolutely brilliant, but she's also energetic, curious and polite.


Documenting FAQs is so important. I found the private StackOverflow tool to be really useful for the documentation of all sorts of questions. From debugging (“What do I do when I get paged with a critical error?”) to process (“How do I create a good pull request?”) to tooling (“What’s the easiest way to run unit tests in Visual Studio Code?”). It’s a big force multiplier if you’re in a scaling organization.


Private StackOverflow? Can I have a link, this sounds interesting



> To start out with – sometimes the people asking you questions don’t respect your time, and that sucks. I’m assuming here throughout that that’s not what happening.

I'm curious, how do others handle interactions with people who don't respect your time? I'm talking about coworkers who do not improve in their question asking ability after you've gone through the processes the article describes multiple times in good faith. People who Slack or email several people in parallel, waiting for the first reply to come back.

I've found that being honest with problematic coworkers - i.e. asking them face to face to invest more effort - is a risky thing to do. Even as an authority figure on the team, it's easy to develop a reputation for being an asshole, even if you're as polite as possible. Instead, I save the feedback for my manager with concrete examples, and have them deliver the bad news.

A lot of managers need to receive overwhelming feedback that the offender is doing this, so you may need to prompt them to ask other members of the team to solicit feedback. Some people are too nice to bring it up. Even then, it's notoriously hard to correct behavior in these individuals and even harder to get them off your team.

So when everything else has failed, I ignore messages from them for maybe 2-3 days, and then reply back with "sorry, did you still need help?" and continue stonewalling them until they give up. It's most effective when you can get everyone on the team to participate so that the person is forced to pull their own weight.


I would say, respond that you don't know the answer from the top of your head (assuming that's the case), and politely refer them to read the documentation (or experiment).

If the documentation doesn't exist, consider creating it.

If they ask same questions again and again, suggest them to take better notes.

I think complaining about it is counter-productive. Force them to do the legwork, explain that it is primarily their task to do research on a topic.


I just trust that people aren't dumb, that they did all they could and had a solid plan up until they got stuck which prompted the question. Then I empathize with their situation and try to pinpoint what piece of the puzzle they are missing. Usually it is just a tiny bit of information that gets them going. Others prefer to go through the whole "rtfs rtfm make a test case and how to be a hacker faq" stuff.


There’s something else: if someone (or more people) keep asking you questions that seem maybe easy for you, then you need to make a better effort onboarding people and documenting clearly what is going on.


This is a very helpful reminder ;-) It’s not about you or about showing how smart you (think you) are, but about being helpful and helping others to grow.


> I’ve worked on actually pretending not to be surprised even when I actually am a bit surprised the person doesn’t know the thing and it’s awesome.

I try to do this too but sometimes I forget. However, I find that acting surprised is ok if you then show your excitement to tell them about the thing e.g. xkcd.com/1053

The key is to not express “You don’t know about this? What is wrong with you?” but rather “You don’t know about this? You’re going to love it!”


I think this nyc workshop place (recurse center?) had a rule about not doing that.



Yeah it's ok to feign surprise if you use it as a "Wow I feel lucky to show this to you." Some people genuinely mean it that way, and if you can communicate that's your intent, I think that's fine. It's exciting when someone hasn't heard about something really cool. And it's nice to feel like you're being brought into the club.


my coworkers purposely answer questions bad so that the knowledge stays with them and increases their job stability. it's sickening.




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

Search: