This article is now in Russian!

Hey guys. Thanks for coming to this meeting on such short notice. There’s coffee in the back. Did somebody spot the token recruiter yet? And show him the door?

Okay thanks, now it’s just us. So I’ve called this meeting because: we’ve got a problem.

This programming thing is a lot of fun, right? We have been entrusted with the unique responsibility of making pretty much the entire world go round. (There aren’t a lot of industries that don’t need software these days.) And not only that, but we have a lot of fun doing it. And to top it all off–we have a wonderful community of people who do things FOR FREE like write compilers, web browsers, answer your questions on Stack Overflow, give free lectures at a meetup near you, write cool blog posts on exciting algorithms–all kinds of neat stuff. Overall, this is a pretty sweet gig.

So suppose this wonderful community has been a great help to you over the years, and you’re trying to figure out how you can help out around the clubhouse. Well, there are some things you can do. For example, you can critique a project somebody posted to HN. You can write a well-researched article on a topic that interests you. You can submit a patch that implements Boyer-Moore to a project that desperately needs it. (I don’t have time to go into it here, but BM is an algorithm that a lot of projects need. Also, it’s very cool.)

Anyway, these are different, right? I mean anybody can write an HN comment and it takes thirty seconds. Whereas not everybody can implement Boyer-Moore, and it takes awhile. Anyway, I brought a chart:

I mean, this isn’t news. It’s not a revelation that writing complex patches is more difficult than writing witty one-liners on the Internet. It’s also not a revelation that people who can write complex patches probably shouldn’t be spending time writing witty one-liners on the Internet. (They already know better; they just do it anyway. By “they” I mean “I”.)

No, here is the revelation. The revelation is that we are lying in the bed that we’ve made ourselves. Let me add a couple of things to the chart:

You see, you collect some form of Imaginary Internet Points. Probably many forms. You might be collecting karma on Reddit or HN, or you might have a blog with an analytics counter (If you are reading this article, I have earned 1 Internet Point.) But the higher you go up the chain of effort, the less Imaginary Internet Points you get. In fact, as far as I can tell, there is actually no widely familiar (to programmers) way to get Internet Points for writing the Boyer-Moore patches. You know, actual programming. I asked a lot of people if there was such a thing as “patch karma”. There probably is, but none of my friends have heard about it.

Once upon a time we were upset about this Zynga/Farmville/Gamification thing. About how these guys are using psychology and stuff to make people slaves to the game. And that was Really Bad (TM). And how it was Destroying The World. Or something.

Hello? Have we looked in the mirror lately? We have literally taken a group of people perfectly qualified to do actual things, that are way cooler, and designed a whole ecosystem that incentivizes them to write witty one-liners on the Internet. Just objectively, that is really stupid. Also, it sounds a lot like Being Evil.

Lest you think I am exaggerating a bit with my made-up numbers and imaginary log scales, this is currently the top comment on on one of the biggest HN stories for the day.

Truly amazing and inspiring. I was worried that Snowden’s father was going to continue, through his attorney, to try and dissuade his terrified son from persisting in his convictions; thus, I was preparing to be disappointed in his father’s loyalty. Instead, I was greeted with a well-thought-out letter of encouragement to who I’m sure is a very scared 30-year-old. My spirits have been lifted. Thank you, Lon Snowden, for making the right decision.

I mean, this is a fine comment. There’s nothing wrong with it. But nobody’s life was enriched by this comment. It provides no insight, no additional information, no unique perspective. There’s no real reason for this comment to exist. Meanwhile the author is a person who enjoys statistics, and is pursuing a BS in Biochemistry. The author has a huge, unique potential to contribute to our little programming community, and under the system we’ve constructed, with the incentives that we’ve built, this person has decided to spend time writing this nonsense instead of doing something useful.

Look, I am the biggest offender here. I’m not trying to pick on people. The only reason I haven’t trotted out my own witty little comments as examples is that they are so unbelievably bad that you would think I wrote them specifically to use in this article. Really.

Guys, we have built a bad system. We hand out internet points for comments that are of no value to anybody. Hell, we hand out points for submitting links to content. That is such a low bar of effort, I didn’t even include it on my chart. Where’s the Internet Points for actually writing a good article? Where’s the Internet Points for writing a patch?

Every time I hear “Google is taking smart engineers and putting them to work figuring out ways to make people click on ads”, I want to slap that person. Because what are you doing? You’re writing a comment on the Internet. You actually are a smart engineer who actually is coming up with clever ways to distract other engineers, right at this very moment. Spending time trying to distract other engineers is a lot worse than spending time figuring out how to sell an extra pair of sneakers. Somebody might use the sneakers.

There’s an old story attributed to Bill Atkinson back in the early days of Apple. The Pointy-Haired Bosses got it into their heads to count the lines of code that each developer wrote. Bill was doing some rewrite of QuickDraw that was 2,000 lines of code shorter than the old version. So when the form about how much code you wrote was passed around, Bill cheerfully reported “-2000 lines.”

The system we’ve built is every bit as bad as counting lines of code. Actually, it’s worse: counting LOC is arbitrary, encouraging witty one-liners is actually bad. Maybe it can be fixed–maybe we need “patch karma”. Maybe it can’t; maybe we should pull a Bill Atkinson and start proudly reporting that we’ve collected -2000 Internet Points this week. Maybe we need to just scrap the whole idea. I’m not exactly full of answers here. What I do know is that the current system is nuts. It takes people who could have done something useful in their spare time today and encourages them to write 5 NSA comments–that will convince exactly nobody–instead. It reduces the utility of every member of our community. It’s a net negative on the world.

We should probably do something about this.

/ consult for your company / speak at your event? Good news! I'm an iOS developer for hire Contribute to the coffee fund so I can write more like it.