On StackOverflow

31 December 2013

After reading Michael Richter’s article on StackOverflow, I was reminded of many of the issues I have with the community, and why I myself eventually decided to leave.

The article accurately identifies and eloquently describes a couple of very clear problems with SO:

  1. It promotes poor pedagogy.
  2. It rewards “canned” answers in “popular” languages.

Those points are undeniably true, and it’s very difficult to argue that those practices are productive in the long term.

However, there are some arguments that are either incorrect or require more nuance.

Broken Scoring

In the article, Michael Richter states that scoring on SO “is simply broken”. His evidence is the fact that, despite not participating on the site for over two years, his score during that time increased by over a third (from ~9,000 to ~14,000).

While it is true that this is possible (I personally haven’t contributed anything in some time and have watched my score steadily increase), Richter’s argument provides no justification as to why the receiving points for old answers is bad. It seems neither unfair nor inaccurate to allow people to give points as they stumble upon a good answer. On the contrary, any scoring system that forbids a user from giving points simpy because an answer is old would seem unfair.

Petty Children

Richter also states that the SO community is comprised of “petty children”. His evidence for this is the fact that some users serially downvote many of another user’s answers just because they disagree with one particular answer. His example was an answer of his in which he takes issue with the conventional wisdom that go tos are universally bad. Since this is a generally unpopular opinion, some users took it upon themselves to “punish” him by downvoting as many of his answers as they could.

While it is true that such behavior is childish, it’s unfair to say that the majority of the community behaves that way. In fact, it’s unfair to say that the majority of the community would in any way condone those practices. There are even fairly well-enforced rules forbidding it. (Ironically, this is a product of the “authoritarian” regime which Richter bemoans. More on that later.) Therefore, it’s simply incorrect to state that this particular issue is a systemic problem on StackOverflow.

However, lack of maturity is an issue in the community, Richter just doesn’t provide a good example of it. How often have you seen*:

These are all examples of the pettiness that permeates dev communities, and StackOverflow is doing nothing to help the situation. In fact, it may be making it worse by giving the petty members of the community a major outlet.

I’m not saying that there’s anything that StackOverflow the company should do about the current situation. I’m not ever sure there’s anything they could do. Nevertheless, I think it’s a fair observation to say that the community is generally somewhat petty.

*To be fair, I was involved in almost all of those examples, and thus am far from impartial. Honestly, in at least one of the cases I was one of the offending parties. That doesn’t change the fact the behavior is childish and that it’s condoned by the community.

** I was really torn about this one. It’s a really solid answer. However, the user just comes off as pedantic and rude. I personally would rather someone just tell me to RTFM rather than have them say the same with 100 words and follow it up with a “Don’t thank me.” Then they couldn’t refrain from commenting to make sure everybody knew that they were not incorrect in their answer.

Creeping Authoritarianism

In this section, Richter decries the “meritous minority” who have forced their own standards on the community and have slowly started to suck all the fun out of the site. “StackOverflow was once fun,” he says, “it is no longer.”

First of all, it’s difficult to regard any semi-hipster argument as serious. You know what I mean: “[X] was sooooo much cooler before it became ‘mainstream’”. Let’s face facts: things change, communities change, you may like the change, you may not. No matter what happens, it won’t be the same as before, so let’s not waste time acting like it could have ever stayed the same.

Nevertheless, I feel there is a small, yet very important kernel of truth in this section: people are way too serious about StackOverflow.

There are clearly people that spend almost every waking hour on that site. There are people whose careers are affected by that site. There are people who spend hour upon hour trying to build their self-worth on that site. There are people trying to degrade other’s self-worth on that site.

It’s a free website that’s supposed to help people learn about programming.

Since when do people learn better with a somber face? Since when do people learn better when their every mistake may be criticized by a potential employer? Since when do people learn better when their teacher pounds their own chest? Since when do people learn better when they’re degraded?

I’m not certain if this general attitude was pushed by some “meritous minority” as Richter proposes. More likely, it’s just part of human nature. Regardless of how, why, or when it started, Richter was right about one thing: we all need to learn to laugh a bit more. Inability to laugh at oneself indicates an inability to reflect. And reflection is not only a necessary element of a good developer, it’s a necessary element of a good human being. As is a sense of humor.

Closing Thoughts

Despite disagreeing with Richter about why participating in StackOverflow is an overall negative experience, I eventually came to the same conclusion.

In my case, I became way too serious about the site before I was forced to take a step back and reevaluate what it was providing me. And what I wanted to provide to others. I honestly learned a lot during my time there. However, the negative encounters far outweighed the positive ones.

I would love to see a community develop where we could hold good, long discussions about difficult topics instead of repeatedly answering the same question Java on for-each loops. I would love to see the true teachers, those who can distill impossible topics to their simplest bits, truly rewarded, with real money instead of fake internet points. I would love to see students taking risks, trying new things, and knowing it’s okay to be wrong.

And I would love to see us all laugh at ourselves a little more.