Working on community projects can be one of the most rewarding types of volunteer work out there. This is for a couple of reasons, the most important of which is that these type of projects bring like-minded people together and from them build a vibrant community. Watching the community they create thrive is the greatest reward for the project contributors.
Another important reward is that contributors benefit from the exchange of ideas. Many heads are (usually) better than one, and decisions taken after group consultation are often the most well grounded in reason and are most likely to result in the best possible outcome for the community. Also, one learns a lot by following discussions amongst people who are experts in their own field. As long as the project is driven by active people who share similar goals and ideas, these projects always remain in good health.
The most severe challenges that these community projects face usually come months or years after their inception. Sometimes previously active members slowly become inactive, and often the ideas of the active members may evolve — sometimes in divergent directions.
Many people (particularly those involved in OSS development) believe labour is ‘replaceable’. As long as a process is documented, if a community contributor leaves the project, his shoes can be filled by anyone with the required technical expertise. I think this is a dangerous assumption to make. Finding a replacement who is willing and able to work on a volunteer basis, groks the group’s thinking and is technically capable is often harder than one might imagine. It’s easy to find people who meet two of these three criteria, but much harder to find the perfect match.
I think the second problem — divergent ideas — is the more severe of the two (and greatly exacerbates the first). As projects evolve (as they all do with time), contributors may develop different priorities or sometimes even different goals. A sufficiently motivated contributor often puts in extra hours for the benefit of the project to make up for the inaction of others. But divergence of goals or ideas at the most basic level can destroy this motivation.
I’m not sure what the best way is to solve these problems, I don’t see that there is a one-size-fits-all solution. Each project has to find its own unique way in the end.
I was motivated to write about this today because one of my friends, Yusuf, is facing similar issues with one of the projects that he’s involved in. His perspective on this issue is worth reading.
This is an excellent post that highlights what IMO are key issues for open source communities. A couple of points I wanted to expand on:
On the point about volunteers being replaceable or not, IMO healthy projects have a good mix between full-time contributors who are very often paid (otherwise they couldn’t do it full-time), casual volunteers (e.g., who might submit a bug report now and then), and part-time volunteers who do a lot of critical project work on an ongoing basis. I think it is this third group, the committed part-time volunteers, who are most irreplaceable; as you point out, they are typically both technically capable and highly knowlegeable in how the project works and how to get things done. Full-time paid contributors do useful work, but sometimes they are not as plugged into the project and its ideals as committed volunteers.
A project can always go out and hire someone (if it has the money) and can also try to attract more casual colunteers to replace old ones, but it can sometimes takes years to recruit committed volunteers and have them evolve into key contributors as they gain experience and standing within the project.
On the subject of divergent ideas: You are right, conflicts over priorities, goals, and project ideals in general can “turn off” contributors; as you imply, this can especially be the case for committed volunteers who are participating primarily because they believe in the project and not because they’re being paid. (Thus your two points are closely connected.)
I agree that there is no “magic formula” to address problems due to divergent ideas. I think the best one can do is to try to treat project contributors and their views with respect and work to ensure that contributors are involved in project discussions and decisions that might affect them. At least that way any conflicts can be handled openly and honestly, as opposed to key contributors feeling that their opinions have been neglected and denigrated.