What is meta? ×
Meta Stack Exchange is where users like you discuss bugs, features, and support issues that affect the software powering all 133 Stack Exchange communities.

I've been puzzled by this question at some instances: Should I answer what the asker asks, or should I try to solve the problem she really seems to have?

Most often, the questions are well formulated, and to the point. But sometimes answering the question as-is wouldn't lead to the right/best method to do whatever is tried to be done, or doesn't even solve her problems to begin with.

Case in point: My question about superscripting with CSS, I got the correct answer to my question, but I never used it. What I really wanted, and ended up using, was described in the second most popular answer.

Whenever I encounter these kinds of questions, I tend to answer both what the question indicates, and try to guess what the asker really wanted to achieve. Many times, however, it seems superfluous and more like guesswork. This is sometimes perceived as a negative remark even, leading to downvotes and occasional offensive tags.

So, which one do you do, and which ones would you prefer yourself?

Edit: Apart from the "trying to help as much as possible"-aspect, my question partly originates from the encyclopedic nature of Stack Overflow. Is there some kind of negative aspect of helping the asker, instead of answering the question? What if someone found a question via Google, but finds out the answers don't answer the question at all? Am I just being anal retentive?

share|improve this question

migrated from stackoverflow.com Aug 28 '09 at 17:46

This question came from our site for professional and enthusiast programmers.

    
You can always edit the question to ask the question you want to answer. Then everyone wins... er, loses... um, never mind. –  Adam Liss Mar 8 '09 at 20:58

10 Answers 10

I addressed this as part of a recent blog article about answering technical questions helpfully:

Answer the question and highlight side-issues

Other developers don't always do things the way we'd like them to. Questions often reflect this, basically asking how to do something which (in our view) shouldn't be attempted in the first place. It may completely infeasible, or it may just be a really bad idea.

Occasionally, the idea is so awful - and possibly harmful to users, especially when it comes to security questions - that the best response is just to explain (carefully and politely) why this is a really bad thing to do. Usually, however, it's better to answer the question and give details of better alternatives at the same time. Personally I prefer to give these alternatives before the answer to the question asked, as I suspect it makes it more likely that the questioner will read the advice and take it on board. Don't forget that the more persuasive you can be, the more likely it is they'll abandon their original plans. In other words, "Don't do this!" isn't nearly as useful as "Don't do this because..."

EDIT: One thing to mention is that if you (as the questioner) want to avoid discussion but you know you're posting something which sounds like it's the wrong thing to do, acknowledge that. Give a bit of explanation if you possibly can. That avoids wasting other people's time explaining something you've already thought about, and makes it more likely you'll get the answer you want.

share|improve this answer
    
I tend to answer this sort of question with another question, in an attempt to understand the underlying motivation. It encourages brainstorming to clarify the problem and arrive at a more reasonable solution. Exception: far more effective to answer mgmt with "Why would anyone want to do THAT!?" –  Adam Liss Mar 8 '09 at 20:55
    
This approach is the most aggravating. When I ask questions, I ask them in such a way to get the answer I want. If I want discussion, I ask for it. If almost always want an answer (even if the answer is "you can't" or "I don't know") to the question I asked, not the question you want to answer. –  Ben Collins Mar 9 '09 at 2:45
1  
So do you enjoy wasting time taking an approach which can't possibly work, or which will leave a gaping wide security whole in your product? IMO it's irresponsible not to at least point out the problems. Note that I did say in most cases I'd also include the answer, so you wouldn't miss out on that. –  Jon Skeet Mar 9 '09 at 6:21
    
"It can't be done that way" is a valid answer too. If I get that answer, most of the time I'll prompt for further explanation - but it's up to me to do that. (contd) –  Ben Collins Mar 9 '09 at 11:21
    
Sometimes I have reasons for asking the questions I ask, and it's usually a bigger waste of time to be forced to explain it all to someone who presumes they know better than me what my approach should be (or presumes that I even have a choice). –  Ben Collins Mar 9 '09 at 11:23
2  
You don't have to explain it all - you have to explain enough to give evidence that you know what you're going to be told. But hey, you can always ask for a refund if an answer doesn't help you... –  Jon Skeet Mar 9 '09 at 11:33
    
Good answer. I often catch myself answering a question too directly, then hours later realizing "Oh, but you shouldn't do that." Adding a caution as a side note is a good compromise. After reading the warning the developer can decide for himself. –  Bill the Lizard Mar 9 '09 at 18:29
    
Jon, I posted, I wouldn't ever do this but... and I got dozens of people saying, "don't do that" instead of answering the question. I disagree with Ben, people ask how to do A not even realizing that there is B that's faster, easier and free. Tell you how to do A would keep you in the dark about B. –  Mark Brady Mar 11 '09 at 20:46
    
But just like Bill and Jon said, Answer the f'ing question AND THEN feel free to tell us how much smarter you are then the rest of us because you'd rewrite the whole thing in LISP and make it run on a Sinclair for maximum portability. –  Mark Brady Mar 11 '09 at 20:48
1  
Nah, answer it the other way round - force the questioner to read the better way first. I know it sounds harsh, but I think it's more effective in most cases. Smart people will read the whole answer - if the first part isn't useful, they'll discard it, no harm done. Less smart people would take the –  Jon Skeet Mar 11 '09 at 20:54
    
code that works but is bad (if you put that first) and just ignore the rest of the answer. Oh, and I agree that if you've already explained the position then it's bad form for answers to just reinforce that. –  Jon Skeet Mar 11 '09 at 20:54

I try to answer the question, and give extra advice. (For example don't do that...).

On of the most important lessons learned in IT is that the customer (in this case the asker of the question), does not always knows what he wants. That's where the developer kicks in. A good developer reads between the lines and tries to find the real problem behind the question.

share|improve this answer
1  
I've learned that the developer also often doesn't know what's possible and shoehorns his solution into what he know can be done. e.g. if the database designer doesn't know about bitmap indexes in Oracle, he'll never think to use them. So he may ask how create dozens of b-trees. –  Mark Brady Mar 11 '09 at 21:09

If I ask the question "How do I get to Edinburgh" I would like to get an answer like "Take the train from Kings Cross" as opposed to "Do you really need to go there? Couldn't you telecomute?"

But just to prove that consistency is the hobgoblin of petty minds, see my anser in this thread :-)

share|improve this answer
1  
But if you asked the question "Which station does the train from Edinburgh go from? I plan to go there on the Nth Monthember", then an answer like "get the bus instead; no trains are running on that date" is surely a good one? –  oxbow_lakes Mar 8 '09 at 20:50
    
If I ask a question which indicates a fundamental flaw in my approach, I'd rather get an answer which addresses the flaw than an answer which takes me further in the wrong direction. Let's take your Edinburgh further (in the course of several edits). Suppose your question is: (cont) –  Jon Skeet Mar 8 '09 at 20:57
    
"I just emailed my brother in Edinburgh to say I had a great time last time I saw him. I mentioned that I've got a photo of us together. I've still got it on my digital camera, so I guess I've got to go and give him the camera. What's the best way to get to Edinburgh?" –  Jon Skeet Mar 8 '09 at 20:59
1  
The most helpful answer here is not to give directions to Edinburgh - it's to suggest copying the photo from the camera onto the computer, possibly reducing its size, and then either emailing it directly or putting it up on Flickr/Picasa/whatever. –  Jon Skeet Mar 8 '09 at 20:59
1  
And now people are re-interpreting the answers! Surely giving a literal answeerr to a literal question is the best first course? –  nb69307 Mar 8 '09 at 21:17
    
You want to go to Edinburgh? No, you don't want to hardcode the destination like that, it's not scalable. You should be using a dependency injection framework to generate your destinations. –  j_random_hacker Mar 8 '09 at 21:28
    
Or perhaps the boost::scottish_capital <by_train> template? –  nb69307 Mar 8 '09 at 21:33

First away, answer the actual question. Then as an addendum, add the howevers and recommendations. I find it extremely annoying when people do as most people here seem to advocate and tell me what they perceive it is that I really want. Just answer the question at hand.

share|improve this answer

I find it extremely irritating when I ask a question and get all kinds of unresponsive responses. This is what makes EFNet a chat hell, by the way. I don't mind extra advice (most welcome!) or tips, but for crying out loud - answer my freaking question first!

Sometimes the context is difficult to explain, or there may be externalities that force things to be a certain way. I go to technical communities to get direct answers to technical questions; it's not usually very time effective for me to have to re-explain the entire context just to get the original question answered.

Like I said - I always welcome advice and tips, but I appreciate such input far more if it comes after the answer to my question (BTW, the answer can just be "I don't know", then followed by "but I do it this way...").

share|improve this answer
1  
You should at least explain that you're aware of the reasons why you wouldn't normally want to do that. Explaining just that much saves everyone's time. –  Jon Skeet Mar 9 '09 at 7:37
    
No - explaining doesn't always save time, especially mine. Like I said in th other comment - if I want the answer to be an explanation of why I shouldn't do something, then the question will be "Why shouldn't I do it this way?" –  Ben Collins Mar 9 '09 at 11:26
2  
That assumes you already know you shouldn't do it that way. A lot of the time when this kind of situation arises, it's because the questioner doesn't know. Maybe that doesn't happen to you but it happens a lot of the time for other people. If you know your question is "odd" you should explain. –  Jon Skeet Mar 9 '09 at 11:34
    
This is my whole point - you want to assume lots of things. That's what's irritating (in face-to-face conversation, this would be completely anti-social). Don't make assumptions. –  Ben Collins Mar 10 '09 at 2:50

Depends what you're trying to achieve:

  • If you can read the poster's mind and answer the "right" question, you've solved the problem that s/he wanted solved in the least amount of time. Clairvoyance is a major plus in any technical support job.

  • If you answer what was asked, and that turns out not to be what the poster needed, there's a chance you're teaching him/her to ask questions more effectively. And arguably, that's more important than solving the original problem.

So answering the "right" question may the better short-term solution, while answering the question as asked may actually be the better long-term solution. Counter-intuitive, isn't it!?

share|improve this answer

I'd always go first for the answer to what you think the person is trying to achieve.

Then go back, edit, and answer the literal question too. If you do both at once, someone else (initials J.S.) will get in before you.

edit Gah! JS got here first anyway!

share|improve this answer
    
Hard to do. Some people are hopelessly confused and demand an answer that's unreasonable/insecure/simply crazy. –  S.Lott Mar 8 '09 at 20:45
    
That damned Johann Strauss gets everywhere. Elite, 2001... always just moments before I make my mark ;) –  Jon Skeet Mar 8 '09 at 20:55
    
Sometimes it helps to address the literal question, but not always. It's more important to discern the real goals and address them first. –  S.Lott Mar 9 '09 at 0:47

Use your common sense. Acknowledge especially that it's possible to have a common sense about software engineering, people seem to resist this.

If a question is completely usual, answer it straight up with no comment.

If a question seems a bit off, feel free to answer it but also ask those questions and perhaps proactively provide helpful advice based on your understanding of the situation (which may be mistaken).

If a question comes out of left field and reveals a complete and utter failure of understanding (e.g. "Glass Bottle or Old Shoe?"), then go ahead and avoid answering the direct question at all. Instead give advice, ask further questions, or answer the question the asker really wanted to ask (if you can determine such). This is important, it's part of the reason why people ask questions in the first place.

share|improve this answer

I firmly believe that good knowledge HAS to be pulled rather than pushed.

The key to this is to try and train people to ask the right questions.

If someone asks a highly detailed specific question on one issue, fulfil the the spec and deliver the answer, no frills.

Given the general overview of why we're doing what we're doing we're in a position to establish the best course(s) of action rather than handing out mindless instructions on how to complete one task.

share|improve this answer

I try to answer questions assuming that the asker is intelligent, but perhaps lacks experience, and really just wants the right way to do something.

That means I don't always answer the literal question. But, I assume there will always be somebody who does. Even if the literal answer is accepted and/or gets more upvotes, I still feel my answer is (usually) helpful. I know I appreciate other answerers who do the same thing, as it gives me more food for thought. There are a lot of smart folks here.

share|improve this answer
1  
I prefer for answerers to assume the questioner really wants what he asked for, not what answerers would like to think he wants. –  Ben Collins Mar 9 '09 at 2:43
    
A diversity of approaches to answering makes the site more interesting. And don't worry, someone will always answer your literal question. :) –  Sarah Mei Mar 9 '09 at 18:31

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .