There was a very interesting post on Hacker News about an open source developer named Marak. Marak declared that he would do no more work on his project, because he was sick of “supporting Fortune 500 companies with free work”.  

Open source

As far as I know, the genesis of open source software started with Eric Raymond (of Hacker’s Dictionary fame) and Linus Torvalds (of Linux and Git).

The main advantages of open source are 1) the software can get more contributors than you could conceivably pay, so the open-source version of software improves faster than an equivalent paid product 2) full transparency into what the code is doing 3) it’s free and 4) because of 1, 2, and 3, it gets rapid adoption. And since software tends to interoperate with other software, open source code is likely to be on both sides of the transaction.

And yet, if you spend your time writing exclusively open-source code, you end up on beans & rice. How can something so valuable be worth so little, at least in the traditional renumerative sense?

Commoditizing your complements

Poor ramen noodle eaters are not the only ones writing open-source code. Plenty of big companies do it too - in fact, the typical open-source project is sponsored in some way by a large tech company.

Joel Spolsky, as always, has a good reason for why companies might want to do this. Companies are trying to increase demand for their own products, and they know that if they can cheapen any complementary products or services, demand will go up. You can read some nice examples that Gwern has collected here.

But big companies aren’t just commoditizing when they build. Facebook, for example, owns a frontend Javascript framework that most modern tech companies use. Why bother? Facebook already has a great reputation among software engineers, but they’re pouring millions of dollars into maintaining a framework not just for themselves but for the entire software ecosystem. Do they really get value in their recruiting from all that investment?

I don’t know if I have a good answer.

Information

Software is kind of a weird product. In some sense, all it is, is information. You have a screen in front of you that displays information, in the form of pixels with certain RGB values. And in the end, no matter how complex the code gets, all I’m sending is what pixels to display on your screen.

Copying the pixels costs me nothing. Sending the pixels to you (thanks to the internet) costs me some trivial cost, less than a penny. And that means, generally speaking, that software has an initial cost but minimal, if any, ongoing cost to share. Well-written software doesn’t ever need to be written again, you just keep adding appendage after appendage until the.monster is large enough.

I can sell the software, but programs are one of the few things that you typically sell based on the value it provides, rather than the medium it comes in. Tax software is about $100. “Big data” software could easily be 1000 times as much.

Tax programs are priced the way they are because the competition (hiring an accountant for a short gig) costs slightly more. Software solves real-world problems, and competes on problem space, even if the solution is always in pixel form.

But the value of open source software isn’t zero. It’s just a discontinuity in the value / cost curve, and so people don’t know how to reason about it.

I suspect the biggest reason for building open source is the most boring - open source developers get a sense of accomplishment. If someone uses your project, stars your github repo, thanks you for your service, etc. it feels good. Many programmers live online, and social approval indicators on their software output helps build reputation and credibility.

In that sense, open source code doesn’t have to be paid - you pay the developer by honoring them when you use it.

The next most common reason for building open source is that it’s used as a vector for forward sales. You provide some software for free, then hope that the service you sell on top (which requires the software) is the thing you can get paid for.

Implications for Sudopoint

If you followed the first link in the post, you may have noticed that the open source developer who was complaining actually released a library *for creating fake data. *Basically, a programmer’s version of Sudopoint. Whoops.

If an open-source developer version of Sudopoint was so frustrating to maintain that the builder quit in a blaze of glory, does that have implications for my little entrepreneurial project?

The honest answer is I’m not sure. I suspect that we have slightly different customer bases (his are developers, mine are people trying to demo / sell software). And different distribution mechanisms (his is github / NPM, mine is direct sales and to a lesser extent, this blog roll). We also know of severalcompetitors in a similar space - surely they aren’t all tightening their belts?

But it remains to be seen how monetizable Sudopoint will be. And given the new gap in the open-source world, it might actually be worth the investment to start a few open-source initiatives ourselves. Stay tuned!