Question

As an entrepreneur/programmer who makes a good living from writing and selling software, I'm dumbfounded as to why developers write applications and then put them up on the Internet for free. You've found yourself in one of the most lucrative fields in the world. A business with 99% profit margin, where you have no physical product but can name your price; a business where you can ship a buggy product and the customer will still buy it.

Occasionally some of our software will get a free competitor, and I think, this guy is crazy. He could be making a good living off of this but instead chose to make it free.

  • Do you not like giant piles of money?
  • Are you not confident that people would pay for it?
  • Are you afraid of having to support it?

It's bad for the business of programming because now customers expect to be able to find a free solution to every problem. (I see tweets like "is there any good FREE software for XYZ? or do I need to pay $20 for that".) It's also bad for customers because the free solutions eventually break (because of a new OS or what have you) and since it's free, the developer has no reason to fix it. Customers end up with free but stale software that no longer works and never gets updated. Customer cries. Developer still working day job cries in their cubicle. What gives?

PS: I'm not looking to start an open-source/software should be free kind of debate. I'm talking about when developers make a closed source application and make it free.

No correct solution

OTHER TIPS

Because I don't want to feel obligated to provide technical support or offer refunds.

Sharing

Most of us make use of software that has been provided to use free of charge. As a result, it makes sense to share our own software free of charge as well. Basically, we are exchanging our software for the other free software but without the overhead of actually going through a transaction. There will be leaches who do not contribute, but since distribution is so cheap that does not matter.

Selling is Hard

Actually trying to sell software makes the process much more difficult as you have to market, collect money, and worry about the legal ramifications of selling to people. For a lone programmer this takes them away from what they really want to be doing. As a result they may release their program simply so that other people can have benefit even if they cannot.

A New Model

It might be argued that a new model of software development is arriving. The model of selling software is an attempt to take physical-world selling and apply it to software. However, software is not like the physical world. Because distribution is so cheap a couple of issues arise.

  1. Letting someone use your software is basically free for you.
  2. Attempting to prevent people who haven't paid for the software from using it is really expensive.

Under this view, attempting to charge per copy of the software is a losing game. Thus you should attempt to make money on software-related services, not software itself. Thus you might charge for a support contract, hosting services, etc. rather than the right to use the software itself.

Incidentally, this model is used by webcomics, web series, etc. which give the primary product away for free and sell related merchandise.

Releasing free apps and working on open source programs are great advertisements for selling a product, namely you. (Alternatively phrased: free apps are a loss leader for selling your time.)

There's also the concept of the "gift economy", where the more you give away the wealthier you are. Why would I not donate back to my peers/society at large when I have received so much from so many people?

Lastly, what other field allows you to directly affect the lives of millions of people by writing something that makes their lives that little bit easier?

I suggest that you watch this fantastic video to learn why money is often not the motivation for doing things: RSA Animate - Drive: The surprising truth about what motivates us

I recommend that you watch the whole thing, but it also directly answers your question around the 6:40 mark.

  • Some people write programs for the fun of it—selling it turns it into work.
  • Some people rank the number of people who use their programs above how much cash they get for it—selling it pushes down the first where they don't care much about the second.

I release my software for free because I have spent time and energy on it but have neither the time or inclination to market it, someone might-as-well benefit.

By personal philosophy is (and I do sell software too), "Competition makes you better".

If you can't create a product that blows the competition (free or not) out of the water you're going to be in trouble.

A lot of free apps are created by someone who is fully employed and has come up with an idea for an application that they produce in their spare time. That person doesn't "need" the money to survive.

A lot of times finding the mechanisms to market, sell and collect payment are just not worth the effort and sometimes individuals just enjoy offering something they thought as useful to the general public.

If you are competing with a free application then the best strategy is to make a better product. I've often purchased an application over using a free version just because it offered more features or was better implemented in some way.

There does come a point where enough is enough, and then there is the fact that it does take more effort to sell something even though it may be a small effort. I still need to come up with a way to collect money for example.

I think the reason I post free apps that are closed source is simply because I love full featured freeware myself, so I like sending it out to the world with the same idea in mind. When I can get a significant task done with a completely free software package it feels great, so I like to share that.

Really if the answer of 'why not make it free?' comes down to 'because you can get piles of money' then it all is about what your motivation for releasing some software is. Not everyone is motivated by more and more cash.

I see two main reasons:

  • An individual programmer may just want to be known and loved.

  • There is an alternate economic model behind the scene. Some famous examples: iTunes, Acrobat reader, Firefox, Ubuntu are all free but their promoters all make money with these products (selling entertainment, paid features, audience for search engines, support).

Why does anyone offer free advice here on Stack Exchange when some people make money answering technical questions? I think this points to a basic psychological need to be generous. Jorge Moll and Jordan Grafman, neuroscientists at NIH, have found that charity is hard-wired in the brain. See the Washington Post article ``If It Feels Good to Be Good, It Might Be Only Natural'' at http://www.washingtonpost.com/wp-dyn/content/article/2007/05/27/AR2007052701056.html

Both Kohlberg's theory of cognitive development and Gilligan's ethics of caring view people as interdependent and developing towards increased empathy and altruism. This behavior is necessary for humanity to survive and thrive.

Lewis Hyde says there are two types of economy: (1) The exchange economy (economy of scarcity), where status is accorded to those who have the most and (2) the gift economy (economy of abundance) where status is accorded to those who give the most. Examples of gift economies include marriage, family, friendship, traditional scientific research, social networks (like Wikipedia and Stack Exchange), and, of course, F/OSS.

IMHO, Eric S. Raymond and Linus Torvalds performed a miracle: transforming selfish programmers into generous programmers. This is very similar to how Elisha transformed 2,200 selfish students into generous people with the miracle of ``the feeding of the multitude.'' In II Melachim 4:42-48 Elisha must support 2,200 students. There's a famine. His students are hungry and selfish. Each of them has some food, but they refuse to share with each other. After Elisha distributed a mere 22 loaves of bread to them, they began to share with one another. Soon, not only are they all fed, but there's food left over. The true miracle is not that bread materialized out of thin air, but that those who were once selfish became generous, inspired by the example of one person's generosity. Something similar has happened over the last couple decades, as a result of the release of Linux and other free software.

I get paid enough at my day job as a programmer. I mostly code on my own little projects for fun. I release almost all of what I write on my own time for free and under a free/open source license because:

  1. These are fun projects (e.g. an interpreter for a simple language, a tool to clean up JavaScript code, various small scripts, etc.). These are not "enterprise" applications. Not even small applications home users need to get some job done or for entertainment. Okay, there might be a few people who might actually pay a very small amount for some of the tools I write. But really, it would be a trifling sum, and I really don't need the money badly enough for me to consider the effort involved in marketing and selling them.

  2. As someone growing up in the 1980s and early 1990s, and that too in a developing country, I understand how it feels not to have enough money for or access to the tools I need. Payment is a big hassle for a lot of people not living in the west, and even if it is possible, a few dollars can translate to a lot of money for a student on the other side of the world. If most of the people who might actually use these tools wouldn't be able to pay for them anyway, what's the use of charging for them?

  3. As other answers have already pointed out, my own projects, as well as the effort I put into any larger projects that are not owned by me, pays off for me as advertisement for my skills. Apart from such things as making me more liked by other people, it also helps me getting noticed by potential employers and thus helps me career-wise. A freely available software is bound to be better known and more widely used to something of equal quality but not free of cost.

As other answers already point out, if the efforts of a single or a small group of people who are coding in their spare time are threatening the commercial prospects of software written by people doing it to make a living - I think it is up to the latter to work harder to make their product worth spending money on rather than the other way around. If anything, it just sets the bar higher for quality software which is good for all concerned.

It's like saying giving away your old clothes to charity hurts people in the textile industry.

I've come across quite a few app where I ask my self "You are asking for $20.00 for this crap?" I know I can do it better and in order to "stick it to the man" I release it for free.

I understand that there is lots of time and money going into those apps but I also believe that if you are going to put out a product for sale, it should be top notch or just give it away.

Quality

Having the source code open, quality can improve drastically. Think other programmers improving the code, think automated source code analyzers.

Durability

Closed source tends to get lost when there is some better/more competitive product. Open Source can be shared forever.

Sharing...

is caring. Now everyone in the world is enabled to use the functionality in your app, including third-world countries.

Self improvement Feedback from fellow programmers is now more possible, is free and is offered by fellow programmers who actually care.

Freedom

I hate getting locked in by companies. Likewise, I don't want to produce software aiming for the same.

CV building

Instead of emailing a CV, you can now email a bunch of links referring to projects/patches I contributed. Cut the crap, no more bullshit bingo on the CV. Just a list of contributions.

Bible mindset

A greedy man brings trouble to his family, but he who hates bribes will live. (Proverbs 15:27, New International Version)

A business model based on selling apps is usually greedy, a business model based on free software and providing services with them less so.

Viral

Open source software is (depending on the license) more likely to get included in other software packages.

Decrease business risk

Basing software on open source components, decreases dependence on third party businesses. When a business goes down, your business is still able to gain support for the code/software. Android is a great example of how disruptive open source can be, and how current businesses carry higher risk when using certain non-open source software.

Fun

I have a project which is just fun to do. No need to require a business around it, with all the hassle coming with it.

Recognition

You can hardly be recognized by closed source. Open source opens up lots of possibilities to become recognized.

Create services market

Change the market from a per-copy based revenue model to a services-based revenue model. Example: Lots of software around the Google app engine stack is free as in beer. Google makes money from providing the infrastructure.

For the children

Piles of money disappear, but your shared source code never disappears. Future generations will be thankfull for your contribution.

Reinventing the wheel sucks

We stand on the shoulders of giants. What if Alan Turing kept his design proprietary? Would we have a software ecosystem like we have today?

Customization model

Give the software away for free, charge for customizations. For example, offer free CMS software but charge for specialized modules appropriate for custom business requirements.

Winning

Charge less for your product, and you gain customers. Going lower then asking no monetary compensation is hard. You increase chances to outcompete others.

Independence

Charging for software means becoming dependent on paying clients or paying advertisers. You might not want to need money from businesses with unethical practices.

Programming can also be a hobby

Many people treat programming as a hobby, writing programs for fun when they get home, and sharing them on the net, or participate in open source projects.

This is just like photographers like to take pictures and share them with the world on sites like picasa or flickr, and musicians that like to create music and share it with the world on sites like myspace.com or mp3.com, then some programmers also like to share their work with the world.

Software is free, because it's information. The expression is that "Information wants to be free."

Why is that? Why does information want to be free? Consider Stack Exchange. Do you see how Stack Exchange crushed ExpertSexChange? Why? Because the user interface is superior. What's the biggest way in which the user interface is superior? You can ask a question and get an answer without a credit card.

Money adds friction to the flow of information. Everything about charging money requires you to try to get a monopoly on information and then erect some sort of obstacle or barrier to the smooth flow of that information. It's the same with downloading a movie from the Internet. The movie is worth something, but charging for the movie adds friction to the flow of the movie's bits, and frictionless always beats friction.

Free software isn't about cheap bastards trying to ruin your business. It's about a fundamental law of information flow inexorably crushing the payware software business model. You can try to ascribe motivations to people, we can talk about joy and pain and morality if it amuses us, but the deep reason is that we have a system where information that is frictionless beats information that has friction, and inexorably the frictionless information wins.

Frictionless software beats software with friction. Sure it may be deficient in other terms, but the power of frictionless is so great that entire markets will reorganize around frictionless. If they don't, they shrink and frictionless markets beat the markets with friction.

All is not lost for you. These things take a long time to happen. Windows is still with us, Linux hasn't driven it from the face of the Earth, and iOS is very successful even though it is fighting a difficult battle against Android. But if you want slow down your losses such that you can enjoy a good living or get rich in your lifetime, I advise you to think of yourself as being in the business of information, and see friction as being an obstacle to your success. If you must charge for software, try to think of ways to do it with the least friction possible.

p.s. http://github.com/raganwald

As an entrepreneur/programmer who makes a good living from writing and selling software,

You are not a programmer, at least not one sharing the scientific and engineering that makes most programmers choose their field. You are an entrepreneur who uses programming to make a living (not a bad thing by the way.)

I'm dumbfounded as to why developers write applications and then put them up on the Internet for free.

Sense of charity? Sharing? Common good will? Scientific and engineering desire to advance technology and knowledge?

You've found yourself in one of the most lucrative fields in the world.

Inconsequential, even for industries outside of software. How many companies, profitable in other fields, actively engage in charity and community support?

A business with 99% profit margin,

Only if you are working on the small, playing tax games or doing something under the table. The idea of a business that is that profitable, continuously and in a manner that is sustainable is not supported by the laws of economics.

where you have no physical product but can name your price;

You can only name your price when you

  1. are dealing with a very desperate (and uninformed) client,
  2. you are a technical ace (say a MSEE specialized in RF and MW circuit design or FPGA programming or a very experienced software architect.)

Otherwise, no, you don't get to name your price because there are a lot of very capable people competing with you for contracts.

a business where you can ship a buggy product and the customer will still buy it.

And that's why you will never understand why programmers, scientists and engineering alikes (as opposed to money whores), do contribute to open source.

I would actually state that I doubt what it entails to have a successful, sustainable company, independently of the industry.

You ask Nike and they'll tell you they are in the business of making good shoes. They are not in the business of shipping a shitty product.

You ask Apple and they'll tell you they are in the business of combining the best technology with the most exquisite of user-experience aesthetics. They are not in the business of shipping shitty products.

You ask AstraZeneca and they'll tell you they are in the business of medical advancement, not on shipping a shitty product.

And those are not examples of empty rhetoric.

And so on and so on. And though it is always possible for defective products to be put on the market, all successful companies define themselves by a particular goal of excellence. Profit is a side-effect of it, and certainly the primary objective. But it is certainly not their primary drive that get things moving.

There is nothing greater than working in an environment like that. And there is nothing shittier than working with people who see profit as their main drive. Quality takes a dive completely.

You should do some reading on Warren Buffet's work or on Henry Ford's drive for quality and work ideology. Then you'll understand not only what open source is all about, but you might learn a bit or two about sustainable, successful businesses.

Entrepreneurs that don't understand that aren't really entrepreneurs. They are just peddlers riding a for-the-moment speculative wave.

One of the main reasons why I'd consider releasing an app for free is because it's a surefire addition to my portfolio for future endeavors (potential job opportunities, promoting your name in the programming world). That's more than enough payment if you ask me.

Toolmakers

Personally, I release the tools I use. My assumption is that the things that I build with these tools should be where I make my money. Programmers hate hassle, and most of use who live by the Unix Philosophy know that there is no need to reinvent the wheel over and over again. So, we develop tools that help us in our day to day chores, release them to the public hoping that others will find them useful, and, if we're lucky contribute to making them better. Most programmers don't want to be involved in doing mundane things over and over, we want to write NEW things that use our skills to their full potential, we don't want to write editors, parsers, databases, etc etc, and most of the time the community created versions of these tools are better anyway (ie, Linux vs M$). So when the community rises up and allows people with specializations in specific areas to do what they're best at we come up with some really cool projects that make all of our lives better.

Responsible Citizens

If you use enough free software you eventually begin to feel indebted to the community, and if you have the ability you WANT to contribute. Also, there's value in doing. I've learned more by writing software for free than I ever have being paid to do so. It's a great way to learn, and I love to program. I love to solve problems and I love being able to do it however I want. When I'm releasing the product for free there's no expectation as to what it has to do, that's completely up to me.

Nobody Wants to Pay Me

I'm still in school, so when I work on open source projects, or create my own free projects it's experience I can put on my resume. It's how I taught myself several languages, and it's what makes me a better programmer than my peer who have only worked on coursework during the duration of their education.

Start them off with a free version.

Then by version 4 start charging.

If the product is any good, people will continue to buy it.

Alternatively, go the Google route and offer a cut-down version for free, with a pro version costing a small amount extra.

One reason is, that many software developers hate to reinvent the wheel. If all software were closed, there would be a lot more of that going on.

Open source gravitates much to infrastructure level software, like system and tools, that enable the developers to focus on the actual problem solution rather than reimplementing simple library functions a zillionth of time.

You might find a lot of insight in Chris Anderson's Wired article Free! Why $0.00 Is the Future of Business.

You will however find many examples where the developers accept donations, and maybe Flattr will succeed where micropayments have failed.

There is also other transactions being made here, although it does not involve cash:

  • Labor: Debugging and testing effort on platforms and in usage scenarios never envisioned by the original developers. By automatically tracking usage the developers get valuable information.
  • Reputation: For many programmers, programming is ever so much about the positive feedback from making the software in the first place and people cherishing the result.
  • Altruism: Making software products is relatively easy these days because of the availability of free and good developer tools and libraries. Releasing software back for free is one way of paying back to the community.

If you're writing a platform instead of a product, making it open source assures that people can build on it with confidence. So that's one reason.

Because obscurity is far more damaging than not making money on one idea. Because programmers may not be living in a vacuum of living in a coding box, their own source of income may be covering their needs. Because free from price allows you to be free from support and free from obligations. Because payments mean you accept a certain liability as a provider of a service or product. There are more arguments in favour of not charging for software if your primary motivation is not to be rich.

Finally, because money, whilst a great incentive, is also a poor motivator.

I've "released" (well uploaded to my website) a couple of desktop applications for free because I didn't think anyone would be prepared to pay for them.

They're very small applications and I couldn't justify charging more than £10 or so for them anyway. I didn't expect to get many users (I know I have at least one) so it didn't seem worth setting up the PayPal integration on my website to collect payments.

If I ever write something larger that I think will have a market then I will look harder and longer at getting payment for it.

I shared my application for free. In fact, it helped my potential customers to see how it is working and they contacted me with a proposal of buying and with some additional features to implement. Free distribution of software helped my customers to see how much beneficial it is for them.

I write code because I enjoy writing code. Not because I want to be rich, or because I want to change the world, or anything like that. I enjoy writing code, and I like it when people get to benefit from this fact. Why should I charge them lots of money for that?

I also get to benefit from lots of people who feel the same way, and it's a way of giving back to them. I get to use Linux, and Firefox, and .... for free every day, so if I can do something that somehow benefits others then why not?

Because good software tools need some time to develop.

So you start your project and are aware that no one would pay for it, as it is.

But if you give it away for free people might start using it, provide feedback and free testing, development ideas, etc...

Finally, if all goes well you can create a non-free version and sell it.

The free software movement insures, basically, innovation on it's most competitive scale.

Things change every day in the programming world and there needs to be a checks and balances system to make sure that everyone is up to par. Otherwise, we would be stuck with a lot of crappy programs just because people made a "Standard"(Microsoft Anyone?).

The fact of the matter is that YOU don't feel like you have the time or the resources to keep up with a free competitor. You have this complaint because it actually forces you to work to MAKE YOUR PROGRAM WORTH THE MONEY. You have to innovate and improve your program(Insert Takei "OH MY!").

Sorry, your vanilla version you planned on riding on for the next five years just isn't going to cut it. You have to constantly develop. That is what it takes.

Don't be upset because you are too lazy to work to make your product decent while people who work harder than you give it up for free.

Because I have the feeling that my knowledge can help others in improving their daily work. I also think that public projects increase your visibility across the globe and companies will be interested in you and possibly want to hire you. The latter of course requires that your code base is good and the project becomes popular.

People are less willing to pay for virtual stuff like programs, plus, there are many other free programs, so your commercial program, even for 1 cent, won't sell. Also, programs can be copied easily.

"money is the human word for quatloos", that's why some programmers avoid it.

Licensed under: CC-BY-SA with attribution
scroll top