One of the important principles when considering open source projects and related communities is there needs to be an ecosystem around the project for the community to thrive. This is to recognize the fact that sharing is hard work, and that to share things well requires an additional degree of discipline that is often not present in other contexts. Although most of these guidelines are derived from experience in the software world, they're applicable in many other places.
Open source contributions
My own background is as follows, I have pursued my own research in academia while remaining engaged in innovative software development including popular open source projects like PhpBB, to Ruby on Rails, to jQuery, to the enterprise software world.
A sampling of work in this realm can be found in my Github profile. Additionally, not long ago I was asked by senior Salesforce staff to put together a list of recommendations for stimulating the ecosystem at large. What follows is largely adapted from my recommendations (which, to the best of my knowledge, have not been implemented).
Finding passion outside of money
Much of the specific recommendations here follow from observations about human psychology. Humans can and should follow their passion, which is very often to contribute to the world in some way. However, there are often many forces in the world which militate against people following their passion. One of those is the reduction of productivity to money, a facet that, when taken to its logical end in many sectors of the corporate world, encourages only productivity that can easily be turned into money (a problem especially potent in the B2B world).
One major problem here is that many areas of innovation end up limited to particular corporate container, and any innovation within is not shared with the broader community that might benefit from it. One of the core benefits of the open source software world is that you are not limited to the confines of a single company. Expanding the scope of people engaged potentially gives you access to a greater amount of talent, but it is more difficult to get a significant degree of people's time.
How to build open source communities
Here are a variety of tips that I've come up to build an open source ecosystem that connects both people and resources:
- Build something people need. There is no better way to get something started than to be working on something that people already need, even better if they already know that they need it. Being the best in a particular category of product qualifies. (Keep in mind that you can do something super-innovative in an area where there is only a handful of people interested, but don't expect to create a dynamic community).
- Develop an ethic of sharing. You can't build a community if you aren't dedicated to sharing yourself. So share. And remember, giving back is more than money to a cause, it is thoughtful contributions to the world at large.
- Work bottom up. Keep channels open for contributions and feedback from the community. Give people additional responsibility who are contributing. Allow the community to not only have a voice, but to drive things forward without the approval of upper layers of management. Organizations with an explicit hierarchy tend to be slow because things need to be approved top-down, and the people at the top often don't understand what is happening at the bottom (and may not even care).
- Make a reputation system. Develop a way for recognizing the contributions of members, whether it is likes, or followers, or something else. Create a "core team" for high-frequency contributors. Give them better speaking slots at your conferences. Let reputation and rewards also be driven "bottom up."
- Create an ecosystem. Lots of people love to give, but it is hard for them to constantly give without getting something back. Some formal degree of reputation can be important, but another important aspect is that contributors are able to live a decent life. This basically means that money needs to be involved in some way, not necessarily as a direct incentive, but as a by product of contribution such that people can develop something they love without worrying about how much is in their bank account.
- The most common successful model is in the form of implementation of a core open source product which is in high demand. A second possible model is add-ons to a standard closed source product. The enterprise world has so far struggled to find a viable model and typically simply buys up companies that are doing something interesting without internalizing the "bottom up" culture. More innovation is needed here.
- Keep at it. A very common problem in open source communities is that the ability to contribute a lot in a short amount of time does not mean that the same person will be around to update the code later on. Having an ecosystem around a central product and related product add-ons keeps people involved, even when otherwise they might drift off to do other things.
Connecting passion with resources
All of this boils down to one fundamental point, you need to connect passion to resources. Productive passion comes very often from solving a problem. All of us have problems in our daily lives that we would like to solve in some way, and many of us are even capable of dedicating a significant amount of time towards solving them, we simply need to be connected with the right resources.
A community is fundamentally about that. Passionate people want to be surrounded by other passionate people. There is synergy and increased productivity. And they need other types of resources too, of which money is a major component, since it allows us to acquire the tools that we need. Connecting the dots is primarily about going in there first, building something that people need, and allowing things to grow organically.
Thankfully, the world of software is moving forward rapidly toward recognition on the basis of contribution. Sites like Github show in a more open way both the quality of your code and the degree of your commitment to contribution. Although sharing hasn't sunk in everywhere and many corporations are managed primarily on a profit motive, the ability of people who care about sharing to coordinate is unprecedented. Expect more exciting things as people use the new tools to organize for greater contribution, not simply greater profit.
Agree with these points? Have something to add or a resource to share? Please share in comments.