Circles of Django (2007)
So here’s a question I get asked a lot: "How big is Django’s community?"
Anyone who works in open source knows that it’s basically impossible to know the size of any open source community. It’s easy with commercial programs — just look at the sales numbers — but since F/OSS is freely (and widely) available, there’s almost no way to know how many people are using your project.
Still, the tie-wearing enterprisy business folks ask these types of questions, and it’s useful to have an answer ready. What follows is a slightly adapted version of my standard answer.
It’s best to think of Django in terms of concentric circles of people ranging from the outermost group of "every user ever" down to the select group of core developers. Most open source projects — Django included — operate very much as a meritocracy: prove yourself at the user level and you’ll gradually become a trusted developer; prove yourself as a developer and you’ll develop an increasingly powerful voice within the community.
In most projects — Django included — these groups break down roughly like the following:
At the outer level, there’s everyone who’s every used the tool. It’s nearly impossible to estimate this number, though here are a few tries:
- The Django site gets around 1m hits/month — but that doesn’t translate to users.
- The official Django tarball gets downloaded at a rate of about 1k/day — but again that doesn’t translate to users since Django is mirrored all over the place, and since many people deploy directly from Django’s SVN repository.
- About 500 sites are listed in the community-maintained list of Django-powered sites — but that’s a completely voluntary listing, and I know a huge number of projects aren’t listed. Indeed, at least half the Django users I’ve talked to use it on intranet sites only.
There’s a (much) smaller group of users who actually join any project’s community.
Django’s official users mailing list has around 4500 members right now, and is growing by nearly 100 members a week these days.
A much smaller group actually participates in development discussions and planning.
Django’s official development group has just under 2000 members, but I would guess that only about 100 participate regularly, and only 20 or so participate frequently.
Then there’s the group of people who actually help development (in the form of bug reports, patches, or contributed modules). So far we’ve acknowledged contributions (in Django’s AUTHORS file) from about 160 people.
The most prolific of those contributors eventually gain limited commit access to the project. Currently we’ve got about 10 developers with access to limited areas according to their expertise.
Especially trusted contributed become what we call "core contributors" — people who have unlimited access and trust. There’s currently five of us with that power.
Finally, Adrian and I get to play Benevolent Dictators For Life: we get the final word in any discussion. In practice, though, we almost always aim for community consensus. The BDFL title is taken from Python’s process and used (by them and us) in a somewhat tongue-in-cheek manner.
Our role as BDFLs is more to channel the community’s wishes into action then to dictate (though we do dictate on the rare occasion it becomes necessary).