I'm on the mailing lists for a couple of open source projects that interest me. Between trying to hustle contracts, satisfy contracts, and build up my own web empire so I don't have to hustle or satisfy contracts any more, I don't have time to actually contribute code, but I do like to know what's going on.
It's watching these mailing lists that have exposed the secret weakness of the open source software world for me. Open source's greatest strength is also its greatest weakness... volunteers.
There's a great article on the death of Xara Xtreme, a Linux/BSD/Mac port of the closed-source Xara for Windows. One of the things the article pointed out is that Xara didn't listen to the volunteers, so they bailed. The much ballyhooed and extremely promising open source project died because the volunteers were discouraged from volunteering by Xara's behavior.
But in many cases, very cool projects die or languish not because they alienated volunteers and sent them packing, but because some elements of software development are boring, tedious, and non-sexy. Those bits may be highly-needed infrastructure, but because someone has to volunteer to do them, they act as an anchor on the project until someone gets fed up enough with the lack of forward motion to take one for the team or the project just stalls dead in the water.
Additionally, some bits require a lot of dedication. They're non-trivial. But most volunteers are working in their spart time. Even if the bit is exciting, new, and sexy, people look at it and say "I just don't have the time for that."
In a closed-source shop with people on payroll, there are drawbacks to be sure. In an open source project, the neurotic inmates are running the asylum. In a closed source shop, the sociopathic inmates (a.k.a. Marketing) are running the asylum. But in a closed source shop, the coders can't pick and choose which bits they want to do or say they don't have enough time. They get assigned the bits that are needed and they get them done because their paychecks depend on it.
In short, the weakness of the open source development model (when you don't have enough donations or revenues to put coders on payroll) is that if someone doesn't volunteer to do the boring-but-necessary bits the project suffers. And while in some projects, you have volunteers with enough dedication to the big picture and enough time to spare that the unsexy bits get done, in others you have a bunch of people working on pet features or functions while core features and functions remain untouched because they're not the fun part.
Corporations and even individuals tend to think, if you announce it, they will come. They think that "open source" is a magic phrase like "open sesame" that will bring them whatever they desire. But the truth of the matter is if you can't pay people to do it, you have to be a good leader and good motivator who can get the volunteers on board and pointed toward the feature set needed for the next release. Then you have to be able to use motivation, wheedling, and begging to keep everyone on course, because cracking the whip will remind people that they're doing this for free.
In short, the weaknesses of the open source development model are:
- You can't attract developers with salary and benefits, but have to present them something they value enough to give up their spare time to create or improve.
- There are few negative consequences for a developer if they decide to quit. They don't lose a paycheck, their resume isn't hurt, and they probably don't see much damage to their reputation.
Without any power to compel developers to complete projects or take on ones that don't particularly interest them, the ability of many smaller projects to reach a level where they can compete with their closed-source analogs is severely limited.
While the open source model has produced some wonderful software, it's not the answer to everything. And while some applications have reached a point where they threaten the closed-source market leaders, the landscape is still dominated by closed-source, and that's not likely to change in the near future.


Entries (RSS)