Monday, June 13, 2011

It's official: developers get better with age. And scarcer.

As a senior developer I get asked sometimes if constant change of technology is making me, well, obsolete. Personally I don't have problem with high pace of new technologies coming. I actually enjoy learning new stuff.

But the question remains: how do developers cope with onslaught of new technologies with age?

This kind of data is hard to come by, but thanks to almighty Stackoverflow ands their wise decision (thanks Joel), to make this data publicly available we can mine this data to our collective benefit.

With a simple bash script to download the data, a small Java program to extract the stats and Google Docs to make the graphs, I was able to produce some interesting stats.

I pulled in data of about 70.000 developers whose Stackoverflow reputation is over 100. On average 53% of them have their age listed in their profiles. So the sample was 37.400 users.

In the graphs I only included data if there were at least 100 developers in the age group. Full stats and interactive graphs are available here.

First interesting statistic is how users are distributed by age. On the graph we can see a textbook example of a bell distribution curve. I knew that with age coders tend to switch careers, but I was surprised to see the size of the drop. After the peak age of 27, number of developers halves every 6 to 7 years.

Second stat that I find most interesting is how Stackoverflow reputation relates to age. There is a near-linear increasing trend: the older the developers are the higher their SO reputation is. To see the reason behind this let's look at another graph:

Senior developers ask less questions and provide more answers. A 40-year old coder provides about 100 answers, roughly double the answers of his half younger colleague.

Now, does quality of posts change with age? Do senior developers provide better answers?

Stackoverflow awards each answer upvote with 10 reputation points, while questions get only 5 points per upvote. To similarly calculate upvotes per post I took this formula: upvotes per post = total rep / (10 x no. answers + 5 x no. questions ).

With this we get a graph of upvotes per post:

From this graph we see that quality of posts does not significantly change with age. Number of upvotes varies about 10% across all ages. So, senior coders earn their higher reputation by providing more answers, not by having answers of (significantly) higher quality.

Coder stats - highlights:

  • Number of coders drops significantly with age. Top developer numbers, at age 27, drop by half every 6-7 years.
  • Developers in their 40s answer roughly twice as much and ask half the questions compared to colleagues in their 20s. It seems younger generation learns and older generation teaches.
  • Quality of posts, i.e. upvotes earned by post, only slightly increases with age.
  • Seniors earn their high reputation by being more active than younger developers.

I'd like to see your take on this subject. Comments are welcome.

Until next time,

Peter Knego