m3mnoch has a blog post about music being performance. He argues that music is and traditionally has been about performances. CDs and the like are and should be promotion material.
I, like m3mnoch, am a programmer. Functionally, this means I spend time taking what’s in my head and putting it down in code so that my company survives. The question becomes, how do I get enough money to pay the bills? To answer that question, I’m going to step back to quickly review a couple of models that people make money with.
The first way to make money is to directly exchange your time for money, in exchange for providing a service. This is the way we interact with many people: carpenters, electricians, and appliance-repair people. It’s also the way people and corporations interact with computer consultants. Musicians have performances - you’re attending the concert, and the musicians are counting on the fact that there are a lot of audience members. Enough work has to come your way and you have to charge enough for it to make a living.
The second way to make money is to create a widget. It’s the method that goes on when you buy something like a can of Coke, an appliance, or a B-22 bomber. You produce something and then charge money when someone buys the item. The key here that differentiates it from services is that no matter how much time you took to create it, your widget usually has the same value. If someone took different amounts of time to create two instances of a product, the product still (usually) has the same price.
Where does that leave someone like us who creates a program who’s value as a product is large, but value as a service is small? Most of our time and energy is spent creating the widget - the software to sell. If we give it away for free, we can’t eat. Unless your software is really complicated, you’ll have a hard time building a service model around it. In order to make money, you sell all or part of the widgit.
Here’s a brief summary of the models used by different software products. I’ll separate some of these into client/server models, because there’s a lot of software that works that way, from MMOs on down.
# Just Pay For It - You pay a fixed price for it. This is used by most games, and software such as Windows, Word, etc. You make money off of sales of the product. The model here is that you make a widget and then people pay for it.
# Free for non-commercial use, otherwise pay - this is used by some open source software products such as MySQL. In MySQL’s case, it’s done through licensing. MySQL has a commercial licensed version under the LGPL (which allows commercial companies to use it) and a free version under the GPL. In MySQL’s case, they both charge for the product and charge for service (support and the like).
# Client/Server, both not free (server is usually controlled by the company) - this is a specialized case of Just Pay For It. It’s what many MMOs use; you pay for the product, and then pay again for enhancements to the product and server maintenance (service)
# Client/Server, with the client free - the same as client/server above, but you’re not paying for the initial product, only for enhancements and maintenance (service)
# Client/Server, with both the client and the server free - this can get money in a few ways, and is highly dependent on building a solid community before everything is free. Survival is usually based on advertising or microtransactions. However, there’s nothing here to prevent people from starting their own server and competing with you - nothing but the community you’ve built. Build a strong community, and you will still make enough money to continue to enhance the product and survive. Fall below a critical threshold, and you’ll lose money (and thus the ability to continue working on it with any frequency) because you’ll be eaten by competitors making your product better than you do.
To summarize the above, you have to control at least some of what you do to be able to survive. You can build the widgit and distribute it, charging for it. You can charge for service and enhancements (with enhancements being a service, and occasionally a widgit). You can also control the community, and compensate for giving your software away by having so many customers funneled through your channel into the service that you make money that way.
To stray back to the main topic, how does that differ from CDs that musicians put out? Sometimes they’re promotional items, sometimes they are charged for. However, musicians have performances. Only a small amount of software is not just a product - a pure widget. However, it’s just as easily duplicable.
Does that leave us with service-based software as the only option? Will software-as-a-product only survive because some of it is crucial to work (or school)? One thing is for certain: if you’re depending upon sales of your software to be able to eat, you have to charge for it, no matter how easily it can be duplicated. If you only sell the widget, and the widget is free, you won’t get enough money to be able to eat.
Unused topics:
Open source server version fragmenting (no clear control)
VCs - proving that you have a viable plan to make money is essential.