Understanding free software

A cup of coffee costs far more than a glass of water.

That’s true even though we can’t live without water. (Most) people can live without coffee.

It’s true even though creating the infrastructure to purify and deliver clean water costs billions of dollars.

The critical reason for the difference is marginal cost.

To deliver one more glass of water costs the town virtually nothing. Less than a penny.

To deliver one more cup of coffee, though, requires more beans, more roasting, more electricity, more cups, more oats, more cows, more staff… add it all up, and Starbucks couldn’t possibly profit from selling coffee for a nickel a cup.

The first thing to understand about free software is that the marginal cost of one more email, one more download, one more bit is vanishingly low, close to zero.

Given the low incremental cost of another user, it’s likely that if that were the only factor, most software wouldn’t be a very good business, because it costs a lot to develop but market forces would keep pushing the price low.

The second factor is lock-in. Unlike coffee, software rewards users who stick with it. Over time, the software you use becomes more familiar, it opens the files you created yesterday and it becomes harder and harder to switch. As a result, companies that make software work to create the conditions where people are encouraged to start right now, and only later discover that it’s difficult to switch.

But the real miracle of modern software is the network effect. Simply put: the software works better for each user when other people use it too. The network effect dramatically rewards head starts. You want to use the same word processor as your peers, because opening their files is part of your job. You want to be on the same phone system, the same social network, the same protocols.

Sometimes, software is built in community, by teams, and often called open source. These projects exist to solve a problem and serve the user. But sometimes, software is a business.

A community-built open-source project can thrive on free. But software can also do a lot of good work when the software creates enough value that people will choose to pay for it.

And a business-led software project has similar choices to make.

And when all three pieces come together, we’re left with two extremes most software businesses face:

  1. Free software is the best way to get a head start. The low marginal cost of new users means that you can get big fast (100,000,000 new users for Threads in one week!). But, and it’s not just a but, it’s the whole point, some companies then choose to treat these new users not as customers, but as the product.

    Lock-in makes it hard for them to leave, the network effect keeps the system growing and now you can make money from other means. In particular, you make money by serving someone other than your free users. As you get bigger and bigger, you make the product just a little bit worse, rewarding your sponsors or your agenda as you go. (Important exception: when your nearly free users pay enough, in enough numbers, that you can happily offer them the support and service they need…this takes relentless focus and care.)
  2. Expensive (not free) software rarely gets you magical world-sized scale. But it requires you to be in complete alignment with your users, who are also your customers. That’s the point. Instead of locking people in, you can focus on rewarding them for staying. This is how just about every other business in the world works, and it can work for software too… if we decide we’d like to be in alignment with the people who use what we make.

For a business, then, there’s the path of free or nearly free, with the goal of making money some other way, or the path of expensive, which aligns the company’s decisions with those of its users.

And for community-driven software, there’s the magic alignment that comes from open source.

There’s not an obvious answer, but there is a clear choice to be made.