23
\$\begingroup\$

We have long been fighting a battle against Stack Overflow users who vote to close questions with custom reasons like

I'm voting to close this question as off-topic because it belongs on Code Review.

Not only do these messages contradict Stack Exchange policy, they also fail to convey the purpose and scope of Code Review. Misconceptions abound.

We've tried educating Stack Overflow users, but memes are hard to kill, and we're outnumbered. I've suggested banning "I'm voting to close this question as off-topic because it belongs on …", but there is no indication that Stack Exchange will implement such a ban anytime soon.

So, I think it's time to switch tactics.

What if Stack Overflow redefined its scope to make code review requests explicitly off-topic?1 That is, de facto, what is happening on Stack Overflow, but each Stack Overflow user expresses the reason in their own words, poorly.

How would we, as the Code Review community, recommend that the close reason be worded? This is our chance to craft a standard elevator pitch.


1 Note that this is a decision to be made by the Stack Overflow community. This discussion is a preliminary step. Once Code Review develops consensus around a wording, we'll make a proposal on Stack Overflow Meta.

\$\endgroup\$
  • 2
    \$\begingroup\$ The biggest issue I have with code review questions on Stack Overflow is they generally take the form "[title]How can I improve this code?[/title]" (code) [question]How do I improve the above code? Thanks![/question]. Those questions aren't helpful to others (the person who stumbles onto that question organically or from Google. \$\endgroup\$ – George Stocker Nov 30 '15 at 21:06
  • \$\begingroup\$ The Tour page here looks identical to the SO page! The changes are so subtle that anyone would confuse the two without close scrutiny. \$\endgroup\$ – Jarrod Roberson Dec 11 '15 at 11:09
18
\$\begingroup\$

Some wording we came up with in chat:

Questions about reviewing or improving existing, working code and lacking a specific question statement are off-topic for Stack Overflow. You may be able to get help on Code Review.

The basis of this wording is to build it around the same wording as the Super User close reason:

Questions about general computing hardware and software are off-topic for Stack Overflow unless they directly involve tools used primarily for programming. You may be able to get help on Super User.

The idea is to convey two things:

  1. That the question is off-topic on SO;
  2. That the question could be on-topic on CR;

This does the same thing as the Super User close reason, which indicates what makes a question off-topic on SO, and on-topic on SU.

\$\endgroup\$
  • 1
    \$\begingroup\$ I like that this wording builds on something already existing. Maybe a bit too much bold though. \$\endgroup\$ – Mathieu Guindon Nov 30 '15 at 20:52
  • \$\begingroup\$ @Mat'sMug Well let's see what we can do with that. \$\endgroup\$ – Der Kommissar Nov 30 '15 at 20:53
  • 2
    \$\begingroup\$ I suggest changing "lacking a specific problem statement" to "lacking a specific question statement". Code doesn't need to have problems in order to be on-topic for Stack Overflow. Some "How can I improve the speed of my program with regards to XYZ" questions are being welcomed on SO. \$\endgroup\$ – Simon Forsberg Nov 30 '15 at 21:13
  • 1
    \$\begingroup\$ @SimonForsberg Updated. \$\endgroup\$ – Der Kommissar Nov 30 '15 at 21:18
  • 2
    \$\begingroup\$ I might append something like "Please remember that the requirements for a question are very different on Code Review." This is less of an issue between Stack Overflow and Super User, but Stack Overflow encourages minimal examples where Code Review explicitly requires real, working code, preferably complete in runnable form. \$\endgroup\$ – mdfst13 Dec 1 '15 at 2:33
9
\$\begingroup\$

Partly based on earlier proposal by EBrown in chat:

Without specific programming questions this is off-topic for Stack Overflow. However if your code works as intended, you may get a review and evaluation of it at Code Review.

Without **specific programming questions** this is off-topic for Stack Overflow. 
However if **your code works as intended**,
you may get a **review and evaluation** of it at
[Code Review](https://codereview.stackexchange.com/about).

This, to me, gives a good reason of why it is off topic on Stack Overflow as it lacking questions to be answered, and at the same it counters the main reasons for closing questions here at Code Review.

\$\endgroup\$
  • 1
    \$\begingroup\$ For the same reason why we removed site names from our close reasons, it may be best not to include our site on there. Otherwise, it may just cause someone to post their low quality question here anyway. \$\endgroup\$ – Jamal Nov 30 '15 at 20:49
  • 2
    \$\begingroup\$ @Jamal but, the standard close reason for SU does mention SU... \$\endgroup\$ – Mathieu Guindon Nov 30 '15 at 20:51
  • \$\begingroup\$ @Jamal, this applies to both answers, and should possibly be added on question? \$\endgroup\$ – holroy Nov 30 '15 at 20:51
  • 1
    \$\begingroup\$ I like that this better distinguishes between what make the question off-topic for Stack Overflow and what makes a question on-topic on Code Review. \$\endgroup\$ – 200_success Dec 1 '15 at 4:45
3
\$\begingroup\$

I think you should be focusing on closing questions, not migrating them.

Stack Overflow has a very poor history of successful question migrations (especially to Programmers); that's why the process is intentionally difficult. A bot called Duga captures suggestions for migration in the question comments for both Programmers and Code Review; I will let the Code Review folks state what their percentage is, but for suggestions for migration to Programmers captured by the bot, 95 to 99 percent of them are not only poor candidates for migration, but are also closeable on Stack Overflow under the current rules.

Further, you already have legitimate means to close these questions on Stack Overflow without adding any additional close reasons. They already qualify for the "Questions Asking for Code" close reason (they don't meet all of the requirements), and for being Too Broad. Take your pick.

Finally, if someone wants to try their luck, they're perfectly capable of re-asking their question on Code Review themselves.

Verdict: Stack Overflow doesn't need another close reason. The current crop of close reasons already adequately suffices.

\$\endgroup\$
  • \$\begingroup\$ We already recognize that an SO → CR migration path would be disastrous given the current situation. \$\endgroup\$ – 200_success Dec 6 '15 at 6:41
  • 1
    \$\begingroup\$ On a technical level, you're right that there is a Too Broad close reason. However, it is unintuitive, which has led to the harmful and bogus "belongs on Code Review" custom close reason. You haven't suggested a better way to kill the meme. \$\endgroup\$ – 200_success Dec 6 '15 at 6:42
  • 2
    \$\begingroup\$ Then change my wording from "Migration" to "Suggested Migration" (which is what your new close reason essentially is), and everything I said still holds. The purpose of close reasons is to close questions, not kill memes, and people suggesting that bad questions be moved to CR is an educational problem, not a technical one. \$\endgroup\$ – Robert Harvey Dec 6 '15 at 6:43
  • 2
    \$\begingroup\$ We've tried educating users one at a time as Duga reports them. It's futile. Sometime it even escalates into minor flame wars when an SO user accuses us of being pedantic or even wrong. You're essentially saying that the status quo is fine, and we think it isn't. \$\endgroup\$ – 200_success Dec 6 '15 at 7:01
  • 3
    \$\begingroup\$ I completely agree with Robert. I use both Stack Overflow, and Code Review, and adding a new, complicated close reason to Stack Overflow will create more uncertainty, and mess. The issuse is not about teaching SO users when to recommend Code Review. The issue is educating them to use the close reasons they already have. I frankly think that Duga has done quote well, and the issues is not one of SO folk needing something different, the issue is one of there simply being so many SO users that it is inevitable that this will continue to happen - regardless of what close reasons are available \$\endgroup\$ – rolfl Dec 6 '15 at 13:21
2
\$\begingroup\$

While I would normally like the idea of reusing existing components, I'm not sure it's appropriate here. Code Review is different from Stack Overflow and our questions are constructed differently.

How are Stack Overflow and Code Review different?

Stack Overflow, like most Stack Exchange sites, favors questions with general application. So it wants small sections of code with no details specific to the user's exact problem. Stub and hypothetical code are allowed, even encouraged, if they demonstrate the problem.

Code Review is different. We take code that solves very specific problems and many of our questions and answers are only relevant to that one person. For everyone else, it's just an example of how to write code. We encourage people to post their entire programs in runnable form, and we prohibit stub and hypothetical code.

A good question for Super User could be posted on Stack Overflow with the only problem being that it was off-topic. If a question that fits Code Review were posted on Stack Overflow, it would have multiple problems. For example, there would be too much code, so it would be reasonable to ask for a minimal example.

Link to a new page

If the link goes directly to our generic about page (the tour), it won't be making specific advice for Stack Overflow users. The tour is intended for use by people coming from outside the Stack Exchange network as well as people from other sites. It doesn't know that the person is coming from having just posted a question on Stack Overflow. So it will be giving much less specific advice. We could do better. We could send people to a page specific for questions coming from Stack Overflow that emphasizes the differences between the two (possible a question on meta). That page can link to the tour and the help pages.

Does someone coming from Stack Overflow need to know about reputation, editing, and commenting? Not so much. Does that person need to know that we require real, working code? Absolutely. But we don't mention that in the tour. We do explain that this is a question/answer site, which most people already know by that point (when coming from Stack Overflow). The tour has to meet the needs of people who've never heard of Stack Exchange. It's not the best starting place for someone from another site.

The help pages would be better. They at least do contain information about posting the code. Of course, there are so many of them that people may miss that.

An alternative might be to change the tour page to better emphasize the differences with other Stack Exchange sites. I'm not sure how to fit that into the existing template though. The tour is more designed to remind people of the similarities with other sites, as the basic template is used widely across Stack Exchange.

A new page might also be easier to edit. As far as I know, only moderators can edit the tour. A quicker, more accessible edit cycle could allow the page to evolve faster. The process for a non-moderator to edit the tour page is cumbersome enough that someone has to be really motivated to pursue it. Minor tweaks just aren't worth it.

General changes to the tour

  • The section on tags could emphasize that on Code Review, every question should be tagged with the language in which the code is written.

  • The second section could remind people that our site reviews code, so you have to post the real, working code, preferably in complete, runnable form. Leaving out some or all of the code is a common first post mistake.

But like I said, I don't think that minor tweaks are enough for this purpose. I think that we could emphasize just a few differences with Stack Overflow and get major improvements in the quality of redirected questions. Maybe we should make these changes, but even with them, I don't think that the tour is the best page to land people coming from Stack Overflow.

\$\endgroup\$
0
\$\begingroup\$

In general I agree with the sentiment of this proposal and I think it is well thought out.

The one thing I have to add is I do not really see a flood of Code Review migration worthy questions that much in the tags I follow, which are some of the worst offenders. , , and and to a lesser extent .

I am not active in all those tags but those are some of the worst offenders of the premature optimization without profiling crowd that think they can improve some code that is already fast enough or that they can outsmart the compiler written by and peer reviewed by multiple Phd holding programmers with some micro-optimization that usually just makes things worse.

These performance based questions in most of these tags get smacked down pretty quickly now days.

Design based questions are pretty easy to justify migrating to Programmers if there is no code and it is on topic there.

Same with here if there is code and it is on topic here.

My experience is those types of questions have diminished greatly or are closed quickly in the tags I mentioned above.

Three years ago, this would probably have been a worthy way to spend some time, today I am not so sure without some data (profiling) to back it up.

As much as Programmers and Code Review like to think of themselves and completely separate sites from Stackoverflow historically this has not been the case and the two sites are tied at the hip in the consciousness of the current Stackoverflow community since both sites were spawned from desires to have some place of off-topic questions that had some merit in a different context.

What is really needed is a badge for approved migrations to each place that pre-qualifies someone that is good at selecting viable migration candidates for each site.

The first bronze and silver levels would push the requests up the queue as they are pre-qualified. The gold badge could work like the dupe hammer on SO, migrate it directly. Have a rule here that says, anyone with rep >= ##,### can send stuff back with a single click and that it can not be hammer migrated back again.

\$\endgroup\$
0
\$\begingroup\$

Based on the discussion here, I've made this proposal on Stack Overflow:

Questions about existing working code must identify a specific problem or concern. Requests for open-ended critiques to improve code that already works as intended may be appropriate on Code Review.

The first sentence states that the question is off-topic on Stack Overflow, using a criterion that already exists on Stack Overflow's Help Center. I've phrased it with a subtle hint that a simple way to resolve the problem would be to mention the specific concern, so that the question can remain open on Stack Overflow.

The second sentence suggests an alternate way to seek advice. "Open-ended critique" is the most succinct way I could think of to explain Code Review's purpose to the Stack Overflow audience.

\$\endgroup\$

You must log in to answer this question.

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