Without being familiar with many other FLOSS projects, I still think I can say that CiviCRM has a particularly robust community and does a decent job of soliciting contributions from many different community members, and many different types of community members.
CiviCRM does seem to operate in the benevolent dictatorship model, wherein there is a cathedral of a few main decision-makers that have established authority by eliciting input from the community, which is surrounded by a larger bazaar of many who contribute less, or only on a limited portion of the project, or for a limited time.
The following two individuals are a testament to the inclusiveness of Civi community, as well as to its sustainability. Together, they embody a range of types of contributions in the community. This first is a blog post by a new person (known as capo) encountering the Civi community and contributing for the first time. Clearly, capo was positively surprised at the ease with which he was able to participate and immediately be able to do something useful after finding a bug. Kurund, who he mentions in the post, is a core team member and took advantage of the author's eagerness to pitch in by working closely with him to submit his patch. By the tone of his post, he seems likely to contribute more soon.
Contrast this with Joe Murray, a long-time participant who has contributed enormously to CiviCRM since it started in 2005 as his story shows in the July 2013 newsletter.
The incentive for these two to participate (who are pretty representative of other community members) comes from the fact that most developers participate on behalf of clients to make the software work for them. They can take it upon themselves to focus on improving some feature of CiviCRM, and there's great flexibility given to do that.
Because I'm not a developer nor am I working with clients anymore, the story is a bit different for me. Dave and Michael, the two who keep tabs on documentation work and community engagement, have been extremely responsive to my communications and suggestions. However, I've noticed a shift in my own participation in the community, which is worth some reflection.
Previously, I participated as a staff person at an organization that was deeply invested in adapting the software to a particular niche of the nonprofit sphere that did community organizing work. My participation was sporadic, but occasionally quite deep, as I got spend days at a time on documentation work when I participated in sprints. Sprints are gatherings lasting a few days to over a week in which self-selected or core team-selected developers, administrators, and users come together to code and write documentation for new code in a burst of activity. This was my deepest engagement with the community.
Participating in this way, as well as providing tech support on the software and constantly coming into contact with bugs, suggested improvements for workflows, and feature requests, kept me in the know about the state of CiviCRM. The community of users is now so big that it's nearly impossible to wrap one's mind around the entire project, or understand the entire tool at once.
Now, participating as a "free radical" as part of this class, I feel out of the loop and am not using a CiviCRM database nor working actively with anyone who is using it. My contributions rely on my previous work with CiviCRM, and what I know about how the community has worked in the past. Since this realization, I've spent some quality time on the forums (which serve the purpose of the mailing list in other communities), reading the newsletters for the past six months, and the blog, doing my best to get caught up on who is active in the community, what features and projects are underway, and what has happened lately.
It's fascinating to read about what happened at the latest sprint. The author highlights new features, CiviVolunteer released in beta, and CiviBooking, which I've never heard of.
This leads me to the conclusion that participating in CiviCRM has a high barrier to entry simply for the complexity of the tool. To explain what Civi does and keep track of all the ways it's being used in different organizations is literally impossible. My own participation has worked best when directly motivated by clients' needs for better explanations and documentation.
Nonetheless, I'm still working on something that's been lacking for a long time. I'm developing a "Civi universe map" for the main CiviCRM website that gives community members a sense of the lay of the land. This is an extension of my goal to help newbies ask questions the smart way.
I've also reached out to another newbie to the community who identified a similar problem and would like to make Civi more newbie-friendly. After reading her blog post about it, I'm wondering if she'll contribute to some edits and thinking around how to present the material I'm gathering. I am waiting for her response.
In discussions with Dave and Michael, we also decided that a FAQ might be useful for the website, so I'm drafting answers to frequently asked questions that Dave suggested. I'm finding it quite challenging, because there are double-digit numbers of sites related to managing Civi work and staying in tune with the community. I am still pulling together all of the possible areas where the Civi community lives, and drafting an explanation of when to use them and in what order. I have some hope this work will spur consolidation of some of the many sites, but for now, to just make it all more transparent is my goal.
added Comments Thomas 11/6/2013 (see commit description)