This post is strongly inspired by a blog post by Jeff Atwood. In fact, most of the words are Jeff's. I've just changed the object a bit. Any eloquence is his. The arguments — well, some are his, too.
We've observed a particular pattern of questions emerging on several Stack Exchange sites.
How do you test if something is hidden with jQuery?
How to “add existing frameworks” in Xcode 4?
How do you search for backdoors from the previous IT person?
How do you find what process is holding a file open in Windows?
How do you know if you are watering a plant too much vs. too little?
How often do you need to turn the compost heap?
All these questions are effectively asking someone to do your job.
I love steaks so much, that I would like to get a green card and live in the States just to enjoy good steaks whenever I want.
When I try to cook a steak at home (I live in Italy), I almost ever get it burned outside and almost totally raw inside. Actually only a thin layer is cooked (or I should say carbonized).
If I try to lower the temperature of the grill pan, I get an extremely dried meat that resembles cork.
So, which are the basics for properly cooking a steak (say, to a medium-well grade)?
The question owner tries to describe something they can't quite do, in hopes that the greater community will “buzz in” to tell them how to do their job, as if they didn't have one of their own that pays. The best proposals gets upvote, and potentially an accepted answer checkmark. It's helpful, right?
Our engine is great at these kinds of questions, and they tend to do well:
- “How” is the most popular first word in titles on Stack Overflow, by a 6:1 margin
- “How” is the most popular first word in titles on Server Fault, by a 4:1 margin
- “How” is the most popular first word in titles on Cooking, by a 1.5:1 margin
- “How” is the 3rd most popular first word in titles on Theoretical Computer Science*
Of course, how-to-do-my-job questions aren't a new phenomenon. Jeff alluded to them in Should we require minimum reputation to continue asking questions? But after years of observing these how-to-do-my-job questions grow and spread to multiple sites with similar effects, I do not believe that the slight benefit of these questions outweighs the many negatives.
1. How-to-do-my-job questions aren't answerable
Consider Stack Exchange's first rule of questions not to ask:
You should only ask practical, answerable questions based on actual problems that you face. Chatty, open-ended questions diminish the usefulness of our site and push other questions off the front page.
Vague requests for a method to perform a badly-described task is not what I'd call a practical, answerable question.
Unless the asker has demonstrated a genuine reason they need to perform this task, documented that they’ve invested substantial effort in finding it, and given us something concrete that provides us with a reasonable chance of actually guessing the answer — it’s simply Not a Real Question. At best it is a work order.
2. How-to-do-my-job questions don't help others
Because these questions are based on specific, situation-dependent, half-understood descriptions, it is unlikely anyone else will be able to find them through a web search. I have a difficult time imagining how you’d construct a web search, either on Google or via Stack Exchange’s built-in search, to find something that you can’t fully understand. What’s even worse is that these questions, by their very nature, will contain a bunch of broad, speculative “maybe you can try …” catch-all terms that are likely to trip up future visitors who end up there by accident.
Consider the example of parsing HTML with regular expressions, a task apparently so difficult to perform that our programming site contains 171 duplicate how-to questions about it:
- How to use Regular Expression to match the charset string in HTML? (6 answers)
- How do I filter all HTML tags except a certain whitelist? (8 answers)
- How to extract img src, title and alt from html using php? (15 answers)
The goal of Stack Exchange is not to construct un-findable single-serving questions that only help one person, but that’s exactly what how-to-do-my-job questions tend to do.
3. How-to-do-my-job questions are unfair
If we allow thinly wrapped “do my job for me” questions, we are effectively turning into Rent-a-coder, only without the pay. No need to expend hard-earned dollars, or even appeal to charity: just post a work order, slap “How do I” at the beginning and a question mark at the end, and we’ll do the rest of the hard work necessary to figure it out for you? That’s a dangerous precedent to set. It is disproportionate and unfair to the experts on the site.
Also, an expert in the topic should be able to have at least some confidence that the answer he’s writing answers the question. Take that away, and you’re left with questions that don’t know what they want, and answerers throwing guesses at it hoping one will stick. “Does it work if you add a comma?” Nope, try again! “Surely #>+++++++4+[>++++++<-]>++++.-----.+++++.*\
must work!” Sorry, go fish!
4. How-to-do-my-job questions aren't educational
I understand that it's sometimes fun to puzzle out how someone may do their job. I also appreciate that it takes a lot of expertise and deep domain knowledge to take a vague, badly-described problem description and nail the exact solution. But I would also argue that these questions aren’t educational in any way, because there’s no way to learn by doing. A particular community member, by virtue of their experience in the field, just happens to be able to take the limited information you remembered and fill in enough of the blanks to guess a correct solution.
I urge you to click on the questions tab yourself and take a long, hard look at the artifacts these how-to-do-my-job questions are producing. After a couple of years I am convinced that how-to-do-my-job quetions do not meet our goal of making the Internet better.
Quite the opposite, in fact.
* And when the next in line is “complexity”, there are perhaps deeper problems to contend with.
It's amazing how few words I had to change from Let's Play The Guessing Game.