July 17, 2015

How StackOverflow is encouraging laziness

First of all: this post is purely opinion based.
I have no hard evidence to stave my claims and they are based solely on my own observations over the years.

A bit of history...

Before the internet was available for everyone, developers were forced to figure out things on their own.  Sure there were bulletin boards, but one had to be able to access them.  Books as well, but you had to have money for those.  You could xerox some pages from a friend or colleagues' book if you knew someone. An ancient form of piracy!

If you were doing Pascal or Delphi at that time you could obtain a copy of SWAG (not what it means now! It stands for SourceWare Archive Group).  This was a downloadable, self-sustained library containing a huge amount of code snippets to help you with solving a lot of common issues.  The last version was from '97 (am I that old already?).

The SWAG was my personal bible for several years and I learned so much from it.
Thinking of it: I still have my Ralph Brown Interrupt List book laying around somewhere, clocking in at several kilograms.

Just to say that: We had to figure out things for ourselves.
You had to learn and practice a lot - which was good - but it slowed things down.
Everyone was forced to invent wheels and so on.

Let there be internet!

Then the internet came and it changed our lives.  Suddenly you had this vast and unlimited
resource of information.  And there were all these other people looking into the same thing and writing articles about them.  A miracle!

So awesome!
Wanted to know something? Ask Google, someone probably already did that or could at least help you.  You even had a couple specialised sites like Experts-Exchange.  If you knew how, you could always get to the answers without paying :o)

Then around 2010 I discovered StackOverflow and wow, what a joy.  Still practicing what I've learned all those years ago I turned to it often, but didn't feel the need to register or participate.
Eventually my competitive side caught up and I decided to jump in and register.

Even after that I've been more of a reader than a replier, so I didn't gain much reputation over the years.  But because I was spending more time on the site I started noticing some things.

Initially the biggest part of the questions were very challenging and about serious problems and so  on.  Sure there were the easier/starter questions, but they were posed only once (or quickly shut down with a duplicate label if not).

Over the course of the last years that changed.

I started to notice that questions became more trivial, stupid even.
Often they could be solved by a 3 second trip to Google or a glance at the documentation.
Also the number of repeat questions has been steadily going up.
For example: The last 2 months I've noticed a question about "Headers already sent" in PHP 5 or 6 times.


Thinking about this I realised that this whole reputation thing is a double edged sword.

Initially it drove people into participation.  Competitive behaviour has always been there and always will be.  It was simply the best solution to get the site going.

Fortunately the people answering questions back then were serious about providing the world with a great programming resource.  They were awesome in their answers and vigorous in their cleanup of junk questions.

With the big influx of new people - Everyone can program remember? - that has been changing.
Instead of flagging questions as duplicate (and thus trying to teach newcomers on how to correctly use the site) you had people jumping on the easy questions and answering them.
The question already had an accepted answer even before it could be flagged, all for that little gift that is more reputation.

This seems to result in lazier and lazier programmers in my opinion.
Well it's not just SO, I have noticed a big trend towards "doing as little as possible" the last couple of years, but still.

People come and ask one of those idiotic questions - something they could've solved themselves with about a minute of effort - and actually expect an answer and having their work done for them.
Not only that: Often after they get a reply they would continue asking more in the comments before handing out the accepted flag, mor than once unrelated to the original question.
I've witnessed a couple occasions where people answering were asked to write the entire piece of code.

The worst thing is, current responder behaviour on the site actually encourages this.  People do answer and do write that code.  We shouldn't be! We should be asking the OP things like:

  • What have you tried? 
  • Have you looked at your logs for an error message? 
  • Did you take a look at the documentation?
  • ...

Not provide them with an easy way out! That only encourages them the next time!

In my opinion the original purpose of Stack Overflow is about trying to educate your fellow developer.  Teach them, mold them, help them grow, guide them towards becoming a better developer.

Unfortunately it seems most people are thinking about their own reputation.
We are slowly losing the fight to laziness people, it's time to do something about that!


So... next time you see one of those questions:
Don't answer, help them discover a solution themselves by guiding them.
Don't go for the easy 15 points, as hard as that is.

And for those only wanting the reputation?
In my opinion there should be an "answered a lazy question" kind of penalty.
If your answer gets flagged for that 3 or more times you would lose double the reputation that you gained with it.