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.