After my last post about how "failed" open-source projects aren't really failures at all, a colleague of mine provided me with more perspectives on that situation. The very way open source works, he claimed, is like an amortization of risk against failure in software development.
It sounded intriguing, so I said, "Do explain." And explain he did. To wit:
1. There are many FOSS projects, on Sourceforge or elsewhere, which are not intended for any kind of commercial or widespread use at all. Some of them are academic projects only meant to last for one or two semesters, and it's often easier to use Sourceforge's CVS (it's immediately public) than it is to set one up on your own or struggle with a university's IT department to get one running.
2. Many SF projects are "trial balloons," not first steps towards any kind of polished product. They're meant to serve as a space for a code experiment, to allow an experimenter and maybe a couple of collaborators to, again, use some public CVS space to get things running.
Few, if any, things created under these auspices are ever meant to become a 1.0 project. But they're crucially important to the health of FOSS as a whole, for a couple of reasons.
One, newbie FOSS hackers have a playground and a laboratory to work in -- a lab that contains every open-source project ever created. The whole point of Sourceforge -- and FOSS as a whole -- is to give people a code-development laboratory the size of the whole world.
Two, the trial-balloon projects can help steer other, more public FOSS projects into the right directions. My colleague mentioned as an example how he was fed up with the atrocious user interfaces that were the stock-in-trade for the applications in his particular field of expertise. He set about developing a new UI for those applications, with feedback from the community of users, and mounted it as a Sourceforge project. The results from that work were eventually rolled into the UI for another application that works in conjunction with a major-league FOSS project that everyone here ought to know. Not too shabby. (I've anonymized all of this at his request.)
3. A third thing my friend pointed out was my analogy regarding companies that fail, which he wanted to expand on. The reason corporations exist (he said) was because running any business entails a certain amount of risk. If you're using nothing but your own money, then you're in deep trouble if the business tanks and you're broke. A corporation is a way to amortize that risk, so that if things fail, as they often do, you're not shouldering the whole burden yourself.
In the same way, my friend argues, the FOSS development process amortizes the risk of software development. The only penalty for failure is lost time. If your time is valuable, you can always start with an existing project and refit that to your needs, rather than design something entirely from scratch. Or you can buy something out of the box, as many people do, if you're willing to leave inside-out development out of the picture.
Again, FOSS isn't a cure-all. But for many kinds of projects, one where a programmer has to do some kind of heavy lifting, open source means doing that much less heavy lifting entirely on your own.