Open Source Limitations?
_aargh writes "This ZDNet article by John Carroll makes the claim that open source is flawed because there isn't a way for programmers to earn money by developing open source software. It annoyed me so much that I wrote this response to it on the O'Reilly Network."
The best response to the incentives problem for contributing to open source, imho, is not the usual boring ESR reputation benefits, but rather Eben Moglen's classic "metaphysical corollary."
"The dwarf's basic problem is that "incentives" is merely a metaphor, and as a metaphor to describe human creative activity it's pretty crummy. I have said this before, but the better metaphor arose on the day Michael Faraday first noticed what happened when he wrapped a coil of wire around a magnet and spun the magnet. Current flows in such a wire, but we don't ask what the incentive is for the electrons to leave home. We say that the current results from an emergent property of the system, which we call induction. The question we ask is "what's the resistance of the wire?" So Moglen's Metaphorical Corollary to Faraday's Law says that if you wrap the Internet around every person on the planet and spin the planet, software flows in the network. It's an emergent property of connected human minds that they create things for one another's pleasure and to conquer their uneasy sense of being too alone."
And then, even more fun, he adds:
"The only question to ask is, what's the resistance of the network? Moglen's Metaphorical Corollary to Ohm's Law states that the resistance of the network is directly proportional to the field strength of the "intellectual property" system. So the right answer to the econodwarf is, resist the resistance."
Brilliant.
I think department was inappropriate--- ZDNet HAS a clue. Here's what KDE developer Wolfram Diestel has to say about the matter:
"No, at the moment I only get money from my wife for caring for my daughter."
Another KDE developer, Rik Hemsley, is not paid as well. He spends 20-40 hours a week on KDE!!
Don't these people value their time???
That's fucking pathetic, if you ask me. I encourage everyone to go over and read Eric Hufschmid's editorials. They really make you think about this whole situation.
Just like the picture of the T-Shirt says,
``Support Free Software!! Give us money!!''
Something must be wrong with my life... I'm a hybrid business developer, so, technically, I'm not making money from OpenSource [ in a strict sense ].
In short, I develop one 'commercial' program, of which the revenues I generate I use to fund my development of the OpenSource projects. These OpenSource projects in turn assist the commercial program because they both [Open and Commercial] share common libraries. These libraries are the most vital core.
By striking this 'balance', I'm able to keep the legal aspects happy, the financial aspects happy (I am my own business) and myself happy.
Whilst I don't make huge amounts of money, that is not the entire point. I do OpenSource because it's 'pleasurable' (most times, I wont expand on the bad times), and my 'commercial' side funds me.
Works for me.
Fine, fine.
So, instead of "hire a small number of motivated and interested developers to work on contributing towards localization problems ", how about contract a small number of motivated and interested developers to work on contributing towards localization problems?
Perhaps there's a competent OSS developer out there somewhere who might be willing to take the gig for a few extra bucks? Or would the fact that they're willing to gasp! take money from the government de facto switch them from competent to trained monkey?
Look at this scenario:
1. You write software for company X.
2. You get paid.
3. Company X uses this software and makes money.
4. Company Y finds this software useful and doesn't add to it.
5. Instead of Company X having the competitive advantage, they just gave the software to Company Y for free.
Now open-source isn't looking as appealing! I think open-source may have it place, but not in every instance!
Actually a lot of people writing the software are employed to provide software based solutions. Open source development and free ( GPL/LGPL ) licensing provide a very productive way of encoraging participation in collaborative development. It can provide better solutions to the use of proprietary close source packages.
See Why Open Source Software / Free Software (OSS/FS)? Look at the Numbers!
90% of programmers don't work on creating shrink wrap software but on customising solutions for clients.
From a personal perspective it is far more intellectually rewarding to the joint developer/user. You really can know exactly how the damm thing works and you can in most cases fix or adapt it to your own, your client or your employers needs. Do you wish to live and work in an enviroment where every damm box has the lable "No Serviceable Components Inside"?
As for free GPL/LGPL licensing; the reality of the current employment market is that jobs come and go - BUT, you can take the knowledge you have gain though developing and adapting free licensed software and approach other users of that software for either employment or as clients. You DONT have to "start from scratch" with each job.
If you are a programmer, in the long run, the open source free licensed software model makes it easier for you to remain employed. Unless, that is, your sole career plan consists of being employed by Microsoft.
Another question, how many of those programmers expect to use the open source they contibute at their current and future places of employment?
What about Linux Company #2, the only one with a development lab comparable to RedHat - SuSE?
Search on the Internet. No matter how hard you look, you won't be able to find a downloadable current-version SuSE ISO. You can't buy one off Cheapbytes, either. The best you can do is download 7.2, two versions behind the current 8.0; or download an FTP bootdisk, something that only Linux experts will do and that doesn't work anyway if you have no net connection.
So if you want a copy of SuSE on CD, you have no choice but to buy a box set. Which generates income to pay programmers.
Open source isn't a business model period, so you can't say whether or not it's a viable one. It's simply a software development technology. You can have software libre that's not gratis, and make a company around it; essentially, Microsoft with far better corporate ethics and the GPL. That's a business model, and it works.
You're missing a few points:
6. Companies A thru W in the same industry also find this software useful, especially after Y added to it. None of them, however, add a single thing to it, since none of them have programmers on staff.
7. Instead of paying programmers, companies A thru W spend that money on their core business, using the exact same code without spending any money.
8. Using their competitive advantage (less money for same resources), companies A thru W kick X and Y's respective asses in the marketplace, which is the source of all the money being used to pay the coders.
9. X and Y go out of business, with the scraps bought up cheap by megacorp Z.
10. The Open Source programmers at companies X and Y, and all of their co-workers, are out of jobs. The programmers no longer make any money writing Open Source code.
Sure, if everyone using Open Source code was obligated to contribute something back, the model would work and work well. But as long as freeloaders can gain the benefits of the paid programmers without having to spend any money themselves, they will. Companies cannot base a business model on altruism. Using limited resources to benefit not just your own business but every business with a similar need, without getting anything back from the others, is just not workable in the long term.
But if you think of a way, please post it here. I'm sure that the CEOs of RedHat, VA, Mandrake, &etc. would love to hear it. They've had to concentrate on services and proprietary code to keep paying their bills, though I know they'd really prefer to be writing Open Source.
You're just jealous 'cuz the voices talk to *me*
Several folks are advocating a different model. It doesn't involve programmers working for nothing. It involves both money-making companies and free software.
Suppose the government (or a school board, or a bank...) needed a disk repartitioning tool. They previously had a few choices:
- Find a commercial package and license it.
- Develop it in house.
- Hire an outside firm to develop it for them.
The "new" idea here is this: the company or government in question is not in the software development business. They just want to get their job done. They can develop it in house, or contract out the programming and make sure it is in their contract that they are able to give away the source code.Why would they want to do this? Naive reasons include it "feels good", or free support will fall from the sky. Better reasons include:
- If the software is truly useful to others and they improve it
(perhaps contracting out the job of creating improvements to the same
or other development firms) then the original developers could benefit
from those improvements.
- If they get unhappy with their current development firm it might
be easier to hire another development firm to maintain the software if
the source is unencumbered.
- If a quick or minor change is needed in the software then the
source is available to do this, without having to negotiate with an
outside development firm.
- Once you have paid for the development of the software there are no longer recurring expenses such as licensing fees or compliance audits. The cost of maitenance may be cheaper.
My main point is this: Free software does not have to be built by volunteers. You can hire professional developers to create and maintain free software if your business or government relies on this software. "Open source" and "free software" are two models for doing this.There exists an example of this. Gcc is licensed under the GPL. Many people rely on it for their jobs: this compiler is used by many folks to create code for embedded applications, unusual hardware, research, and mainstream applications. Often a company will need a specific improvement, or need it to be ported to a new operating system, or support for new hardware, etc. It appears that Cygnus exists mainly for the purpose of doing paid improvements to gcc. (I have worked for companies that have hired them for exactly that.) The folks who work for Cygnus don't work for free, and they often are quite good at what they do. Many other programs could follow similar models...
I think there is a whine about how people can't make money from Open Source software because Microsoft can't make money from Open Source software. And that scares them. Their two bread-and-butter software categories: Operating Systems and Office Suites, now have to compete against open-source competitors. Microsoft has never been about being better than the competition; they started out being cheaper; once that drove out the competition (CPM-86 & P-system, mostly) they moved to "don't let anyone choose to not pay you". They crushed their competition in office apps using similar tactics.
What happens when Wine gets "good enough"? Who would pay Microsoft the $49/year that they want for their every-other-year updates?
Right, because most traditional enterprises use in-house software developed most likely in COBOL.
If you're talking modern enterprises, more likely than not they are using any one or a combination of the following top-of-my-head list: BIND, apache, perl, SQL, GCC, GLIBC.
Sure, some open source screensaver or MyRecipePHPapp will not be used by Wal-Mart any time soon; but you sure as hell know that Wal-Mart uses Open Source Software.
I believe it was Aristotle that taught that the soul (in a non-religious context) is made of three parts:
Appetite, honor, and reason.
One's essence--that is, one's personality and the traits that define him/her, are composed of a mixture of the three, like any color is made of a mixture of R, G and B.
Appetite includes a persons need for gain (i.e. money)
Honor includes a persons need for recognition.
Reason includes a persons need for knowledge. About 80% of people are mostly "appetite." Good examples of "honor" people are soldiers and journalists; good examples of "reason" people are scientists that find interviews and talkshows "an irritating distraction from their work."
Obviously, ZDNet is mostly composed of those of "appetite" to the degree that they cannot even understand a person which cares for things other than personal gain, i.e. money. Sad...
Computer Science is no more about computers than astronomy is about telescopes. --E. W. Dijkstra
Hm. It would seem like Sourceforge and similar sites could yield some useful statistics. For instance, what is the distribution of contributors per project, and the size of their contributions in terms of LOC or time (or, alternately, simply the number of check-ins they've done)? What percentage of projects are orphaned before they ever progress beyond buggy alpha-grade crap, or perhaps even at the design stage?
It would also be interesting, if less relevant, to learn how many of the projects there are simply derivative works (particularly common for games -- Tetris clones, *craft clones, Civ clones, Space Invaders clones, et al) instead of original designs.
Only the dead have seen the end of war.
I did an analysis of about 35 "Open Source Businesses" a little while ago. The analysis was informal but it's pretty clear you just can't build a scalable business on open source. Sure, you can build a nice little consulting business, but you just can't build a significant margin-based business. Simple economics. Hasn't worked. Doesn't work. I'm not going to argue the ethics of this, just the economics.
I tried to address this issue of programmers not getting paid with a larger article about Open Corporations that advocated that open source emulated the music industry more and compensate programmers like rock stars.
10 January 1610
You're also missing an important point, one that is not often discussed but which holds the key to that "unfair competition" problem you talk about. The thing is - and correct me if I'm wrong - the GPL requires to to distribute the source code along with the binary, but it does not in fact require someone to actually distribute any new software created from GPL'ed code at all! In other words, if you build something out of GPL software and it somehow gives an advantage to your company in its industry (which I presume would not be software-related), then there's nothing to force you to reveal it and distribute it. Just keep it! But if you do release it - perhaps when the competitive edge it gave you is gone - then you have to give the source code as well.
What OSS really means is that there will be less money in the software industry itself, but more programmers working for companies in other industries, and more programming "studios" that will do work-for-hire. Anyway, do you know a lot of programmers who receive royalties on their creation? There's not going to be less money around, not even for programmers, but it's not going to move the same way. The industry will transform - that's okay, programmers will still be able to make a living; that's what's important, isn't it?
Reminder: find a new sig
You must not know much about CS jobs. If you go to any of the top CS schools in the country, you'll see where most of the top of the class goes-- Microsoft. The general consensus among students in the CS dept I attend is that people working for MS are real badasses. And it's the truth. The guys working for MS REALLY know what they're doing.
The bugs arise from the fact that MS products are MASSIVE projects with literally hundreds of developers. It's simply impossible to produce bug-free products that large in a reasonable timeframe. Sure, many people cite Linux as an example. Linux (not just the kernel, XFree, KDE/Gnome and all related things) are buggy too. This doesn't mean that the developers suck, but squashing bugs takes time. Also, MANY hardware drivers in the kernel are incomplete/missing. Sure, they may not be as buggy as Windows, but if they don't do what I need them to, they might as well not exist at all.
I don't mean to bash Linux here or anything, but simply use it as a tool to point out the logistical nightmare of any large software project. Microsoft does a rather good job of keeping the show-stopper bugs away and working to fix the minor ones with service packs. Microsoft's legal and marketing departments may be Evil (tm), but their developers are top-notch.
1. Custom software for the place where you work - this is the kind that most people get money for. Open Source is not really a good fit for this, because the application is usually very narrow, specific and often tied to proprietary business systems, databases and business logic.
2. General tool software which is applicable to lots of different situations - this is the type of software that Open Source is good for. Look at all OSS, it's general stuff. Tools. Utilities.
OSS can be very helpful in building the specific stuff. It's not all that complicated. People make their money developing (1), preferably using (2). In their spare time (and, if they're lucky, work time) they develop the Open Source stuff. If the open source stuff they develop becomes successful enough, then they maybe get a chance to do it most of the time, because some company will recognise the value, and dedicate some resources to paying the guy.
I really don't see what's so complex about this. People do Open Source software because they like doing it. They get peer recognition. They don't do it to get paid - not directly, in money. They get paid in reputation and self respect. Everybody benefits. People get their bread and butter from doing the specific, non-general, business stuff.
Or am I missing something here?