Some people think of the Open Source community as a Zen-like band of code-warriors who couldn't be bothered with earthly pleasures -- an army of hackers willing to solve any technical problem without compensation. In reality, developers write Open Source software for a reason: sometimes it's to solve a particular problem ("scratching your own itch"), sometimes it's to be associated with a cool project, sometimes it's for peer recognition, and sometimes -- if you're one of the lucky few -- it's for money.
Some people think of the Open Source community as a Zen-like band of code-warriors who couldn’t be bothered with earthly pleasures — an army of hackers willing to solve any technical problem without compensation. In reality, developers write Open Source software for a reason: sometimes it’s to solve a particular problem (“scratching your own itch”), sometimes it’s to be associated with a cool project, sometimes it’s for peer recognition, and sometimes — if you’re one of the lucky few — it’s for money.
It’s ironic, really. Developers can have a hard time getting funding for their Open Source work, while at the same time, the Open Source users may have a hard time fin
ding developers. Even when they are willing to pay, some users simply don’t know how to ask the Open Source community for help.
Enter sourceXchange. SourceXchange is a Web site, developed and hosted by my company, O’Reilly & Associates, that hooks up developers with those willing to fund Open Source software projects. A printer company looking for someone to write Linux device drivers, a database vendor looking for a Perl implementation of its client libraries, or an IT manager seeking a new Apache module to interface with her proprietary inventory software — all of these “sponsors” could use sourceXchange to finddevelopers for their projects.
How does it work? Developers register at the site and post ideas for projects they’d like to see funded. A sponsor can choose from that list, or propose his own project by submitting a Request For Proposal (RFP) for the project. Developers respond to the RFP with their own proposals; the sponsor then mulls through the proposals and selects a developer.
Better than Bounty
Every proposal includes a certain number of “milestones;” these are points where the sponsor can check into sourceXchange, download the code, and evaluate how things are progressing. If everything is up to snuff, the sponsor signs off on that milestone and the developer is paid directly by sourceXchange. Once the last milestone is reached, the project gets archived on the site where anyone is free to download the code. The developer and sponsor then rate each other for the benefit of future developers and sponsors.
Because sourceXchange is based on milestones, and does not simply pay a lump “bounty” upon completion of the project, it can support larger projects. The milestone model also helps reassure both developers and sponsors that the projects (and payment!) will actually happen. More than one developer can work on the same project, and multiple sponsors can jointly fund a project. And sponsors can get more than code from sourceXchange. RFPs can seek documentation,quality assuranceservices, or even support for older software.
To allow this process to scale, and to inject a sense of fairness into the process, sourceXchange uses “Peer
Reviewers.” The Peer Reviewer is an
experienced Open Source develop-
er who helps make sure the projects
are developed in an intelligent way,
and that both sponsor and devel-
oper treat each other fairly (at
least when it comes to coding is-sues). The Peer Reviewer’s job includes:
1) Helping the sponsor refine his RFP before it gets posted.
2) Helping the sponsor choose a proposal.
3) Mentoring the developer during the project.
4) Acting as a mediator if the sponsor and developer disagree about whether a milestone has actually been met.
SourceXchange uses the same type of community input that goes into all Open Source code. It encourages developers, even those not directly involved in writing the software, to provide early and frequent comments and assistance to those who are writing the code. SourceXchange projects have public discussion forums where anyone can comment on the work being done and find out about the status of the job. In short, they’re true Open Source projects.
Any software that is written within sourceXchange must be released under an Open Source or community license. Both parties also get their own copyright on the resulting code, which means they can re-license it under a different license. However, there will always be an Open Source-licensed version of the code living on the sourceXchange Web site.
Hewlett Packard, which helped develop sourceXchange, has signed up as its first sponsor. They are sponsoring RFPs for a variety of Linux projects. After a “beta test” period, source-Xchange will begin hosting other projects. Several large IT vendors, some smaller software and hardware companies and a few ISPs have already shown interest in participating. But anyone can become a sponsor. All Open Source users eventually discover a feature they need, a bug that needs to be fixed, or an area that needs optimization. SourceXchange is designed to be the vehicle for meeting these needs.
Changing Corporate Thinking
In the long term, we hope sourceXchange will become the primary method by which companies outsource software development. Today, almost every company thinks of software development as an internal effort, without considering that their problem could be more easily solved with an Open Source approach.
Let’s take a hypothetical example. Imagine that a Web consulting company needs to write an application to track how much time employees spend working on different projects. This company has Macintosh, Windows, and Unix desktops, so the software needs to be cross-platform. They need it to talk to a SQL database on the back-end. They need it to work for “offline” employees who are working from home or travelling. After evaluating the commercial possibilities, this company decides to write a new time-tracking application. Our imaginary company has little to gain by keeping the code to itself. Its time-tracking software won’t give it any special competitive edge. And so, it becomes an ideal sponsor for sourceXchange.
If you’re reading Linux Magazine, the odds are you’ve already figured out the benefits of Open Source development. But most large companies still have trouble grasping that it might be better to use code written by individuals rather than by other large companies. There’s this myth that proprietary environments create higher quality code. Linux and Apache have proven this wrong, at least in some niches. But SourceXchange could show the world that the Open Source development model works for a whole new array of software. It could also refute the charge that the Open Source model is only useful for re-implementing someone else’s invention, and fails to spark genuine innovation. Why? Because sourceXchange supports large projects. Suddenly, whole new Open Source code bases — a time-tracking application, a DVD player, or a new GUI drawing tool — are easier to fund and build.
Now this isn’t to say that software development needs sponsorship to be useful. Obviously it doesn’t. But individual developers tend to focus on making their software more powerful, or faster, or more flexible. On their own, they may not be quite as motivated to develop documentation, ease of use, or ease of installation.
The real power of sourceXchange comes when end-users can directly support specific projects by pooling their funds. If a thousand X11Amp users each put $20 towards better streaming audio support, for example, then it’s likely that someone will step up to claim the $20 thousand and do the work. We call this the “aggregation of demand” model. When this occurs, there is a direct connection between the end-users and developers that will give birth to more stable, functional programs that are laden with features that users actually need.
How can you help? Visit the sourceXchange site. If you are a developer, register. If you know of projects that need funding, propose them. Check out the RFPs — check them repeatedly. Consider applying to be a Peer Reviewer. Like eBay, this site relies on the “network effect.” Once there’s a critical mass of projects and developers participating with sourceXchange, the potential for Open Source development will become immense.
Want to help even more? Convince your company to fund a project, even if it’s something that another developer proposed. By funding a project your company repays the community for all the benefits it has received from Open Source software.
All in all, sourceXchange has the potential to take away any reason a company might have for avoiding Open Source software — if there’s something missing from a package that you need, fund it. Now, there are no more excuses.
Brian Behlendorf works at O’Reilly & Associates, designing the next gen-
eration of Open Source development tools. He can be reached at firstname.lastname@example.org.