It seems like many questions by new users are downvoted immediately. Sometimes there is a comment to the tune of "lacks research", "we're not here to do your homework", or "show us some effort".

Now I wonder, what does it matter how much work someone has done before posting? If someone can ask a good question in 5 seconds, more power to them.

To illustrate this point, look at how you could "improve" a question to include proof of effort. You could put in 5 failed code snippets and their in- and output. This would make for very long questions with a high noise ratio.

Another suggestion is to add "research". By "research", I suppose most programmers mean "Google". So this is basically a suggestion to add a list of fruitless Google queries. That doesn't sound interesting either.

How can "proof of effort" turn a bad question into a good one?

share|improve this question
That's what I've been thinking -- often a good general question is turned into personal debugging service when the OP's attempt is added. –  Juhana May 4 '13 at 14:35
respective pro-forma-comments attempt to explain this as follows: "Sharing your research helps everyone. Tell us what you've tried and why it didn’t meet your needs. This demonstrates that you’ve taken the time to try to help yourself, it saves us from reiterating obvious answers, and most of all it helps you get a more specific and relevant answer. Also see How to Ask" –  gnat May 4 '13 at 14:42
@gnat that's the party line but I think it's wrong, and the OP is right. Maybe I can solve my own problem in 20 minutes. And so can the next guy. And the next girl. Or I could give up, post to SO, have someone answer in a minute, and save the next guy and the next girl those 20 minutes each, since they did the same Google search. Which is the actual point of SO. –  djechlin May 4 '13 at 14:46
@djechlin we discuss How can "proof of effort" turn a bad question into a good one?, not how to best help the poster. I referred canned comment strictly from this perspective –  gnat May 4 '13 at 14:51
@djechlin and what if everyone does it like that? What happens when everyone just gives up? Who will give the answers then when no one is willing to do any research on their own? Stack Overflow is for professional and enthusiast programmers. If you give up, Stack Overflow is not for you. Doing research is an essential skill for professional developers. –  Gordon May 4 '13 at 15:32
@Gordon I covered this in my answer below. Effort needs to go into ensuring you have a useful question, but once this is accomplished and conveyed it's okay to post on SO even though you aren't totally out of ideas for what to do. –  djechlin May 4 '13 at 15:39
I agree with you. I don't see that adding invalid attempts to this question would in any way improve it for example despite the comment requesting that they should do that. –  Martin Smith May 4 '13 at 18:24
@MartinSmith but saying: "I tried to adapt the code in…;, even without showing the failed code, shows that the OP at least did some research and that the question is not a dupe of that. Including what you have tried shows you are not just some lazy OP coming here to get teh codez. –  Gordon May 5 '13 at 6:59
@Gordon - So if the expectation is that every question includes details of "what have you tried" so we can make some value judgement about the laziness (or not) of the questioner why not just make this a separate mandatory field? –  Martin Smith May 5 '13 at 12:23
@MartinSmith because we already have a perfectly good and easy way to enter that information along with your question. Why complicate that? –  Gordon May 5 '13 at 12:40
@Gordon - It would encourage people to enter it if that is the de facto standard and in the cases where it is in fact noise it would be more easily ignored. –  Martin Smith May 5 '13 at 12:44
@djechlin Stack Overflow is for professional and enthusiast programmers (and I've written about what that might mean in this answer). Someone who gives up without spending 20 minutes on problem is hardly professional, and doesn't seem at all an enthusiast. –  Joshua Taylor Nov 27 '13 at 18:22
@JoshuaTaylor I often post a question when working on it for less than 20 minutes, get upvotes, often continue researching (not always) and self-answer. I a professional programmer. –  djechlin Nov 27 '13 at 19:04
@djechlin The tooltip on the upvote button says "This question shows research effort; it is useful and clear" I won't say that such a question asked after less than 20 minutes might not be useful and clear, but it sounds like it lacks it research effort. –  Joshua Taylor Nov 27 '13 at 19:24
@JoshuaTaylor in my answer I claim, "The point of research effort isn't to say "I deserve an answer", it's to say "this question deserves to be here." e.g. to make sure the question can't be found on a simple Google search, just by thinking about it a little bit or trying obvious things, etc. That being said this has very little to do with time spent. As a professional programmer I can often tell in < 20 minutes that a question is unasked even in a general form, and will require significant research to solve. In those cases I post and often continue working on it. –  djechlin Nov 27 '13 at 19:28
add comment

10 Answers

It doesn't necessarily make the question better, though it can do so; in general it provides three things:

  1. A solid indication of what the poster is attempting. This, hopefully, fills in the gaping holes in their explanation of their problem. You can look at the code in addition to the explanation to try to determine what's happening. In the same vein, if the OP has an error message that they're trying to get help with the code that generated the message is invaluable.

  2. In more complicated cases it narrows down the options. If the OP is attempting to solve a problem that has two possible avenues to approach it; they then demonstrate they've tried one of those approaches then people answering can ignore that one and only have to concentrate on the other. Equally, by demonstrating the approach, potential answerers may be able to find an error with the manner in which the OP attempted to solve their problem, thus making the solution a lot easier.

  3. It proves that the OP is actually worth helping. I know that some may disagree here but "gimme teh codez" is not the best way to introduce yourself to a community. A demonstration of effort proves that they're willing to take the time to help themselves first.

In short, it's polite to do so. It shows you're actually engaged and it helps others to help you quicker and better, which is the point of the entire site.

Lastly, if you show your code then you may get unexpected help. Someone may notice that you're using a deprecated function or that there's a more efficient method of doing something. It's a side effect but can help the OP to improve, should they wish to do so, and signposts to people coming to the question later that there may be a better method of doing something.

share|improve this answer
So a bad question asked by "someone worth helping" is actually a good question? –  Andomar May 4 '13 at 14:44
But I thought the whole philosophy behind SO was the OP doesn't really matter. It's for future visitors. Why clutter up a perfectly concise question with some irrelevant guesses as to what to do? –  djechlin May 4 '13 at 14:44
The assumption that they're irrelevant is a pretty big one @djechlin. –  ben is uǝq backwards May 4 '13 at 14:46
No @Andomar, as I say "it doesn't necessarily make the question better". It can make an incomprehensible question comprehensible and thus enable someone else to edit it into shape. IMHO it's as much about the social graces as the gain to potential answerers. It's simply not polite to dump your crap question onto SO without at least a cursory attempt to solve it yourself. –  ben is uǝq backwards May 4 '13 at 14:48
DV because I don't think it's necessary to moralize the OP. We're trying to create a longterm repo and whether the OP "deserves" help or "has shown some grace" above acting professional is frankly irrelevant to that goal. "Show me teh code" is a bad question for plenty of reasons besides whether the OP is deserving. But I am seriously concerned about the use case where a problem takes 20 minutes to solve on one's own but someone on SO can answer in 2 - it's okay to post on SO before exhausting one's options or no one would ever post anything here. –  djechlin May 4 '13 at 15:42
@djechlin Concise does not necessarily mean good. "How to turn 2008-12-31 into a timestamp with PHP" is a perfectly clear and concise question. But it's also easy to google and there is a bazillion duplicates of that on Stack Overflow. So if an OP needs to ask that question, he better makes clear ("clutter") why he has to ask this question yet another time. And if the reason is just because he was too lazy to do research, then he deserves any downvotes we can spare, because he is wasting your time and my time and the time of all the people who are waiting for answers to real questions. –  Gordon May 4 '13 at 15:43
I don't completely disagree with you @djechlin, but I honestly think that if someone isn't willing to spend 20 minutes solving their own problem then they shouldn't be in a field that requires any problem solving. –  ben is uǝq backwards May 4 '13 at 15:45
@Gordon I agree and don't see how that's relevant to my comment. –  djechlin May 4 '13 at 15:45
@benisuǝqbackwards YMMV. 20 minutes is probably achievable for a problem in figuring out how to use a new API from a third party. Debugging your own code that's been working a while? No, you might need to spend a few hours pouring through your logic and logs before you have isolated weird enough behavior it makes sense to turn to SO for help. In either case the programmer should be judicious and savvy enough to notice when a problem is general and publish how to deal with it - asking a question on SO is a form of publication. –  djechlin May 4 '13 at 15:48
Also I think you made a very good point that more effort shown gives more avenues by which to help you. "Here is a general question, here are the 20 things I've tried" can lead to "you fat-fingered the 7th one, try it this way" and a solution. –  djechlin May 4 '13 at 15:49
@djechlin you asked why clutter concise questions. That's what my comment was aimed at. To phrase it with your own answer: sometimes concise needs the clutter to "prove a question deserves to be here". –  Gordon May 4 '13 at 15:55
@Gordon I think you're right. A lot of "clutter" I've seen on SO questions has been precisely what's told me I found the right question, usually when I think "hey I tried that too." This is especially important if the question is unanswered, because it tells me SO doesn't have an answer yet. –  djechlin May 4 '13 at 15:58
@djechlin - Looking at the comment backwards ben replied to, I'm not sure I see where he was trying to "moralize the op". I sort of feel like you and ben are in agreement, but perhaps you're just misunderstanding each other's point? Or, maybe I'm just missing the point and am confused. Can you clarify which of the three points you're disagreeing with? Is it point #3? Thanks! –  jmort253 May 4 '13 at 22:16
@jmort253 third point but I feel dmckee makes this point more clearly. Beyond that I'm kind of going to consider this topic exhausted :P I'd flip or at least remove my downvote if there were an edit (and yes, this does help prove me wrong on another meta post I have floating around somewhere). –  djechlin May 5 '13 at 23:32
add comment

The goal of SO is to create a long-term repository of useful questions and answers. Research effort is to make sure the questioners are contributing to this as well as the answerers. A stereotype of SO is it's a bunch of answerers doing a bunch of free labor, but the great trick we've pulled on everyone is, the questioners are doing free labor as well. And we have upvotes and downvotes to put pressure on them to do so.

The point of research effort isn't to say "I deserve an answer", it's to say "this question deserves to be here." I think the heuristic by which to measure this is, "will this question's existence on SO make it easier for people to solve this problem faster?" So in many cases, googling for other answers is a big part of research effort. I'm about 9k currently and usually if I stumble with a new problem in a Java API or Node or something, and it's not apparent what to do, and I can't find it within five minutes of poking around or Googling, my next thought is, "Wait a minute, other people are going through these same stupid attempts, this should just be on SO somewhere." If I were less experienced those 5 minutes might take 30 (and I'm not claiming my judgment is perfect).

So my research effort very often consists of, "I tried the obvious APIs, looked for similar questions on SO and read the official doc and it didn't work." Sure, I could have fired up a debugger, stepped into library code, found a hidden feature, etc., and solved my own problem within an hour, but why would I do that when I have this lovely Q&A resource right here with people who have done this already? And heck, if no one can solve it, then when I do, I'll post my own answer and do both parts of the Q/A team.

As an answerer, I like to know this work has been done already. Don't make my first step to find your question on SO already by a highly similar title - that's a downvote. Don't make me link you the Javadoc for a standard library method and quote it and plug it in - that's a downvote. The downvote doesn't say "you don't deserve an answer," it says "you didn't do your part of creating a useful Q/A pair."

Conversely, if you can't really understand a stack trace for a NullPointerException in your Java code, then yet another "read my stack trace and tell me what it says" question isn't going to be useful, and we're going to tear you apart with comments saying, "Did you google NullPointerException? Did you read your stack trace? Did you look at the line the problem is on?" Or, if the answer requires a very dense long explanation (e.g. explaining the difference between pointers and arrays), then there isn't really any reason to assume the SO answer is going to be more useful than resources (like textbooks) already out there. As I've claimed, for me, 5 minutes of research is enough for a good SO question to be more useful to the next programmer, but on occasion really I need to go spend some time self-learning a new language (and I've recently had downvoted Node questions for this) before expecting SO to be particularly useful.

share|improve this answer
If your goal is "a long-term repository of useful questions and answers", wouldn't you want to make questions as generally applicable as possible? Proof of effort does the exact opposite-- it turns a general question into a debug-log of one specific person's problem. –  Andomar May 4 '13 at 15:22
@Andomar wait what? I said it's better to think of proof of effort as something that ensures it's a useful (and therefore generally applicable) question. That was kind of my whole point. –  djechlin May 4 '13 at 15:51
@Andomar although on reflecting on ben's answer I think that's incorrect. A good question is 1. general question, 2. specific debug log as hooks for good answers, and is ideally written clearly enough future visitor can gloss over (2) and jump to the answers. But also that debug log does convey to the future visitor "hey I tried the same things, this is really relevant to me." Which is important. –  djechlin May 4 '13 at 15:54
The problem with my answer thus far is it assumes high domain expertise on the questioner. The "sloppier" forms of research effort are a useful way to bridge the gap... I may edit this in at some point. –  djechlin May 4 '13 at 16:02
Of course putting effort into a question typically makes it better. The question is, does adding proof of that effort make the question better. –  Andomar May 4 '13 at 16:08
@Andomar I'm inclined to think 1) yes for reason's in ben's answers, e.g. it gives people more ways to help you and contains lots of juicy information, and 2) the specific question not necessarily but it makes the community better by making sure questioners are stepping up. But I think in practice they converge. It's pretty often hard to ask a useful, answerable question while not including any work you've done, although I've seen exceptions. –  djechlin May 4 '13 at 16:12
@Andomar: It's definitely hard to write a question that perfectly splits the difference between "How do I make my table view shiny and scroll backwards?" --> too broad, and "I tried to make my table view scroll backwards with this code, and I got this stack trace." --> too localized. It's a really tough balance to achieve in order to make an excellent question. We seem to have come to the group conclusion, though, that more often than not, when an asker spends some time looking for her own solution, the question elicits better answers and is more useful to future readers. I don't think this –  Josh Caswell May 4 '13 at 18:17
@Andomar (cont'd) has to mean a code sample, though. It just means the kind of research djechlin is talking about (look through docs, hunt up a couple of similar SO questions, maybe fire up the debugger for 5 minutes). That may be enough to give one a clearer view of the nature of the problem such that the explanation in the question can be both more precise and accurate, and much more helpful for answerers trying to understand where you're at in terms of your knowledge of the problem space. –  Josh Caswell May 4 '13 at 18:20
add comment

Among the many banes of any subdivision of the internet that get a reputation as a place to go for help are

  1. Repetition of the same questions over and over again
  2. People who are happy to suck up the sites resources of helpfulness without limit because they can't be arsed to think for themselves

The requirement to show some work isn't there is make a bad question a good one, it's there to keep you from asking a bad question at all by helping you to find the answer without asking it.

Further it is helpful with respect to #2 exactly because the laziest cases find it frustrating to have to work---even the weest little bit---for what they get.

So, it's all upside as far as I can see.

share|improve this answer
Yes, this is basically why "what have you tried" exists. It's not all upside, though; "what have you tried" tends to make questions more localized than they should be. –  Robert Harvey May 4 '13 at 16:55
It's a hard balance, for sure, @RobertHarvey; it would be nice to be able to roll back the "plz show the codez" attitude just a little bit towards "please explain, in English, your current understanding of the problem" but on the whole I think the effort requirement does more good than harm. –  Josh Caswell May 4 '13 at 18:24
It takes courage to ask your first question on Stack Overflow. It's also the time that you take downvotes most personally. By treating new users badly, you only scare away the good ones. –  Andomar May 5 '13 at 12:49
"It takes courage to ask your first question on Stack Overflow." Oddly enough I understand where you're coming from on that front, but the evidence on the ground is that it doesn't take much courage at all. Indeed, many people out there seem to have no shame at. The people who have any apprehension are the ones who care about the community's standards; I'm not worried about them asking a bunch of crap questions, they can learn. –  dmckee May 5 '13 at 19:53
add comment

Proof of effort is actually tremendously valuable. It shows:

  1. Where is the questioner coming from.

    What assumptions are they working with. What existing constraints are they working within.

  2. Where is the questioner going to.

    What are they actually trying to achieve. Sometimes people get very hung up on a small point when it is far better for them to back up a little and try a different route to their real goal.

  3. Where the questioner is actually at. Not just where they think they're at.

    I have seen it quite often be the case that what is really going on is nothing at all to do with what the questioner thinks is happening.

It also shows that the questioner isn't some lazy-ass help vampire, but that's less of a problem than you might think since you are never answering questions just for them. Remember to try to make the answer to the question useful for others as well. (I tend to let help vampires just talk to themselves; they're a bit frustrating, but life is sometimes like that.)

share|improve this answer
Don't think comments like "I'm facing a task that I am unable to solve." or "I have used my notes / W3schools and google and can't find the issue." are valuable at all. They're not much proof either. –  Andomar May 5 '13 at 17:05
@Andomar Correct, saying that you did research means nothing and is not helpful at all, to anyone. What's much more important is to show your work. Show an example of something you tried that didn't work, for example. Also note that the research isn't applicable to every single question. When I see a question I'll know if a simple google search will yield a good answer. If it would, I know the OP didn't bother, so I'll say "what research have you done" because I know if they try at all they'll answer their own question. If I know the answer won't be found on Google I won't bother to ask. –  Servy May 5 '13 at 17:11
add comment
  • Proof of effort does not make a better question.
  • Clear examples of what has been tried or researched makes a better question.

Clear examples are created by effort.

Effort does not always create clear examples.

share|improve this answer
add comment

"Proof of effort" makes the QUESTIONER better.

Suppose there are two comparably "bad" questions. One of them is a one liner. The other is a multiparagraph effort from someone who has obviously "tried." Which person is more "correctable?"

To take an example from the "outside," I once had a "problem" in my co-op apartment. In discussing the matter with the President of the Co-op board, he said, "Our nightmare scenario is someone who has a problem, who won't admit he has a problem, who won't do anything about the problem, and who won't let us do anything about the problem. Those are the people we have to take to court to throw out.

"You've done two out of three. You admit that you have a problem, and you've done what you can about the problem. From those two facts, we infer that we will be able to work something out with you." (We did.)

A person who has "problems" but shows "research effort" has "done what he can about the problem," (and implicitly admits that he may have a problem). Those are the people that are more deserving of the site's helping them to fix their remaining problems.

share|improve this answer
add comment

Requiring effort makes it less likely the question will be asked in the first place.

I can't count the amount of times I have put effort into asking a good well researched question, and in the process worked out the answer. I think figuring out the answer yourself makes you a better developer than having somebody give you the answer, regardless of how good your question is or how good the answer is.

I would argue that one of the primary purposes for StackOverflow generally is to make us all better at what we do, which drives up standards and quality, and generally makes the industry a better place to work in.

If StackOverflow had a more lax attitude on this, I reckon I wouldn't bother. I would ask a lot more can I haz teh code plz questions and would advance slower as a developer. I might get code working faster, but would learn a lot less, and would struggle with the same problems again when I run into them in the future.

Having to work things out yourselves, and to really explain yourself and what you are trying to do/what you have tried already when you do need help leaves a much clearer image in your memory, and makes it much more likely that you will learn something.

share|improve this answer
add comment

It doesn't make the question better, it just indicates whether the poster is a person worth your time and effort.

Of course, if the question is really clear-cut there is no need for any proof of the sort, but most questions require a bit of back-and-forth to make the either the question or the answer clearer - or both. In that case it is really important to get an indication that the asker is able to grasp the information and also that he or she is not a help vampire that will suck you down a maelstrom of ever more tangential questions.

It is my theory that the working of SO (and the rest of the SE network) is based on an assumption that people who ask a question understand what they are asking. Explaining what you have done serves to verify that the asker satisfies this basic assumption. Coincidentally, I also believe that this is the point where the impedance mismatch between the sea of newbie posters and the more experienced users happens, but that is for another discussion.

You could say that view expressed here is somewhat derogatory - and you'd be right - so let me finish on a more constructive note:

Knowing what a person has already done helps understand where they are on the learning curve of the topic, and makes it easier for someone who wants to provide real help to target an answer to the asker's current level of knowledge of the domain.

share|improve this answer
add comment

I think that this "proof of effort" has damaged the community.

If you don't post proof, people auto-assume that you didn't try anything and just want your stuff done for you, regardless of how you tried to ask the question.

I tried more than once to post a clean question, objective, direct, but as I didn't pollute my question with my wrong attempts, assumptions, people auto-downvoted it without considering anything.

So "proof of effort" in my point of view is not required, it has nothing to do how good or bad the question is. What matters is if the question has enough information of what you are trying to do.

Our answers are not just to who asked, but to everyone who will find the question at some point and find it useful. It hurts the community to erase good questions just because the OP didn't proof something.

Questions with upvotes and answers without any kind of proof of effort

TODO: add more as I find new ones

share|improve this answer
I learned not to answer this type of Q after being met with: thanks, but I've already tried that ... ... Well, hello, why didn't you say so in the first place?! Basically, it's a waste of everybody's time not telling what did you try. –  brasofilo Dec 18 '13 at 8:19
add comment

Here's another example of a downvote bonanza. The new user posts a question that is actually hard. Six out of nine answers are incorrect. Three are correct, and one of them (Strawberry's answer) is new and original even to me, and I've hung out in the SQL tag for years.

Despite being interesting, and a learning experience for many, the question was downvoted and closed. The question exhibits "foreignness": the title and formatting were bad, and the beef of the question is below the code snippets. The inside crew responds to that with downvotes and closes.

This allergic response is justified by requiring "proof of research". But adding research effort to a question like this doesn't help anyone. The proof would dilute the question with a personal, localized debug log. Stack Overflow was meant to produce generally useful Q&A artifacts. Requiring "proof of research" accomplishes the opposite: specific and overly long questions.

And there is no clear way to "proof of research". As illustrated by the 15+ comments, people disagree on what the threshold for "enough effort to be worthy of help" is. (The comment discussion was rightly removed by a moderator.)

The requirement for effort dilutes and localizes questions, and invites ad-hominem discussion. Questions should be judged on their objective quality, not on the subjective worth of the OP.

share|improve this answer
"The assumption must be" - now who's making assumptions? –  AakashM May 7 '13 at 11:41
Heh. The official description of "not a real question" actually opens with "It's difficult to tell what is being asked here" - so if you don't understand a question you might be led to think that you can legitimately close it as NARQ. Way better feeling than admitting your analytical skills are limited. Anyway, it is not a great question - just throwing sample data and a desired output at people is neither a good way to ask a question, nor a great way to specify software. –  Monolo May 7 '13 at 12:15
@Monolo: I agree it's not a great question, but "best student per class" is a good requirement. It's easy to tell good and bad answers apart. –  Andomar May 7 '13 at 16:07
You feel that your example question is of high quality? I disagree. It is one person posting one person's problem. The end result is a bunch of code only answers that only solve that one person's problem. If anything that question is "too localized". It's not a question that even allows for explanation. That it's a hard problem to solve doesn't change the fact that it's only solving one person's problem instead of improving the knowledge base of the internet at large, which is the true goal of Stack Overflow. –  Servy May 7 '13 at 16:11
@servy: only one person in the world has the geatest-n-per-group problem? Get real. –  Andomar May 7 '13 at 16:16
@Andomar He didn't ask for a solution to that problem in general; he just says that he has this input and he wants this output. If the question is generalized and otherwise improved such that it more clearly applies to a larger audience and is likely to result in answers applicable to an equally wide audience then the question could be a great question. As it is, it's not there. This is likely a question that is well suited to being improved such that it could be reopened however, should it be appropriately improved. –  Servy May 7 '13 at 16:20
As an aside there's really only two correct answers. Meherzad assumes there can be no ties. Also the first person I saw use anti-join on inequality was Bill Karwin here –  Some Helpful Commenter May 14 '13 at 18:47
add comment

You must log in to answer this question.

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