03 July 2013 by Published in: rants Tags:, , 40 comments

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:

Classes of contributions to the programmer community by effort, log scale

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:

Classes of contributions to the programmer community by effort + reward for contributions, log scale

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.


Want me to build your app / consult for your company / speak at your event? Good news! I'm an iOS developer for hire.

Like this post? Contribute to the coffee fund so I can write more like it.

Comments

  1. Wed 03rd Jul 2013 at 10:56 am

    I indulge you in your endeavour and contributed to your internet points.

  2. Alexis
    Fri 05th Jul 2013 at 3:09 pm

    This is not a witty one-liner.

  3. James
    Sun 07th Jul 2013 at 2:43 am

    Github’s little patch contribution calendar on every profile was a nice step in the right direction. An easily gamed, not particularly meaningful direction, but more right than not having one.

  4. Richard
    Sun 07th Jul 2013 at 8:51 pm

    Great post; thank you, and challenge accepted.

  5. Tue 09th Jul 2013 at 5:36 pm

    It’s a shame that none of the micropayment platforms like Flattr, etc made it to the level yet that it would be easy enough to give real $£€ patch karma points!

  6. back2dos
    Wed 10th Jul 2013 at 6:52 am

    I think you’re wrong about many things here. But most importantly:

    It is not the incentives that cause waste of potential. It’s the actions that are encouraged. Stackoverflow works on incentives but it discourages discussion and too much “witty comments”.
    The basic problem here is procrastination. It is a natural phenomenon that you can only fight at the source (mostly has something to do with how people organize their work and how they feel about it). There are many platforms that simply compete to become the playground for the procrastination “drive”. You can close all of them down and you will simply have people start doing the dishes and cleaning the office and reorganizing this and that. Or play Tetris or whatever.

    I am also just here because I have time to waste. At the time of writing this I have a couple of important design decisions to take, but I’d rather not and leaving a comment here helps greatly in bullshitting myself into feeling that I’ve done something useful.

  7. Daniel Cassidy
    Wed 10th Jul 2013 at 5:29 pm

    We could start by removing the comments sections from our blogs.

    Then I could be writing code instead of this dross.

  8. Wed 10th Jul 2013 at 7:33 pm

    There’s one thing : the graph for “reward for contribution” has the same shape as “people who can understand/appreciate the contribution”. So perhaps that is what we want to solve instead.

    (…now reads up again on Boyer-Moore..)

  9. wofywolf
    Thu 11th Jul 2013 at 5:56 am

    Standardised patch complexity values across public software projects.

    Eg: pick up a complex patch with a rating of 10, get 10 points when you complete it.

  10. Oleg Krasnianskiy
    Thu 11th Jul 2013 at 6:18 am

    The system is unimportant. The problem is not in the system, the problem is in the roots. We have to eliminate the sources of such behaviour.
    Otherwise if we change current system and introduce the patch carma, it will be exploited in the same way and new kind of problems will be introduced.
    Do not change the system, change the people.

  11. Thu 11th Jul 2013 at 1:08 pm

    Check out Ohloh.net which does just about exactly what you want.

    Only open source software in there, of course. And you get a rating for the patches you claim by user verification.

  12. solid
    Thu 11th Jul 2013 at 1:09 pm

    I really appreciate this article. I tend to read but not comment, seeking out those well-written and researched articles and ignoring the witty one-liners, generally entertaining much of the feeling that you encounter. I think this comment perhaps falls into that category of “having no real reason to exist”, though I felt it was important to encourage this line of thought. I too agree that something should be changed.

  13. Thu 11th Jul 2013 at 1:16 pm

    Yes yes, I agree. Here’s a patch for you.

    You can submit a patch that implements Boyer-Moore to a project that desperately needs it.

  14. Thu 11th Jul 2013 at 1:29 pm

    Two quibbles:

    (1) There is at least one site that seems to award “karma” for actual real-world code contributions:

    http://www.ohloh.net/

    I’m pretty sure there are others, and there’s no shortage of people doing one-shot comparisons.

    (2) I don’t agree that a well researched article is worth less than Yet Another Boyer-Moore implementation. A project is very unlikely to be helped by rolling their own Boyer-Moore implementation, and many projects are actually harmed by reinventing (inferior) wheels so much. By contrast, a single well written article can teach thousands of people a valuable new technique or warn them away from a catastrophic mistake.

    The difference is not whether something’s code or text. What matters either way is whether it’s fact-based, comprehensive, coherent, effective etc. HN comments are cheap not because they’re text but because they’re unresearched (often counterfactual) opinion about things that didn’t matter anyway. A new piece of working code is valuable not because it’s code but because it demonstrably achieves something. “Code more, write less” misses all the differences between types/levels of either.

  15. Karl
    Thu 11th Jul 2013 at 1:34 pm

    I might be off base here, but this sounds like a distinction like Arendt was concerned with: that the animal laborans will slowly overtake the place of the homo faber and thus alienate man from his public sphere.

    (Something like this summary, but that link is only beginning to touch the issue.)

    Why would we expect the average programmer to have a guiding sense of ethics or necessity when programming itself is a trained-skill that does not lead to a greater enlightenment, only a greater affective power? We consistently see that programmers overestimate their ability to solve the worlds problems, and we also see them offering up meaningless and misguided social and economic criticism, but we are unable to correct them on their own terms because their terms are technical and not meaningful politically, socially, and ethically. People like Steve Jobs seemed to offer up a guiding star (as the quintessential homo faber) leading the tech force to fetishize words like “design” and “experience”, but he never really asked for anything that could be considered humane beyond his empty rhetoric of “technology and the liberal arts”. Even your anecdote about Mr Atkinson betrays that he was concerned with the perfection of his labor (coding and such), but that does not imply he was mindful of the nature of his work within the political sphere.

    What the tech world needs is a greater dialogue with political and ethical philosophy (maybe in the university system? because it’s not going to happen in the markets) in order to focus and inform their work?

  16. Thu 11th Jul 2013 at 1:49 pm

    If you read this far and still didn’t look up what the Boyer-Moore algorithm is, Now is the time.

  17. Will
    Thu 11th Jul 2013 at 2:11 pm

    It’s called “spare time” for a reason. You seem to be implying that programmers should spend every waking moment of their lives cranking out code. Are we not entitled to spend some leisure time making idle conversation with our peers, like, well, every other group of people on the planet? If you’re addressing the fringes of the community who spend all their waking hours slacking off while pretending to do actual work, I’d argue that these people aren’t programmers anyway.

  18. Richard Smith
    Thu 11th Jul 2013 at 2:15 pm

    While the reward in internet points decreases, the reward in career points increases. Who really cares about internet points? We write the patches because we love it, and we get rewarded in career progression by having evidence of our talents and ability to put them to use.

  19. Thu 11th Jul 2013 at 2:15 pm

    Why don’t we create an HN like website for writing code. Essentially a member of an open source community would come and submit a need for a function. It tell us what goes in the function, what it should return, and the language necessary. In the “comments” solutions are put into place critiqued and updated, and everything is up voted.

    This lowers the bar of entry, increases the points for doing important stuff, and helps people learn. Email me if you want talk more. jonathan.barnes11 @ gmail dot com

  20. Thu 11th Jul 2013 at 2:25 pm

    I think I have to disagree, at least in part. As animals, we are used to having immediate physical metrics to help us figure out how important something is: What is this thing? Is anyone else interested in it? My spouse? Dog? Friend? The neighbors?

    I think that the comment sections on articles and aggregators like HN act as proxies for that, and can be used as quick filters for the level of engagement appropriate to the subject. And that directly helps me figure out how best to spend my limited time and capacity for learning new things each day.

  21. Francis
    Thu 11th Jul 2013 at 3:07 pm

    ramil: True, to an extent. But it doesn’t need to be. For example, if projects had automated performance tests, the Boyer-Moore patch would show up there. Major projects like web browsers or compilers or standard libraries could award “points” of some sort based on how much time / space you can shave off.

    Remember, there were dumb comments on the internet in 1985, too, but the average person didn’t read them. Web browsers and sites like Reddit (along with hardware and operating system advancements) made it downright easy for just anybody to read and appreciate witty one-liners. Programmers have generally failed at making it similarly easy for people to see value in more valuable work.

    As James pointed out, Github takes one step in the right direction (though they count simply “contributions”, and not the value of those contributions, like performance or correctness). StackOverflow is another system that tries to reward actual value, though in tech support rather than code.

  22. Thu 11th Jul 2013 at 3:22 pm

    You should also get minus points for not reading others witty one-liners.

  23. J
    Thu 11th Jul 2013 at 3:39 pm

    I agree that we are rewarding the wrong things, but I don’t think the problem is as serious as you make it out to be. Do you really think that commenting on a page is using up coding time? Do you see your whole day as coding time and every action in the day as taking away from that coding time? By your argument, anything that is not helping you code or strictly necessary to survive is a terrible thing and is bad for the programming world.

    If I hadn’t posted this comment, would I be using this time to code? No.

  24. Allen T
    Thu 11th Jul 2013 at 4:00 pm

    Given the number of job applications I’ve been filling out lately requesting a link to my github account, I would say that this problem is being slowly rectified, with money being the not-so-imaginary points.

  25. Thu 11th Jul 2013 at 4:25 pm

    Delightful post, but as others have pointed out there are points systems based less on dross and more on action and meaningful respect. I’d say your Github follower count is close to that. An algorithm based on Github stats might be more meaningful still: number of accepted commits to repos being followed by more than 10 people, etc.

  26. amanidroid
    Thu 11th Jul 2013 at 4:37 pm

    Back in the days of yore when computers lived in basements and were serviced by teams of priests in white lab coats an corporate executive noticed that the programmers would accumulate next to the snack machines and goof off. Using all the powers of thought imbued by his MBA training he decided that the company would save a lot of money in programmer hours by removing the vending machines.

    The result was that the help desk was flooded with requests for support.

    You see, while the programmers were talking about Star Trek and eating drek they were also comparing code print-outs and learning new techniques or what was wrong with their program.

    It was a way for them to socialize and it was important to their quality of life.

    You sir, are attacking programmer quality of life. Now, you have some options.

    A) Take off your pointy hat and stop trying to optimize the goodness out of our lives.

    B) Take off the coder hat and become a project manager.

  27. todd
    Thu 11th Jul 2013 at 5:31 pm

    hiring manager here. I can tell you that someone who patches, has active githubs, and could even tell me what Boyer-Moore is, has a ton more “hiring value” points than someone who is witty on HN. And gets paid more.

    Probably not what you’re looking for, but amazing – and provably so – programmers are rarer and more valuable than the snarky/occasionally witty guy on HN ever will be.

    Now, if they’re both

  28. Artjom
    Thu 11th Jul 2013 at 6:14 pm

    Thank you, I enjoyed reading this.

    And you’re absolutely right. This should be a wake-up call for us to realize that we need to utilize all the latent potential in the community in a more efficient way.
    I think back2dos is right about the procrastination, only that the root cause probably is the lack of a reward system for high-effort work.

  29. Roberto
    Thu 11th Jul 2013 at 11:28 pm

    Yet comment section underneath article.

  30. Marc
    Fri 12th Jul 2013 at 12:44 am

    Ego? There are numerous reasons people “contribute freely” online, and numerous reasons why they don’t. For me, unless it’s building a network I can cash in on later or get paid for it in the process why bother, but thats just my motivation (family to feed, bills to pay and I enjoy my leisure time). I see too many ego builders vs. altruistic contributions….just be honest about it with yourself so you don’t end up wasting your time! Times up…

  31. Fri 12th Jul 2013 at 8:40 am

    I KNOW I’M BREAKING “THE RULES” HERE, but Geekli.st does a pretty righteous job of trying to incentivise us engineers with those sort of Karma Points. I’d like to see a coding system operate more and more like people with blogs commenting and guest posting on other blogs. I think that’d be powerful.

  32. Fri 19th Jul 2013 at 5:36 am

    How about Coderwall? https://coderwall.com/welcome This seems to give you carma points for commits to github etc. Also supports teams.

  33. Lindsey
    Fri 19th Jul 2013 at 8:27 am

    Are you familiar with gittip which aims to reward individuals with more than just internet points it enables others to pay people for their contributions to the world. Which seems like a definite step in the right direction.

  34. Jon Hendry
    Sat 20th Jul 2013 at 8:06 am

    I noticed that mac-programming blog activity (longer-form posts) kinda dried up after Twitter arrived. Which is a shame, because Twitter is a very ephemeral medium, so the useful knowledge that is posted there is largely lost.

  35. Thu 25th Jul 2013 at 3:36 am

    Reminds me that Android tablets are seen as pocket video games wherein many games may be loaded in the console. Only because tablet as originally conceived was chosen to run iOS, a Windows Mobile competitor, rather than MacOS. I hope tablets as PC form factor that boosts productivity takeover from Atom Chromebook.

  36. Sat 03rd Aug 2013 at 11:37 am

    +1. I’m one of those too easily distracted programmers – I became a PhD student during the rise of social networks and the current reward system, though, so I’m not sure what’s more at fault.

    Do you really think that commenting on a page is using up coding time?

    For me, yes.

    Followup question: how was Usenet different?

  37. Wed 07th Aug 2013 at 4:58 am

    Fantastic post. Thumbs up!

  38. Mon 02nd Sep 2013 at 6:33 pm

    I am very impressed with the information presented here. I do believe that every developer/programmer should have side projects. It should not be about making them rich either! If you do something you love, it should not be a problem. Because the programmer is employed, there will be a need to hire a virtual assistant to assist with the administrative tasks of the side project. Some VAs are very knowledgeable in software and programming technology. One website that software developers can hire VAs is VAnow.net. It is one of best that I know has certified, skilled VAs.

Comments are closed.

Powered by WordPress