Developer Karma: Repaying the debt

Open source is a fantastic thing. Wether the motivation to publicly share work is driven by altruism, a desire for recognition, or as a means of creative expression, anyone wishing to learn benefits.

It’s more than a way of working, it’s a movement and one that stretches beyond programming. Wikipedia, a product itself of the open source movement, lists the numerous inspirations that the open source movement has inspired.

As developers we benefit from the work of a minority, without them asking for a single penny.

Take, take, take

Take Stack Overflow for example, the Q&A forum. I use it a lot, and I trust the quality of it’s answers over other resources. If I google something and another link appears above the Stack Overflow, I tend to just go with the SO link.

I use GitHub, I use NPM and Bower, etc, etc. Every time I touch a project, I’m relying on hundreds of gulp packages, all created for free.

Credit CommitStrip.com (https://www.commitstrip.com/en/2014/05/07/the-truth-behind-open-source-apps/)

I want to see just how much I rely on the community. Calculating the specifics is hard, but I can do some fairly loose and conservative estimates. On a typical project, lets assume the following:

  • I read 3 stack overflow answers (at least)
  • Used 30 NPM modules (have you ever seen how many dependencies your dependencies use?)
  • Used one public 1 github repo for a plugin of some sort
  • Read 1 blog post
  • Use 1 code sample

I use on average the work of 36 open source contributions. It’s impossible to know just how many developer-hours went into all of that, but its impact is huge.

Repayment plan

I’m going to give back at least as much as I take, I’m going to set myself a measurable target and hold myself to it.

When updating an NPM module I created last year, I noticed that it had been downloaded 295 times. To me, this was a huge number. I’d made something that 295 people had actually found useful. I’d given back one tiny piece of code, for all the hundreds, if not thousands of pieces I’d taken.

The download activity over time for my first NPM module.

But it’s only a start, and something I should expand on. So I’m going to set myself the following target:

  • 1000 module downloads / repo clones a year
  • Increase my Stack Overflow rep by 500 a year, forcing me to answer more questions
  • Write 1 blog post a month on a problem solved

This is small time stuff, it’s not thought leadership stuff, it’s not worth publishing, but it’s a start. And someone might find it useful.

I’ll hold myself accountable, I’ll use the github api, the stack overflow api and the NPM documentation to collate my contributions and make them public.

It’s a start. Hello, World!