The business of software

Inspired by a talk I gave yesterday at the BOS conference. This is long, feel free to skip!

My first real job was leading a team that created five massive computer games for the Commodore 64. The games were so big they needed four floppy disks each, and the project was so complex (and the hardware systems so sketchy) that on more than one occasion, smoke started coming out of the drives.

Success was a product that didn't crash, start a fire or lead to a nervous breakdown.

Writing software used to be hard, sort of like erecting a building used to be hundreds of years ago. When you set out to build an audacious building, there were real doubts about whether you might succeed. It was considered a marvel if your building was a little taller and didn't fall down. Now, of course, the hard part of real estate development has nothing to do with whether or not your building is going to collapse.

The same thing is true of software. It’s a given that a professionally run project will create something that runs. Good (not great) software is a matter of will, mostly.

The question used to be: Does it run? That was enough, because software that worked was scarce.

Now, the amount of high utility freeware and useful free websites is soaring. Clearly, just writing a piece of software no longer makes it a business.

So if it’s not about avoiding fatal bugs, what’s the business of software?

At its heart, you need to imagine (and then execute) a business that just happens to involve a piece of software, because it’s become clear that software alone isn’t the point. There isn’t a supply issue–it’s about demand. The business of software is now marketing (which includes design).

The internet has transformed the software industry in two vaguely related ways:

1. It makes it far more efficient to communicate with people who might buy your software and,
2. It enables software’s most powerful function: communication between users

Let’s take them one at a time:

COMMUNICATE TO USERS: As we’ve seen in just about every industry, marketing involves effectively communicating a story about benefits to (and among) the people who will appreciate them. For software entrepreneurs, this means identifying a group of people who need the utility of what you can offer them and who are willing to give you permission to educate them about why they should buy. Without either element, the software is dead.

Over time, this permission becomes the core asset of the company. Selling upgrades, for example, is a great revenue path for software companies because of the ease of alerting current users about the upgrade.

I think niche opportunities for software are largely unexploited. There are countless tribes of people who would eagerly try and ultimately benefit from software optimized for their needs. A simple example: is a website for firefighters. They have tens of thousands of members and hundreds of contributing writers and bloggers. Is it possible to imagine software that would help a fireman during a typical day? If you could, here's a group ready to listen.

The amplification of tens of thousands of tribal niches online creates a significant opportunity for specialized software worth paying for.

So, the questions I’d ask:

  • Who can I reach?
  • Is the product so remarkable that they will talk about my product with their peers?
  • Can I earn and maintain permission to continue the conversation?
  • Once they learn about the utility offered, will they pay for it?

ENABLE COMMUNICATION BETWEEN USERS: This is the holy grail of software, and has been since multi-player games, email, ICQ and the web revolutionized the way we thought about computers.

It’s hard to imagine, but twenty years ago, this is not what we thought about when we turned on a computer or went to the store to buy software. (Yes, the store–that’s where you bought software). The purpose of software was to interact with a device, not another person. Old software had no network effect.

The network effect is the increased utility of a device that enables communication. One fax machine is useless, two are good, a thousand are a vital tool. One user of software is lonely, a million is a sea change in the way we communicate. Software enjoys a central role in the network effect–if you can improve productivity or satisfaction by connecting people, then people will selfishly help you do your marketing.

When building a software business that uses the network effect, I’d ask:

  • Does the connection this enables create demonstrable value?
  • Is there an easy and obvious way for someone who benefits to recruit someone else to join in?
  • Is it open enough to be easy to use but closed enough to avoid becoming a zero-cost commodity?

Worth taking a minute to think about that last question. eBay, for example, is a business because instead of developing an open protocol that would have enabled anyone to run an auction anywhere on any platform, Pierre Omidyar built a piece of software that was easy to use and open to changes in content–but required all the users to use his software. Compare that to the many pieces of software middleware that depend on Twitter content to work. Since the feed from Twitter is software independent, it’s very difficult for a middleman to earn the privilege of charging much at all. The user can easily switch to a different middleman with little or no hassle.

What you’re looking for in a connected world is a piece of software that sits in the middle of a sphere, enabling the user to make valuable connections, to build utility in a way that they couldn’t without you. That’s worth paying for and not worth switching out of.

LAST THING: Paying for it

In a competitive market where the marginal cost of an item is zero, the price will move to and eventually reach zero. If it doesn’t cost you (or your competitors) anything to add one more user, then in a truly competitive market, there will be a race to add users, even if the next one doesn’t add any revenue.

The goal, then, is to create a dynamic where the market isn’t competitive. Back to the eBay example: copying the functionality of their software is now easy and cheap. You could probably build something way better, in fact. But switching is hugely expensive for the user, because all the buyers and all the sellers are there, not with you. It’s not a competitive marketplace.

The other condition that’s necessary, though, is that users have to believe that payment is an option. The web has trained the vast majority that interactions online should be free. That makes the act of selling software, particularly to people who haven’t used it yet, really difficult.

There are two ways around this:
1. Free samples. Many software companies (37signals being an obvious one) have discovered the drug dealer model, in which the software is free for a month, connections are built, utility is created and then it begins to cost money.

2. Move to a platform where commerce is expected. They sell a lot of candy at bookstore cash registers, because wallets are already out and people are feeling in the mood for a treat to leaven their purchase of some intellectual tome. The app store for the iPad is like that. The expectation is that this software is going to cost money. It’s far easier to sell a serious app for the iPad than it is on the web, because the platform is organized around commerce.

A long post, sure, but I wanted to help you realize that just because you can code something that doesn’t mean it’s a good idea. The issues of permission, of networks, of scarcity and of the desire to pay are inherent in the business part of the business of software. I think we’re at the very beginning of the arc of software as business, and I can’t wait to see what you come up with next.