I have been a member of Stack Overflow for a long time now, asking the occasional question now and then. But is has not been until the beginning of this year that I started being more involved in the community by answering questions. So far it has been an overall pleasant experience, and given I almost reached 10k rep. in one year tells me that most of my effort actually helped people out.
In this post I like to share my experience of being a contributor to this well-known community.
The Good
There are a couple of things I like about doing this. For one thing, I like sharing knowledge and helping people out by solving some of their problems. It does not take that much time (I do pick my battles though, I will came back to this later) and I love the times I learn something new due to other answers or the question itself. For example, more often than not there are different ways to tackle a problem and I've learned new or other ways of doing things on numerous occasions.
Sometimes I just don't know the answer but if it is about one of those topics I am particularly interested in I might fire up something like LinqPad or Visual Studio (Code) to try and solve it. I see it as a fun way of learning new stuff.
The Bad
If there is one thing that I have learned in this time is that asking a good question is an art. I think Jon Skeet summarizes the main points in this blogpost. For example, I often see questions lacking the proper context that is necessary for me to be able to provide an answer.
People get upset when their question is downvoted or closed but instead of editing their question based on the comments they almost all leave it as it is to never return to the site again. That is a pity, because I am sure most people genuinely want to help and do not close questions just for the sake of it. I wish every participant that has his or hers question closed or downvoted take the time to read this checklist and make another attempt.
I also quickly learned that answers providing a direction of thoughts or hints on how to solve the problem aren't as much appreciated as answers that literally fixes the problem at hand. Is that a bad thing? Not per se, I do understand that when you have a problem you want an answer that can help you out immediately. But there are times I think it would be better to discover the answer yourself using some tips and guidance so it leads to a better understanding of how things work. Asynchronous and parallel computing is one of those topics this really applies to.
The Ugly
It is not until recently that I became aware of the problems this community faces when it comes to being (un)welcoming to new contributors and the attitude of some contributors towards others. Sure, I have seen some ugly comments or unfriendly behavior but it never struck me as such a widespread issue. I know there are efforts made to change this, and it is not the goal of this post to address it but I sincerely hope that Stack Overflow gets back its reputation as the primary source for developers to get help on any programming related question no matter their skillset and knowledge.
Communication is key here. Negative feedback is a widespread issue on the internet nowadays and Stack Overflow is no exception. Sadly, the world of developers isn't always one happy community (The world of Open Source is another example). I rather try to gain a better understanding of the problem by asking questions about the question than to leave some snarky comment about the low quality of the question. We all had to start somewhere when we entered the world of programming so I keep that in mind.
My approach
I soon realized I did not want to spend too much time on checking the website for new and interesting questions. I decided that I wanted to put my effort in answering questions in topics I am interested in, or have detailed knowledge about. Therefore I wrote my own bot that posts questions having specific tags I am interested in to a Slack channel using an Azure Function. You are welcome to check it out:
Expecho / StackOverflow-To-Slack-Tag-Tracker
Azure Function that acts as a bot which creates notifications in a Slack channel about StackOverflow activity based on the question tags
StackOverflow -> Slack Tag Tracker
Azure Function that acts as a bot which creates notifications in a Slack channel about StackOverflow activity based on the question tags.
Getting up & running
- Create a new timer based Azure Function (for javascript). For instructions see the docs. I recommend a timer that will fire every 15 minutes, due to the api request limitations of Stack Overflow.
- Install the required node.js packages. Instructions can be found here. The package.json file is in this repository.
- Replace the default javascript code with the code in this repository. Then change the configuration to your liking*
Configuration
The configuration is defined using environment variables:
slackbot_username: "StackOverflow Tag Tracker",
slackbot_icon_emoji: ':incoming_envelope:',
slackbot_token: '<token>',
slackbot_channel: '<channel>',
slackbot_workspace: '<workspace>',
so_api_key: '<api key>',
so_tracked_tags: 'azure;asp.net-web-api|powerbi',
slackbot_username
The bot account name
slackbot_icon_emoji
The Slack…
Anyway, don't let the bad & the ugly deter you from making Stack Overflow a better place. There are plenty of opportunities to help people out because one thing is for sure, in our ever changing world there will always be a new source of questions.
Top comments (3)
Love the bot!
I left contributing there when I have noticed that there is a sexist bias where question asked by a female gets better treatment than a guy does. I mean this is reverse sexism trend going on there. I am done with SO now. I'd rather document my own answers in blog post instead of contributing to such places. But that's just me.
I am sorry to hear that, Mahesk. I am glad that I did not notice this so far. I do respect your decision to stop contributing to those places.