15
\$\begingroup\$

Prologue:

A long long time ago (Apr. 17th, 16:00),
in a galaxy far away,
there was a stranger, seeking enlightenment.

He came across a miraculous star named CodeReview
in the deepest depths of the internet.
He (maybe) read the rules of the planet, and then unboarded from his
spaceship to ask a question: Namespacing jQuery into markup I don't control

But the inhabitants of the planet were hostile towards his question,
And so, the first flamewars in the history of CodeReview began.

I took the liberty to create a conversation with the exact same title from the transcript of our chat, where the reactions of the "avid users" and some comments are captured.

Now to the point.

What went wrong? Where can we do better? How can we ensure such a Flamewar does not happen again?

Note: In order to facilitate a better 'process' when these things happen, it is, on the balance of things, appropriate to show the deleted comments. If this discussion starts to 'reignite' the debate, or loses its 'constructive' and 'positive' slant, then this entire question will be removed.

As a meta-discussion on the flame-war, it seems appropriate to include deleted comments that are not visible to regular users.


Original Post - revision 1

enter image description here

Comments on the original post:

enter image description here

Revised Post - revision 2

large post, check link, includes code.

Comments on revision 2

enter image description here

Minor edit - Revision 3

see diff in link. basically replace "I know there's some edge cases" with "I know there's most likely some edge cases"

Remaining comments on revision 3

enter image description here enter image description here

\$\endgroup\$
  • 4
    \$\begingroup\$ A New Hope is episode IV... leave room for a prequel trilogy FTW! \$\endgroup\$ – Mathieu Guindon Apr 22 '14 at 14:19
  • \$\begingroup\$ @Mat'sMug damn you caught me cold here. You have the choice of rename, leave it at Episode I and change the name, or Change to Episode IV? \$\endgroup\$ – Vogel612 Apr 22 '14 at 14:22
  • \$\begingroup\$ Just kidding, we don't want a prequel here, even less so a trilogy! \$\endgroup\$ – Mathieu Guindon Apr 22 '14 at 14:22
15
\$\begingroup\$

I was not a part of this, so this answer is based only on what the OP has shown us. I am afraid that I may catch a lot of flak for this post, but here is how I see things.

Part 1: Embedding Code

Let's go from the beginning:

@RavenHursT broke our rules for not posting the code here.
@rolfl posted a polite response clarifying our rules.
@RavenHursT posted an immature response questioning the rule.
@rolfl posted why the rule exists.

Let's stop right there for a second and let's look at @rolfl's response:

...(because, you know, clicking a link is not too hard....)

While this is a clever response, hence the 4 upvotes, it is unprofessional and immature. I can accept a normal poster being immature about something, but it is unacceptable for a moderator to act like this. Such a response will only throw the OP on the defensive.

Please note that this is not meant to be a personal attack on @rolfl. I am in no way questioning his or anyone else's ability to moderate. I simply believe a mistake was made and it had dire consequences.

I believe a better response would have been something along the lines of:

If you have any questions or concerns about the rules listed in the help center, feel free to post a question on our meta.

After writing that comment, the question should have been closed. @RavenHursT's next comment should have been ignored and deleted. No further comments should have been allowed until @RavenHursT complied with our rules.

Part 2: Working Code

I feel this issue was a simple misunderstanding. Based on @RavenHursT's comments, the code worked to the best of his knowledge, therefore it was on-topic.

...I'm looking for a review of the code and feedback on any edge cases or race conditions I may have missed.

And further down:

...So yes, I'm a bit iked that I come 2 a code review community, ask 2 have some code (that works) be reviewed, ...

While this was a minor issue, it's not hard to see why this one, compounded with the previous issue, would turn into a huge frustration for @RavenHursT.

Part 3: Conclusion of Events

@RavenHursT was immature.
Moderators stooped to his level.
Some community veterans backed the moderators.
Unnecessary back and forth replies ensued.
@RavenHursT probably felt like he was being ganged up on and was generally frustrated.

Overall, this was not a good experience for a new user and that is a failure on our part.

Final: What should have been done?

  1. This may be arrogant, but community veterans and moderators should hold themselves to higher standards than new users.

  2. When a rule is broken, a moderator (or someone else) should post which rule has been broken. The question should then be closed and no further discussion needs to occur outside of meta or a private chat with a moderator. Back and forth discussion about who is being disrespectful or who is breaking the rules is unacceptable.

  3. Disparaging remarks and threats such as:

    You really want to piss off the only guys that can permanently have you banned?

    or

    feel free to leave and never come back.

    should be avoided. This goes back to not stooping to the OP's level and holding moderators and community veterans to a higher standard.

  4. When a user is frustrated or confused about something, a moderator (or someone else) should provide steps that the user can take to solve their dilemma. Whether or not they choose to take those steps is up to them. Aside from that, a moderator should stand firm and no further discussion is needed.

  5. We all must work hard to provide a welcoming atmosphere for new users. The new users may have a few oddities in the beginning, but we can only hope that they become beneficial and contributing members of our community.

Other thoughts

This post isn't meant to defend @RavenHursT. The way he acted was also unacceptable, but I believe this could have been avoided.

Overall, we should take this as a learning experience and strive to handle the situation better in the future.

The Elephant in the Room

I did ask my question in SO.. and was told to come here for my question. And now you're telling me to go back????

This problem really needs its own topic, but I think we need to face the facts. The scope of Code Review is ambiguous and counter-intuitive. This isn't something I'm going to discuss in this topic though.

\$\endgroup\$
  • \$\begingroup\$ Very nice, something like this was what I had in mind, when I proposed a revisit of this in chat. +1 \$\endgroup\$ – Vogel612 Apr 22 '14 at 15:56
  • 2
    \$\begingroup\$ I agree, with pretty much everything as well, and in the multiple times I have revisited this comment-history, I particularly agree with the fact that my second comment was inappropriate, and that I misinterpreted the state-of-mind of the OP. He was not in the frame of mind to accept what I intended to be a 'witty' redirect to the help center. \$\endgroup\$ – rolfl Apr 22 '14 at 16:05
  • 2
    \$\begingroup\$ As a technical/factual update, the question was closed (by me, as a binding-vote-by-moderator) after the very first comment, at Apr 17 at 16:18, but a closed question can still be commented on. The alternative was to 'lock' the question, but then the OP could not have updated it with the code.... \$\endgroup\$ – rolfl Apr 22 '14 at 16:09
  • 1
    \$\begingroup\$ What I just realized.. your answer nowhere relates to the fact that, as rolfl mentioned the question was closed as "not containing code". I think largely relevant to the behavior of RavenHursT was the fact, that it remained closed for that reason, even after he edited his question to contain code \$\endgroup\$ – Vogel612 Apr 22 '14 at 16:44
  • \$\begingroup\$ @rolfl Good point, there is no easy answer to this. Perhaps you or some other moderator could have deleted all of the comments then and posted something like Let's take this to chat, or please post a questions/concerns on Meta. \$\endgroup\$ – jliv902 Apr 22 '14 at 17:19
  • \$\begingroup\$ @Vogel612 Part 1 goes over that fact. I already stated that RavenHursT was acting inappropriately. I'm not sure how I could have added anything else that would further my feelings on this matter. \$\endgroup\$ – jliv902 Apr 22 '14 at 17:21
  • \$\begingroup\$ @jliv902 - I think you are right on your overall analysis, I have no issue with it. I don't want to 'make excuses' for what I did... other than to say: it is a lot simpler to view things in hindsight. I could have played it more defensively, I should have played it more defensively, and I will be more defensive in future. Frankly, I was simply not expecting what I consider to be an SO response, on CR. I don't want to have to become as 'soulless' as an SO mod though. Just looking for the right balance. \$\endgroup\$ – rolfl Apr 22 '14 at 17:25
  • 3
    \$\begingroup\$ Regarding The scope of Code Review is ambiguous and counter-intuitive, I think well-crafted community ads can help disambiguate the site's scope on other SE sites. \$\endgroup\$ – Mathieu Guindon Apr 23 '14 at 1:54
10
\$\begingroup\$

I have something to add concerning the "not working" code: we hardly know whether our code is 100% safe or not, and often assume ("know") that some corners cases remain and even if we wrote the best possible code we could, there would still be some obscure errors which would generally not trigger but which could trigger someday. We often feel that there are errors left, but we can't see them and all the unit tests pass successfully.

In my opinion, it is also the aim of Code Review to catch these corner cases, otherwise this question would be seriously off-topic since there are data races (I knew that there would be some threading issues, but couldn't spot them, and they didn't trigger errors on my computer). Look, I even stated right in the question:

I was pretty sure that I would get some problems due to parallelism, but for some reason, it seems to work. I got the expected results in the right order. Just to be sure, I would like to know whether my program is or correct or whether it has some threading issues that I couldn't see.

Therefore, still in my opinion, once the code had been properly included, @RavenHursT question was totally on-topic and should have been reopened without further discussion.

\$\endgroup\$
  • \$\begingroup\$ +1 We should be cautious about closing questions where the OP says that something may not be working. Perhaps we should remind them about our working code rule and allow them to clarify what they mean before taking any action. \$\endgroup\$ – jliv902 May 1 '14 at 20:59
8
\$\begingroup\$

I'm writing this answer from a working mindset at my job, I appreciate this isnt your job and you probably do not need to remain 100% professional for your own livelihood.

I don't think you can ever stop a flamer from flaming, this being said he clearly had a problem with the rules of the site which wasn't helped by the way he was responded to.

I think you handled it correctly by handing him the rules and giving him reason as to why these rules exist "code review will last longer than your link" is a perfectly good response as it is a valid reason.

The only thing I could say is the amount of digs (mainly about clicking a link) in responses was not required, you are only playing his own game when you respond in that matter. Remaining professional when linking the correct information and rules is really important because it provides reasoning and trust.

No offense intended to anyone, I deal with heated people all day at work and the best response is to be as nice as possible. They have nothing to argue about then and if they continue to do so, they clearly don't want any help.

\$\endgroup\$
7
\$\begingroup\$

My take on what happened:

  1. Dialog between OP and rolfl
  2. Other users (starting with Mat's Mug) weigh in to defend and back up rolfl

My take on how to prevent it happening:

  1. If you post, do it to inform ("our rules are X", "you can improve your post by adding Y"), but not to criticise ("don't disrepect the community", "don't argue with the moderator"); if you want to be careful (which you should if the OP seems argumentative) then take the time to a) be brief b) augment what you say by linking to the relevent Help or Meta topic
  2. If the discussion becomes an argument, then flag it and don't reply
  3. The moderators have moderator-tools they need to end an argument with the OP: if you engage in the argument that makes things worse not better; show your support by being silent and letting them speak for you
  4. If you want to argue with the moderator about how to proceed, or make suggestions, do it in chat
  5. Moderator can and should delete unhelpful/obsolete comments a.s.a.p.
  6. In rare cases (e.g. if a first moderator becomes overheated) you can ask a second moderator to intervene.
\$\endgroup\$
6
\$\begingroup\$

The obligatory answer, which is the somewhat documented process:

  • stay away from the flames. Do not engage with people who are upset, trolling, or abusive
  • flag the comments/posts that are a problem.
  • let the moderators moderate things.

References:

\$\endgroup\$
6
\$\begingroup\$

Unfortunately I wasn't a part of this, I wish I could have been there to help. I'll make a small note here though: tone is everything. Whenever you are writing something to be read, the it is up to the reader to decide how you will "sound" in their head.

At first I think we handled ourselves pretty well as a community. We (for the most part) were pretty polite while being instructional to the OP on what he could do to have their question re-opened. But we failed to respond to the OP properly when they came back with a sarcastic and disrespectful attitude.

You can't feed a flame. If the OP fails to read through the helpful comments given to them (and on top of that, responds in an ill-mannered way), and then act accordingly (in this case, going into the Help Center and reading what questions are considered on-topic), there isn't much else you can do. You can only do so much for the OP. At some point, you are going to have to leave them alone and let them fix the problem themselves.

\$\endgroup\$

You must log in to answer this question.

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