This is a guest post from Alex, who is a volcanologist in their spare time. When not messing about with rocks in their underground
lairlab, they can often be found shouting about trans (especially genderqueer) rights, earlier diagnosis of endometriosis, and books with dragons in.
Content notes: sexism, abuse
My dad was among the first cohorts to graduate in Computer Science at a prestigious university back when the course was introduced. Every single person I’ve been involved with long-term – and some of my major interests along the way – has been a computer scientist. Over the course of my life, I’ve frequently chosen to hang out with programmers; in my early-to-mid teens, I spent a slightly worrying amount of time on Netnews (yes, as distinct from Usenet). I grew up in the Silicon Fen. I half-joke that I was brought up by the Internet; I’ve just graduated with an MSci in physical sciences from a similarly prestigious institution.
And it wasn’t until 2012 that I first wrote code.
Hello, everybody. My name’s kaberett, and I’m a Dreamwidth volunteer.
Code. It’s used in my field: it’s a vital component of modelling. I’ve spent my life surrounded by coders and design architects, by people whose reaction to “nothing exists that does what I want” is “okay, I’ll build one, then”; whose reaction to “I’m bored” is “what can I make?” And still: it was 2012 before I wrote any code.
Sadly, I think there’s a pretty obvious first-order explanation for this: I was assigned female at birth, and socialised accordingly. I spent my childhood being torn down by my computer-programmer father for “not having learned [that] yet,” or for answering questions “too slowly” at dinner, or being told I’d “never get a job if…” or being yelled at about how valuable his time-that-I-was-wasting was.
Does this mean I think all programmers are like him? No. Did it mean I was too scared to use the (theoretically) best resource available for me to learn from? Yep! And it landed me with a whole bunch of other issues. Asking for help with maths was right out – and so, really, was asking for help with anything. I’d acquired the conviction that I’d be belittled and torn to shreds, and that any information I did get would have more to do with building up my “instructor”‘s ego than my own knowledge base.
That experience is what I’m bringing to the table here. That, and a whole lot of reading, about the issues with diversity in FLOSS culture – and some more first-hand experience, this time with a place that is, by all accounts, doing it right.
And here’s what I suggest: in terms of getting high-quality code written by a diverse community, line-for-line my gut says that tech confidence is much more important than (perceived) tech competence.
Let’s pause a moment, while I define my terms. I use (perceived) tech competence to mean, broadly, the (perceived) ability to identify and fix a problem (without use of external resources). I use tech confidence to signify the belief that this is something that one can do – or learn to do, if one doesn’t know how to yet: it’s about trusting yourself to be able to figure it out, and trusting your community to help you rather than deride you if you ask questions.
And that, right there, is where we stumble straight back into the issue of the meritocracy: the idea that a competitive environment – in terms of number of lines of code written, or features rolled out, or bugs squashed – is more important than one that values every contribution and every contributor.
Meritocracies are inherently broken, and competitiveness – while sometimes healthy – also erects an enormous barrier to beginning volunteers and coders. An ivory-towered culture of enthroned experts – one that enforces the idea that you must have a high level of technical knowledge to be worth talking or listening to – makes many people afraid to ask questions. This in turn makes learning slower and knowledge transmission harder, and leaves the group more likely to land in a situation where the only person who understands how to do what Sam does is, well, Sam. And that’s a problem – when Sam becomes ill, or they take a holiday, or they decide they don’t want to be involved any more, or sometimes they die. This is something that’s seen over and over again in, for example, the field of graptolite studies.
Let’s take a diversion, actually. Graptolites are an enormously important extinct species, most a couple of inches long at the outside, and they more-or-less resemble saws. Their diversity and steady morphological evolution – and the fact that they were found in all oceans on the planet – makes them superb for establishing relative ages of sedimentary rocks in the geological record. Problem is, there’s hundreds of species of the little sods, differing in such minutiae as how many thecae (saw teeth) they have per centimetre, the percentage overlap between thecae, the extent of curvature… which is all fascinating, except for the fact that the most recent illustrated catalogue of known species? Was published, as a serial, in 1901. (Want to know about some awesome scientists, incidentally? Look up Gertrude Lillian Elles and Ethel Mary Reader, née Wood.)
Do you know how many species have been reclassified since 1901?
Answer: a lot.
And so your best bet for identifying a particular graptolite is, if you’ve got one, to hunt down your local expert and get /them/ to do it for you.
And then, in the way of all flesh, they die – and you find yourself waiting for the next generation of experts to develop their eyes, because none of them write any of this down.
One of the things I’m spending a lot of my volunteer time on at the moment is encouraging Dreamwidth’s new volunteers (affectionately referred to as “babydevs”). This means, in practice, that I’m spending a lot of time writing documentation: how to do things that Everyone Knows, so that there isn’t the entry barrier of perceived “wasting senior devs’ time with trivialities”; so that we get consistency of explanation; so that we are more welcoming.
As I’ve said, pretty much my entire experience of volunteer work in the FLOSS world is at Dreamwidth, where I’ve been encouraged, throughout, to get started, to ask questions, and to seek help. Dreamwidth values my broader contributions to the project just as much as it values any code: I’m valued as much for tagging our incoming suggestions for features, adding to our volunteer wiki, putting together lists of easy-to-tackle bugs (“babydev bait”), and for end-user support, as I am for what coding I do. And that’s important: I got embedded in the volunteer culture well before I started trying to learn new skills, and the encouragement and support I got for that made me believe that I’d have the same level of encouragement and support if I attempted to branch out. It’s not just me this helps, or people who are new to coding: we also make space for people who already can code, but haven’t yet found time to contribute to any project due to other obligations. We’re always working on making public records of this: for example, our wiki entry on Things Real Dreamwidth Programmers Do is a relatively recent invention.
And all of this is crucial, not just to my own personal growth (which – obviously – I’m very grateful for!), but to Dreamwidth’s success as a FLOSS project. It is not focussing, first and foremost, on tech competence: instead, we work towards fostering tech confidence, through creating a culture where babydevs know that senior devs have their backs; a culture where people feel able to ask questions of the broader community, in public as well as in private; a culture where people learn how to test and debug and Not Give Up; a culture where our co-founders own their mistakes, and do so publicly, so that nobody has to feel alone. When people get discouraged, we give them pep talks. We remind people that it’s okay to learn visibly, instead of having to pretend to be entirely competent all of the time. Everyone can learn from the mistake that anyone makes – and mistakes are caught soon after they happen, so consequences can be minimised.
This is in stark contrast to communities where tech competence is valued above all else: where people feel they have to hide their mistakes. In such settings we routinely observe low volunteering rates from people in marginalised groups, with low retention from beginning volunteers, because people are too scared to ask for help or too scared to admit that they don’t know how things work. This isn’t unique to FLOSS cultures, of course – I’ve just finished a degree at a university regularly ranked in the top 5 globally, and I am appalled by the way in which this institution pushes people towards poorer understanding through militating against asking “basic” questions. It’s a habit that leads to misunderstanding, and misunderstandings lead to bugs, and it’s generally an all-round disaster, in which nobody wins.
So: please, if you want to promote diversity in your volunteer base, consider fostering an atmosphere conducive to tech confidence. It makes spaces more pleasant to occupy, and it produces real tech competence. Looking at things this way round? Well, I can’t see any losers.
 That’s not quite true – when I was 12 I spent a fair bit of time messing around with basic HTML and CSS to individualise Neopets profiles. But: it wasn’t standards-compliant; I wasn’t learning the languages as a whole, or even really their grammar; and it was a very structured sandboxed environment, where even very basic efforts were encouraged.
 Compare and contrast with the Perl virtues of laziness, impatience and hubris – except that “confidence” has the negative connotations of “arrogance”, because we are, in many cases, taught that it is bad and wrong to be able to accurately assess our capabilities and state them clearly – and it is especially wrong to reassess our abilities in the light of new information.