I've participated in a few Open Source software projects. Some were run by individuals, some by communities, and some by corporations. I'm interested just now in discussing the ones run by corporations. Corporate Open Source holds a somewhat suspicious niche in the market. I'd like to consider here my thoughts on how a corporation can Open Source products and cultivate a community to help develop them.
As a whole, the business community has come to see some value in Open Source. This is particularly true in specific markets where a product or collection of products have really proven themselves, Apache is usually the first to come to mind. I think businesses are quite willing to use Open Source where it is proven, willing to consider Open Source where it looks promising, and willing to develop Open Source where there is potential. However, there is always an undercurrent of skepticism associated with Open Source because the monetary model isn't quite as clear cut as the usual "I'll give you this, if you give me $XXX."
On the other side of things, communities spring up around any successful Open Source project. The quality of those communities is determined by the skills of individuals that makeup of those communities, the attitudes held toward the project, and how well the community works to encourage participation by newbies and gurus (and all the betweens) alike.
Corporate Open Source has a unique position because it melds a more traditional buesiness development model (hierarchical, strict requirements, design, and implementation, milestones, etc.) with the more chaotic Open Source model (chaotic, contributions based upon individual interest or need, few/no requirements, vague deadlines, etc.). If the project is successful, the corporation will also be bolting on a community following which will help direct, design, implement, debug, and test the product. I believe this is a Catch 22 situation: the corporation cannot have a truly successful project without developing the community and the community cannot grow without having the corporation properly directing a successful project.
I see the keys to community development as being wrapped around two key ideas: ownership and communication. I'll start by describing communication and finish with ownership.
Communication in an Open Source project has to be open and honest. This openness and honesty must be percieved more than it must be real. I'm not suggesting that it's a good idea to hide things from your community if you can still make the community think you're honest. I'm telling you that you don't have to dump out the contents of your closets for them if they believe that you are being open and honest---i.e., earnestly telling them enough.
Therefore, keep the marketing people out. At least keep the typical marketing techniques for making your product and company look shiny and perfect out. Just as corporations tend to be a bit mistrusting of the Open Source business model, so are the developers mistrusting the company that has given them something for nothing. The corporation must work extra hard to build trust because both sides will start from a point of skepticism and that skepticism will always remain close under the surface.
Which leads me to my next idea: ownership. You can dispell much of the skepticism of the community by giving them ownership. This doesn't have to be literal ownership of the copyright, but give up enough control in the direction of the product that the community has an important say. If you're planning on a new feature A, but the community is clamoring against feature A to get feature B, consider giving them B first (or instead). If the community contributes a feature that your company can't get any direct value out of, but the community at large loves, consider including it in the main distribution and adding support for it anyway. These are ways of giving the community a sense of ownership. It should be noted, however, that if the community finds a feature valuable, you and your paying clients probably will too.
But why all the trouble? Why would I bother to invest in developing a product just to give it away? The value is that if you develop a "fan base" in the community, you can get improvements, ideas, and testing for free. The opportunity exists for a member of your community to suggest an improvement or provide a patch that links your system up with another system that happens to be a match made in heaven, but that your own staff might not have found while doing research in their spare time---the Internet is a pretty big place after all.
In the case of Boomer Consulting, we sell service. Clients pay us to help them figure out what they can improve, connect them with resources they might not find on their own, and to connect them with other companies who've succeeded in the projects they're still looking forward to completing. I've begun making some contributions to some Open Source projects and we very much plan to make the effort required to release those to the public. These components aren't going to be useful on their own (software never is until someone works to install it, configure it, and use it) and they won't include any of the business logic specific to Boomer that makes us valuable to our clients. We'll be giving away infrastructure that will require considerable investment to really use to compete with---not because the tools are incomplete, but because software doesn't magically start working for you just by installing it.
Yet, if we can get others interested in how those tools work, we can get infrastructure improvements for free when someone writes a patch to do X better or Y to link in another piece of software. All in all, I believe Open Source to be a win for where I work. I'm looking foward to what we can produce during the next year or two.
Cheers.

Leave a comment