1

I am an oldtimer on Stack Overflow, but I only recently became involved. In that respect I am more of a newbie than a veteran.

Which leads me to my question:

How should a professional disagreement and discussion be handled on the multitude of Stack Exchange sites?

Context

A case study from Stack Overflow: I recently clashed with a very high reputation Stack Overflow user here.

The posted question has been mostly cleaned out of the abusive content, but you can get to a relevant discussion from one of the answers.

I conceded on some points, but in general the discussion was harsh, thanks in part to some gung-ho remarks that I made which I regret, but mostly thanks to one old-time Stack Overflow user who used derogatory terms associated with me, and repeatedly asked the OP to revoke my answer as the correct one.

Our argument was, in the end, more about terminologies rather than practical issues. This is an ever bigger shame because of two things:

  1. I was upset by the way the community handled the argument and silently allowed some of the abuse to take place. Now imagine how a newbie Stack Exchange site user would feel.
  2. The high rep Stack Overflow user got banned from Stack Overflow for a year (thanks to past offenses). This was in no way my intention. I contacted the moderators and asked them to remove the ban, but I was told that this was not possible.

With great power comes great responsibility. I feel the oldtimers should try to be more accommodating, even with professional arguments. The reasoning behind this is that they are the 'responsible grown ups' on the Stack Exchange sites.

We can even agree to disagree.

And to prove this point - please review the comments to several of the answers below, where there were disagreements which were resolved professionally.

References:

6
  • @n8te : the post has been heavily cleaned out thanks to moderation. see edit above with a link to a followup discussion containing some of the argument Commented Apr 28, 2018 at 3:16
  • 2
    If your example requires access to deleted content such as comments, it may be better to ask on MSO than on MSE. Your context seems very SO-centric.
    – Catija
    Commented Apr 28, 2018 at 3:20
  • @Catija : SO is the "battleground" in this case. The question stands for just about every other professional forum. Commented Apr 28, 2018 at 3:22
  • 3
    Since only SO mods can see the deleted posts - MSO would probably the best place for someone to get the full context of what's happening. In general though certain aspect of this would be concerning, like asking a poster to switch his selected answer but we don't, and cannot have a full picture of what happened Commented Apr 28, 2018 at 3:35
  • @JourneymanGeek: Well, SO mods and of course also MSE mods.... Commented Apr 28, 2018 at 5:02
  • 2
    For the close voters. This is a network wide problem, and not restricted to SO. I know that no one likes do discuss about that point at the current situation. Commented Apr 28, 2018 at 12:49

4 Answers 4

9

Our argument was, in the end, more about terminologies rather than practical issues. This is an ever bigger shame because of two things:

Sometimes the situation boils down to this:

Better to let the heat lower, and stop arguing at all (and rather have fun with whoever was calling from the "off").

  1. I was greatly offended and upset by the way the community handled the argument and silently allowed some of the abuse to take place. Now imagine how a Stack Overflow newbie would feel.

The community apparently handled the case. Comments were probably flagged and removed for reasons of moderation. Sometimes even technical issues can make feel people upset.

  1. The high rep Stack Overflow user got banned from Stack Overflow for a year (thanks to past offenses). So this means the old timer has abused others in the past. Probably about tid-bits as well....

Well, the community apparently handled the case.


.. So this means the old timer has abused others in the past. ..

You cannot know what really happened, and it won't be disclosed to you by the site moderators. It sounds like they had sent you signals regarding this.

The site and community moderators most probable1 policy is not to engage into heatened, lagging off-topic comments.

So it's often the better choice simply to disengage yourself in the first place.

If you seriously feel personally insulted or diminished with a critique about your question or answer, take it on, edit your post, and make the critique "poof", or at least addressed.


That's a serious point, which should be considered in a "professional behavior", especially in scientific and engineering fields.

If someone bluntly states: "You are wrong, because of ...!", your reaction probably also shouldn't be stomping and keep saying "I'm not because ...!" and if that doesn't get through, escalate it to your boss.

The prominently placed be nice policy in the help center of every SE site states:

Be welcoming, be patient, and assume good intentions.

Even professionals and experts are still humans, and might sound snarky or offensive for you.
It's not always these want to belittle you, but,- heck -, just want to encourage you, and helping you out.

One of the main "defeats" I've experienced in my professional lines as a "noob" developer, where those snarky comments like

Because it is like it is.

or

I don't even have a clue what you are asking about (implying: Did you do your homework.)

and chasing me back to my own desk/terminal from kinda annoyed state.
Forcing me to come up with something better.
That was useful in the end. Though I got boiling about the bluntness.

The thing I've learned working out best, is to work out your point based onto resilient facts, and having references for these. Everything else would go into an unproductive direction.

You're still encouraged to ask beyond the blunt scenes made, and you'll be surprised with a poof (in whatever direction).


With great power comes great responsibility. I feel the old timers should try to be more accommodating, even with professional arguments.

We can agree to agree about this. Same should be true for every user here (accomodating).

You see, you already have powerful tools and there comes great responsibility with using them.


1)I can't tell for sure, as I never was trained with what they've been trained after becoming site moderators.

7

I you're having a disagreement with a more knowledgeable user how about starting with an assumption that he's right and you're wrong?

Looking at the chat you linked to 3 more users told you the same thing and at the end you edited your answer and now it's correct. I don't know how this whole thing started and what was deleted but maybe if you would've listened to him from the beginning the escalation could've been prevented?

As to the abuse, immediately disengage and flag when it happens. All the abusive content was deleted and that user was banned I don't understand what the community did or did not do to offend you, what did you want to happen? Something like this should be handled by moderators not by other community members.

P.S.
Not really relevant to MSE but your argument wasn't about terminologies. I don't know if you're trying to save face or still don't understand but:

"please provide a code + execution example showing this behavior which can be reproduced"

Asking the above for undefined behavior is so wrong that it's borderline not even wrong.

12
  • Thanks for the inputs Oleg. I disagreed with an opinion and conceded on some points, and not others. As for the quote you provided : how can you demonstrate UB ? The simplest way would be to show the output of 2 executions of the same code segment on different machines/HWs/OSs. The expected output in this case would be that 1 machine's de-facto behavior would be different then the 2nd machine's behavior, for the same code. That is the definition of UB - for different physical environments, the code will behave in a non deterministic way. Commented Apr 28, 2018 at 11:28
  • 3
    @RannLifshitz No, you prove it's UB by using the standard. Even if it behaves the same on all current implementations it's still UB if the standard says so.
    – Oleg
    Commented Apr 28, 2018 at 11:33
  • Thank you Oleg. I think in this case I will suggest we agree to disagree. Commented Apr 28, 2018 at 11:35
  • 1
    @RannLifshitz Can't do that sorry. Just please answer me one last question; What would it take to convince you that you're wrong?
    – Oleg
    Commented Apr 28, 2018 at 11:43
  • I guess a decent face-2-face discussion, since the posts here are a very poor tool for a heated discussion. There is probably not a lot to discuss by this point - I did concede that I was wrong regarding the basic definition of UB and fixed my answer accordingly. I am simply claiming that once you have executed UB on a physical device, then the outputs of the execution can be defined and studied, and in my experience, as long as the physical device is not altered in any way, the UB execution will produce the same behavior consistently. Commented Apr 28, 2018 at 11:50
  • @RannLifshitz We can do that (I'm Israeli) but I don't think it's important enough ;). Fine for the sake of good face let's finish with agreeing to disagree.
    – Oleg
    Commented Apr 28, 2018 at 12:24
  • I'm very happy with this resolution. It is an actual example of a professional disagreement gone right. Oleg - you are the kind of professional I would be very happy to work with. Commented Apr 28, 2018 at 12:35
  • @RannLifshitz np, thanks. I'm also very impressed that you didn't take my critique personally, if only more people here were capable of doing that...
    – Oleg
    Commented Apr 28, 2018 at 17:52
  • Well, that was what this entire post was about - how to disagree in a professional manner. A classic example of a question being answered by the dialog it has provoked. Commented Apr 28, 2018 at 18:08
  • @RannLifshitz: in practice it is often repeatable given the same device/compiler/compiler settings, that doesn't have to be the case. And it definitely isn't repeatable across devices/compilers. UB is a very precise term -- it means that nothing about anything in that compilation is guaranteed. The result of UB isn't limited to the line being compiled. It may be entirely consistent and with no side effects, it can just as easily be random with side effects in what would appear to be totally unrelated areas of your program.
    – jmoreno
    Commented Apr 30, 2018 at 4:02
  • @jmoreno : Not sure if you are agreeing with my previous comments on UB or not. A few colleges with 15+ years of C/C++ experience agreed with me that UB is an abstract term, relevant to code which has not been executed, and is the way for the C standard to say - we are not going to investigate how our code works on every HW/SW combination, so in general the code behavior is unexpected. However - once the code has been executed on a specific machine, and the machine is fixed (no changes to the HW/SW effecting c/c++ code) - then a deterministic and definable behavior is encountered. Commented Apr 30, 2018 at 4:40
  • 2
    @RannLifshitz: Former C++ Standards Committee member here. Those old-timers are right. UB is not an abstract term, it is literally part of both the C and C++ specifications. As such, it is part of the definition what actually constitutes a C or C++ program. (This may sound as an appeal to authority, but it's an appeal to the applicable authority). Also, you can't assume deterministic behavior in the presence of UB. E.g. race conditions due to UB are expected and non-deterministic. Commented May 2, 2018 at 12:00
6

How should a professional disagreement and discussion be handled on StackOverlow/Other Stack sites?

  • Most important thing - maintain (ideally) good humour and friendliness, or at least civility and politeness. If someone you're talking to doesn't do this, the prerequisite environment doesn't exist to have any discussion productively, so disengage.

  • Pursue the discussion for as long a time as all parties involved feel it is worthwhile doing so. If the discussion starts going in circles, or starts to get into too many layers of 'meta' discussion about who said what, or is simply using up too much time compared to anything you're learning, politely disengage - say you have to feed the cat / polish the armadillo / whatever.

  • Maintain humility - even if you know you're right, you might not be expressing yourself in a way that your counterpart can understand, or you might not be understanding them; there might be a difference in perspective that you haven't got to the bottom of; you might even be wrong on some points after all.

3
  • Thanks buddy. Humility is a virtue Commented Apr 28, 2018 at 11:45
  • @RannLifshitz better luck with the next 'interaction' - and don't worry, we've all been there :) Commented Apr 28, 2018 at 11:47
  • Wow topo. Thanks. This means a lot. You are quite the decent human being. Cheers! Commented Apr 28, 2018 at 11:52
2
  1. I was upset by the way the community handled the argument and silently allowed some of the abuse to take place. Now imagine how a SO newbie would feel.

I'm upset how some users in this community seem to thrive on getting their one-sided point of view accepted at the cost of other users.

  1. The high rep SO user got banned from SO for a year (thanks to past offenses). So this means the old timer has abused others in the past. Probably about tid-bits as well....

Maybe it doesn't feel this way for you but to me this meta post comes across as a way to celebrate your success and have another go at the banned user while they are out of office for a year.

If anything, this is not how you handle a professional argument. What some users seem to find very hard to do is disengage. What is wrong with saying something like: I always thought that [whatever foo-ed the bar] but I see there are other ways to interpret that and if the argument continues just say Thanks, I learned a lot.

If you're factual right somewhere in the future the other party will realize they got it wrong. There is no need to beat anyone into submission. Nor is it a viable strategy.

Of course if comments get heated and deteriorate into mud slinging flag away and foremost don't feed the argument.

While we know some old-timers are notorious in not adapting their style (and I'm not thrilled by what I have seen in the past from said user) it still needs at least two users to get into a out of control brawl. You were part of that brawl, you are as responsible to deescalate as any others involved, including the bystanders.

As an old-timer I'm happy to be (or learn to be) accommodating but don't assume that means you are exempt from doing the same.

4
  • 3
    2) "Good for you, you contributed to get someone banned. You have what you hoped for and now even a meta post to celebrate your success and have another go at the banned user while they are out of office for a year." - That is quite the assumption you made there buddy. I actually spent a lot of time trying to get this user un-banned. The moderators refused my request to "not press charges", so to speak. I do not appreciate your tone here. Commented Apr 28, 2018 at 11:22
  • 1
    And finally - I did my best to deescalate this argument. I actually did. My lesson here is to simply walk away next time. It is just not worth it. Commented Apr 28, 2018 at 11:24
  • Quite the harsh tone here, rene.
    – Shog9 Mod
    Commented May 1, 2018 at 2:36
  • It sure was @Shog9, it sure was ... thanks for pointing that out to me, appreciated.
    – rene Mod
    Commented May 1, 2018 at 6:30

You must log in to answer this question.

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