Writing free software is like being paid for doing something you would do anyway, but without the “being paid” part.I suspect that the double meaning of the english word “free” is causing a major damage to the software industry. Although I plenty support the “free-as-in-speech” concept for the software, I am quite contrary to the “free-as-in-beer” wildly applied to every kind of software.
I consider “free-as-in-speech”, as I understand it, a sort of right of the customer – she/he is entitled (possibly for an extra) to have the source of the software you bought. That makes sense because your needs may be different from those of anyone else, and, in this way, you can customize the software to suit your needs.
You pay professionals to write an industrial strength, well polished, product, then you twiddle the ends to match your environment.
The “free-as-in-beer” is quite the opposite, you get the software for free sources and all, then, if you need, you pay someone to fix the loose ends.
From the customer point of view this is great. It would be like someone designs and builds you house for free, then you decide to keep it as is, or to pay someone to move a wall or a door.
From the software industry is a major damage at two entangled levels – money and competition. This model pushes much less money in the developers’ pockets, because customers pick free alternatives and even if they decide to pay someone for customizing them, the total money are less than what would be if everybody paid for a non-free product.
The “free-as-in-beer” has moved in the past 30 or so years, from filling empty niches for small utilities (where it could make sense) to competing against full featured applications. As Netscape teaches – you can’t compete with something given away for free.
Competition against a free product is hard, not to say, impossible. You have to compete on quality, innovation and features. And all those cost money. Though there are exceptions, free software usually tends to copy innovation from industry leaders. Quality is hard to achieve, but quality itself does not sell. What sells is “perceived quality”, i.e. the quality that the customer believes your product has. This is even harder to achieve because you have to issue focus groups, interviews, you have to work on your brand and promote it. That means a lot of money, too.
Features is another hard field, because most users exploit a few percents of all the feature-load that comes with the application. It is hard to invent something new that could appeal the customer to make a choice. New features come either from increased computing power and from research. Computing power is provided by the hardware manufactures and it is out of the developers control. Research is expensive if done in-house.
This train of thoughts brings me to the following question: “Why are we doing this?” Why programmers are happy to work for free and not, say, dentists? Ok, let’s take a less dependable example – plumbers. Why plumbers do not their job for free? I suppose that there are two reasons for this. The first is that a plumber’s work consumes materials. They need to buy and lay pipes that are not for free. A programmer does not consume any material, it is just a matter of time. Next the work of a plumber is not freely replicable, i.e. if the plumber installs a building, than he can’t copy’n’past his work on the next building.
It is all about perception – programmers are caught in a trend that is grinding music and movie industries. Among the three industries the software one is the one in the worst position, in fact the other two can count on well established labels and brands – usually you don’t consider novice singers and amateur musicians as a free alternative, a valid replacement of the work of known composers and singers.
Then there are economic interests – IBM and Sun are two of the most prominent free-as-in-beer software supporters and it has nothing to do with philanthropy. IBM and Sun business is selling hardware, usually expensive hardware and free software helps in selling more hardware because customers do not need to pay software licenses when upgrading or expanding their installed base. Google also sponsors good free-as-in-beer (but not free-as-in-speech) software because their business is advertising and free software provides the vehicle for their business.
All said, what are the chances for us programmers in the future to be paid for programming? I think there are three options – work on integration, i.e. customizing free software to suit specific user needs; work for niches where no free software exists; work for IBM, Sun or Google where people gets paid to write free-as-in-beer software.