Chris Martin

White elephant

It has been about a year since I wrote the Stack Overflow answer that I later turned into the blog post Elephant variable reassignment. I got a lot of mixed feedback on that writing. Most importantly to me, Julie absolutely hated it. It took me far too long to come around to seeing why people described it as "mocking" and "bullying," but I think I can finally explain my mistake now.

Two things I did in that Stack Overflow answer:

  1. I wrote an answer that I knew the asker would not understand or find immediately useful.

  2. I included some jokes.

Neither of these is a necessarily a problem by itself, but the two things do not combine.

Positive humor incorporates the audience. Even in a non-interactive medium, it should feel like you and I are in on the joke together. You cannot do that with technical writing that is over someone's head. Jokes are appropriate when the reader has a full understanding because it feels like laughing along. Jokes are inappropriate when the reader is confused because it feels like being laughed at.

Humor can be pleasant to people who are already comfortable. Humor is likely unpleasant to people to are already uncomfortable.

Not only did I completely fail to bring the asker in on the jokes, but the context then amplified the result. That answer got a pile of upvotes, which produces the experience of a room in which everyone is laughing but you.

It doesn't really matter if the joke wasn't mean-spirited, it doesn't really matter if the joke wasn't directed at you. The intent is irrelevant. Nobody wants to feel like the only person in the room not laughing.

I write about Haskell and related topics; you can find my works online on Type Classes and in print from The Joy of Haskell.