For Ada Lovelace Day, I blogged about two ground-breaking open source projects which both have a majority of female contributors. Since then I’ve been collecting more information about both of them. The first thing I did was gather some stats about the projects: number of contributors, lines of code, and so on. You can go look it over if you like, but in short, we have:
1. Dreamwidth, 210k lines of Perl forked from Livejournal; ~35 developers, 75% female.
2. Archive Of Our Own, 60k lines of Ruby on Rails; ~20 developers, 100% female.
Next up, I surveyed female developers on both projects. Their responses were amazing. Here are some quotes/extracts that really jumped out at me.
I started by asking people about their prior programming experience, and any other open source projects they’d been involved in. While a few had submitted patches or written docs for other projects, most hadn’t.
I’d certainly never contributed to an open source project before, or even considered that I could do.
[Other open source projects] all seemed too scary and unfriendly to new developers. There was no obvious “if you want to learn and get involved, go here”.
I’ve considered getting involved in Debian, but I’ve never really had the time, and the barriers to entry have always seemed quite high.
did a lot of testing and some docs for it early on. i never really connected with people. that’s my usual experience with open source, and why i’ve never stayed with a project; i think i am looking for more community than simply a technical one, and while i can geek out with the best of them, i want something more.
Honestly, the LJ dev environment felt very closed — the code was available for people to use if they wanted to install it themselves, but that’s kind of like being handed a box full of random bicycle parts: it doesn’t help when you don’t know how they go together and just want to learn how to ride a bike. It never even occurred to me to contribute code, and I never got the impression that “outsiders”, people who weren’t real devs, would be tolerated all that well.
Tried to get into LiveJournal development back when LJ used Zilla, but no real success. Didn’t feel like I was really wanted, and at that point IIRC, most of the stuff was kinda scary (haha, stuff I do now is a little scary at times, but I’m more confident as a developer now) — and the stuff that wasn’t seemed to get ignored. Never really really worked on any projects, however have been doing personal projects since I was 6.
What shes likes about Dreamwidth?
I like it that I’m “allowed” to do the complex scary projects.
One thing that seems to happen on a lot of projects is that people without a ton of tech chops get shunted off to side areas (doc, support, general cheerleading), and those areas end up as the ladies’ auxiliary. With DW, those boundaries are fluid: people who have been working in other areas can say, hey, I want to try some coding, and people who code do other jobs, and the result is that there is no sense that one area is the important one.
What I like most is that there isn’t any attitude of “stand aside and leave the code to the grown-ups”. If there’s something that I’m able to contribute, however small (and I have submitted a patch that changed precisely one character of code), then the contribution is welcome. And by being free to do what I’m able to do, I could also learn to be able to do more stuff.
It is easy to get involved, easy to make a difference, and there are always people willing to help if you’re stuck. [...] The kindergarten channel on IRC helped, and the stuff on the website saying they welcomed babydevs, and the babydev-bait list of easy bugs.
A lot of Dreamwidth developers mentioned “Dreamhacks” — hosted development environments — available to anyone who wants one.
Having the dev environments provided and experienced people willing to spend time on reviews has helped a lot. Without them, I doubt I’d have been able to do anything at all.
Could I set up a dev environment? Sure, with enough ibuprofen on hand. Do I want to load a bunch of extra stuff on one of my machines, or scrape together enough 64-bit parts for a spare box? Not reeeeeally. Having an environment available for the asking is a very pragmatic sign of DW’s commitment to nurturing the dev community rather than putting up hoops for new people to jump through.
It’s … very beginner-friendly for being a large project. The dreamhacks help — practice bicycle that’s already more or less built, that I can play around with without harming anyone else — and the encouragement of baby devs helps, the fact that someone trying is met with “yay o/ if you could fix X, Y and Z, that would be awesome” rather than “… you got X, Y and Z wrong, ffs, why are you even trying, go off and play in the corner and leave us alone”.
It’s also — still — confusing and over my head, and there are a lot of things I don’t grok about the way stuff works, but I don’t necessarily *need* to. Even if I end up bailing on the current projects and just sticking to occasional minor tweaks, I really like the fact that I’m *welcome* to do that, that baby coders doing minor things are greeted with enthusiasm instead of dismissal. (And I like being able to turn around and help other baby devs, even if my ability to do so is minimal.)
This was all before we had a formal mentoring system, and before we started offering hosted Dreamhacks, so I set one up on my own server (with lots of help from Sophie). But even back then, everyone was supportive when I asked lots of questions, Mark reviewed my patches most helpfully, and I kinda got pulled in. No one ever asked me what I could or could not do, but I saw the need for someone to do development so I stepped up to fill it.
I guess what I’m trying to say is that I had the background to get started up fairly quickly, even if I didn’t have the experience everyone else had. And then the nurturing environment in DW helped me grow: it’s been an amazing experience.
And then there are the experiences people are having on these projects.
But, more seriously — deep down, I had always assumed coding required this kind of special aptitude, something that I just didn’t have and never would and lol, not even worth considering, how ridiculous is that to even think about trying? (I would fail! and everyone would laugh at me!)
Well. I have my hands full with translation, but the thing is: I now believe I could try it. Why not? It’s confusing and probably cruel and I would suck at it, but it lost this forbidding mystique when I learned that people I had assumed to be super-coders (surely born with keyboard attached!) had only started training a year ago. People without any prior experience! Women! Like me! Jesus! It’s like a barrier broke down in my mind. (That sounds extremely lame and “DUH! ya think, stupid?” but it’s been a real epiphany to me!)
The other thing that’s wonderful is how much work people are prepared to put into holding my hand when I am trying to deal with things like Mercurial and Dreamhack installations and such. And the way that whenever I’m working on a bug, all kinds of people show up with helpful suggestions for how to solve problems or improve my code.
I actually never expected to be doing any code myself. When we started talking about DW, we figured Mark would be doing all the engineering-manager and ops-manager stuff and I’d be doing all the business-manager stuff. We hit a point where there were a lot of little-details stuff, though, and I looked at them and went “hmm” a lot — then, when Afuna said she had set up a hosted dev environment and was offering space, I finally said “why the hell not”. So I did one or two little changes, and the next thing I know …
I’ve done a bit of coding up until now — some minor scripting for system administration, etc, and a lot of coding on a MOO I used to hang out on — but not a whole lot. This is the first time I’ve ever worked with source control, first time I’ve worked with perl, first time I’ve dealt with anything of this complexity, etc.
I most love the fact that every single developer on this project, from Mark on down, is willing to take the time to help someone else out. When I get stuck on things (which is pretty often), I can grab someone and shout for help and get it. That alone makes me a lot more comfortable with wanting to try things that are just slightly outside of my comfort zone, since I know that if I get really lost or frustrated, I’ll have someone there to help.
I’m not even going to attempt any kind of synthesis at this point. I think these women’s words speak for themselves.