LWN.net Logo

Where community and commerce meet

Free software development projects and for-profit companies can often interact in ways which are rewarding for both. The interaction between the two is not always entirely smooth, however, and occasional frictions can emerge. Resolving these issues as they come up can yield insights about how the free software community operates, and how it interacts with the commercial world.

As an example, consider this note posted by Bruce Momjian to a couple of PostgreSQL mailing lists. Interesting things are happening with free database management systems, and various companies are beginning to take note. Bruce welcomes commercial attention, but worries about some problems which could result if things are not handled carefully.

The main issue would appear to be companies working on features for PostgreSQL without first discussing their proposed changes with the community. These companies risk finding that they have duplicated another company's work; merging overlapping patches then puts a stress on both companies - and on the community. Companies which keep their patches until a late stage may also find that the community is unwilling to merge the finished product for any of a number of reasons.

This kind of problem can usually be dealt with relatively easily if it is caught in an early stage. By the time a large amount of effort has been expended, changing the direction of a project can be a harder task. For this reason, many development communities would like to see proposed additions as early in the process as possible. This desire often clashes with a company's goals: the company knows what sort of patch it wants to produce, and corporate management is often afraid to release code which has not been polished, run through a quality assurance process, and cleared by the lawyers. Releasing early-stage code with missing features and known problems so that the community can redirect the development process is just not the pointy-haired way of doing things.

When a company owns a given free software project (think MySQL, OpenOffice.org, or JBoss), there is usually a certain level of predictability in its development process. The controlling company has its agenda, and will accept or reject patches based on whether the patches further that agenda. Many or most of the major developments are centrally planned from the outset. If another company wishes to encourage development in a certain direction, managers from both sides can get together and work a deal. Managers tend to like to work that way.

A more community-driven project can be harder for companies to engage with. Promises to merge a given feature are hard to obtain and even harder to enforce. The whole process can seem whimsical and hostile to corporate five-year plans. But this is also the process which, at its best, produces high-quality code which is maintainable over the long term. Companies can learn to work with - and appreciate - the community development process, but there is a learning process involved. It all tends to work out with successful projects, but each project seems to have to find its own way to work with the commercial world.

The other problem mentioned by Mr. Momjian is that companies are hiring PostgreSQL developers to work on closed-source extensions. This is OK in general: PostgreSQL carries a BSD license, and it is hard to argue with jobs for PostgreSQL hackers. But the project needs developers to survive; companies which hire those developers and prevent them from working on the core system risk killing their golden goose. Bruce asks that such companies at least allow their developers to spend some of their time working on the free PostgreSQL core.

The interface between corporations and free software development projects has its share of traps and potential problems, just like any other relationship. Given time and sufficient will, these problems can be worked out. It is worth the trouble: each side has a lot which it can offer to the other.


(Log in to post comments)

GPL vs BSD

Posted May 5, 2005 7:33 UTC (Thu) by alonso (subscriber, #2828) [Link]

I think this is the problem of bsd, company are encouraged to produce proprietary
extension simply because they can, and no company is enough smart to understand
the value of common base, becouse this is a lon term benefit(10 years?). The same
e problem killed Unix.

GPL vs BSD

Posted May 5, 2005 15:05 UTC (Thu) by bos (subscriber, #6154) [Link]

GPLed software has the same kind of problem. There have been several instances where, in kernel land, multiple people have popped up out of their foxholes and said "look at my shiny new feature!" only to find that there are competing implementations.

In the general case, this is a communication problem, not a license-related one.

GPL vs BSD

Posted May 5, 2005 20:51 UTC (Thu) by alonso (subscriber, #2828) [Link]

Yes, but the difference is that whit gpl everyone can chose the best
implementation. If you have the best propietary implementation you would
retain you advantage.

Close-source Extensions

Posted May 5, 2005 11:36 UTC (Thu) by linuxbox (subscriber, #6928) [Link]

A lot depends on whether this is something that happens a little bit on the edge of core development, or whether it swallows the whole. I didn't think that was happending, eg, with pg replication products. Anyone have more info?

Copyright © 2005, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds