Dreamwidth's Diversity is its Strength
Openness, Mentoring, Diversity
Dreamwidth, the community-based open-source blog service, has been highlighted recently for the diversity of its developer community (specifically, the fact that, very unusually in the OSS world, it has a majority of women developers), and its newbie-friendly dev culture. I spoke to founders Mark Smith and Denise Paolucci about open source, creating community, and how the project has taken off.
For community-based software, OSS has clear advantages. Denise and Mark both note how useful it is to have core developers be people who are passionate about your software, and the advantages when users can all contribute. You also get access to a large pool of volunteer developers, and a hugely diverse skillset – need a particular sort of expert? Put the word out on the grapevine, and see if someone will stop by to help out.
On the other hand, keeping all contributors in step with one another can be hard work, and most OSS people have at some point encountered some version of the bikeshed argument. It's possible to avoid major derailments with the right project culture and project leadership, but it's all hard work for a project manager, in a very different way from what's required in a corporate environment.
The planned project timeline doesn't always fit, either, with what volunteer contributors find interesting and want to work on. But this diversity of contributions also has a positive effect, which Denise happily describes as leading to "a dizzying explosion of change and improvement in all directions". The ease of contribution, which Dreamwidth has been at pains to maintain, has also helped this proliferation of ideas and code.
Openness and Diversity
Both Denise and Mark are incredibly enthusiastic about the diversity of Dreamwidth's developer culture. Denise describes it as "absolutely stunning", and Mark says "I completely attribute Dreamwidth's success to our open and diverse culture".
Both of them have past experience in other OSS projects, where often less effort is put into encouraging developers, and where a tiered development culture can promote big flashy projects at the expense of small patches. That, in turn, can lead to losing developers. As Mark notes, people tend to prefer environments where both they and their work are respected and welcomed, and generating that sort of environment has been a major focus for Dreamwidth.
Dreamwidth does have contributors from more traditional OSS environments – but the really interesting thing about the project is the way in which it's attracted people from outside that bracket. There's only so many existing coders to go around, after all; to get more new OSS projects off the ground, the OSS community as a whole needs to be encouraging new people to get involved.
Denise identifies four major areas where they wanted from the outset to challenge the dominant structures in OSS projects:
- Creating a culture where all contributions, of whatever size, were equally valued, praised, and encouraged. This helps to retain the people working on the unheralded small or underlying stuff, as well as those working on the big shiny things. This was particularly important for Dreamwidth given the legacy code they started with and the need for a lot of initial cleanup and maintenance. "All submissions are welcome," says Mark, "and they don't sit, ignored, to wallow in the bug repository for years until the contributor quits."
- Creating a culture that was collaborative, rather than competitive. In particular, they wanted to promote the idea that a partial patch is a positive thing rather than a negative thing: concentrating on the 80% of work done on an issue rather than the 20% still left to do. Denise sees this as one of the most important parts of Dreamwidth's success.
- Putting some form of mentoring or coaching process into place, with lots of transparency of information. Initially this was to bring others up to speed on the complicated legacy codebase, but it turned out also to be a great way of getting people with little or no experience into the project.
- Offering hosted dev environments, with the software already installed and set up, so that new developers can get on with coding as soon as possible, rather than having to struggle through a setup process first.
Mark adds: "In our experience on Dreamwidth, it seems that one of the big reasons that we have attracted so many contributors is that we make it easy to sit down and work on what you want to work on." Removing as many hurdles as possible again tends to encourage developers with less – or even no – experience, who are going to be disproportionately put off by higher barriers to entry.
Mark talks about making the choice to review patches and walk contributors through the code, inevitably at the expense of the time available to do his own coding. He sees the discovery that enabling others to contribute is actually a better use of time than just coding himself as "a hard but worthwhile lesson."