I recently experienced one of my most negative interactions with the humans of StackOverflow. I try not to rant or rave on my blog as much as possible, but I simply cannot let this go. It all boils down to this:
StackOverflow is full of children!
Allow me to start with some background. I visit StackOverflow as part of my morning caffeine routine. I open each of my favorite tags in their own tab so I can triage the questions that have come in since I last checked:
I go through every question that I have not read previously (as indicated by the change in link color). Then I triage. If it looks like a duplicate, has poor formatting, or needs more information, I take what I believe to be the appropriate action. If I know the answer to the question, I will answer it. Especially on the Chef tag, I have a fairly deep knowledge on the subject. If I do not know the answer to a question, there is a good chance I can poke someone who does. Here is an example transcript from such an interaction:
One of my coworkers later came along and answered the question. Cool! Community! Yay!
Because of my love for the Chef community and daily routine, I am one of the top All Time answerers on the "Chef" tag:
To clarify, I am not trying to boast or brag. Honestly, I do not really care about reputation points. By this graphic I am trying to demonstrate that I care about the Chef and the StackOverflow community. I try to do as much as I can to push it forward.
Throughout the day, I will routinely revisit StackOverflow in my spare time. Typically, I see responses to a few of my inquiries, perhaps an upvote or two, etc... However, today I got this:
For those that want to read the entire thread, click below but the title was How to deal with a 'stolen' answer?. Wait, what? I am being accused of stealing someone else's answer, behind my back, on a completely different thread.
Here is what the accuser claims happened:
- I answered the question before him, citing that the user was using the incorrect attribute. But I only corrected one of the attributes, not both.
- After the accuser posted his/her response after mine, I immediately stole the answer.
To draw an anology, I bought a pack of gum from the grocery store, realized it was the wrong one, and then stole the accuser's gum and ran out of the store.
Here is what really happened:
- I was answering multiple StackOverflow questions in the morning and spotted the OPs problem.
- I posted a partially-correct solution (although I believed it to be fully-correct at the time) in a rush.
- The OP left a comment on my answer, and when I checked back later, I realized I had made a mistake and fixed my answer.
To draw an anology, I bought the wrong pack of gum from the grocery store. The cashier asked me to come back to the register to get my receipt and I noticed the pack was incorrect, so I exchanged it. The fact that the other "shopper" in a different isle purchased the same pack of gum seems irrelevant to me.
Needless to say, I was/am incredibly upset at the accusation that I "stole" an answer. To be completely honest, I did not even look at the accuser's answer! I knew mine was correct - I know how Chef attributes work and I know how cookbooks work. I do not need to look at other answers to craft my own. I simply made a mistake in my morning rush and corrected it later.
After reading through the numerous comments on the meta thread that range in severity from "your wrong" to "burn him at the stakes!", I realized I needed to make a public statement about the issue. This is the story. This is what happened.
But I cannot just let things go there. I am a highly analytical person, and I believe in numbers over feeling. I wanted to learn from this experience, so I did some research. What I found was very intereseting.
In the accuser's rather short public history, I see many of these:
According to the documentation, a "Serial upvoting" is when a large number of people have upvoted an answer in a short period of time and StackOverflow believes them to be spam. Not to jynx myself, but this has never happened to me in my much longer public history. Seems a bit fishy to me, especially since it happened to this user multiple times. I do not want to make an accustation, but this seems like the same kind of behavior that would be exhibited if someone were using a bot to upvote their own answers to boost reputation...
Moving along, let us look at some other statistics. First, let us look at the ratio of up/down votes for the accuser:
So this person downvotes more than he/she upvotes, primarily on questions. I, on the other hand, downvote much less and focus more on answers:
Ironically, I have less absolute downvotes that the accuser, even though I have twice as many total votes.
This is interesting because another common ploy StackOverflow reputation hogs will use is the "strategic downvote" (I have even seen this recommended on meta.). Basically, you "strategically" downvote a completely or partially correct answer so that yours appears more appealing to the OP. Again, I am not saying this is what this particular user is doing. I am simply stating that I would expect a similar voting trend on a user who was playing such a game as what we see here.
So that made me feel a bit better. Again, no accusations, just observations of interesting anomalies.
I have compiled a small list of things that might clarify how I view StackOverflow. You may not agree with me (and I do not think former versions of myself would agree with me), but this is my list:
- An unchosen answer is not wrong. At the end of the day, the OPs are all human, and no matter how much time or effort you put into an answer, they might not like it. And that is okay.
- Worrying about numbers is dumb. If you get pissed off when someone downvotes your answers or when you "miss out" on points because the OP did not choose your answer, it is my opinion that you are using StackOverflow for the wrong reasons. StackOverflow is a community portal for sharing knowledge. It is also just as much about the future as the present. If you are a software engineer and you Google an error message or output, the first result is almost always a StackOverflow answer. Sometimes the "chosen" answer is not necessarily the correct answer - and that is okay! It is not about your personal reputation - it is about your contribution to the greater community.
Your answer could have just saved a fellow engineer hours of debugging. Does that not feel more rewarding than an arbitrary 15 points that actually mean nothing? If you are answering questions for the right reasons, you will get that score you so desire.
- A partially correct answer is still correct. If you come across an answer to a question that is only partially correct (or an answer that used to be correct, but a better answer now exists), you have two options. The first is to post your own answer and say "Billy's answer was correct until Ruby 2.0, but now the library is blah blah". Now, when a future reader comes along, he/she can read both answers and decide which is best for the situation. The second (and my preferred) method is to edit the existing "correct" answer to add additional information. It is important that you do not remove the original answer, but rather add additional context and supply the new answer at the end. I prefer this method because a future reader need only look at a single answer.
- Talking about people behind their back is rude. This is just a general life rule. Avoid gossip, and if you have a problem, talk to the source. My contact information is very public. If you need to get ahold of me, do it. If you have a problem, we need to talk about it. Stop acting like a tattletale; that ended when you moved out of your parent's house.
- This about everyone else. StackOverflow and similar sites are not for you. They are for everyone else. They are community sharing and knowledge collaboration. It is not a resume-builder, expertise-prover, or self-esteem booster. Stop it.
I would like to share slashmais's comment from the "stolen answer" thread:
The correct attitude is that it is actually encouraged that you correct your answer based on other answers, even cutting and pasting from such answers to yours, the net result is that your answer becomes more pertinent and useful. Do not be a rep-whore moaning about rep if your contribution is actually used somewhere, this whole site is based on altruism and pay-it-forward ...
I believe that is how we should treat StackOverflow.
I just wanted to close by saying - I am by no means perfect. I have made "StackOverflow mistakes" and violated my own observations in the past. This is a list of things that I have learned, and I am never done learning.
For those intersted in the original links:
Seth Vargo is an engineer at Google Cloud. Previously he worked at HashiCorp, Chef Software, CustomInk, and some Pittsburgh-based startups. He is the author of Learning Chef and is passionate about reducing inequality in technology. When he is not writing, working on open source, teaching, or speaking at conferences, Seth advises non-profits.