Your infrastructure ain’t a special snowflake… and neither are you

This blog post originally appeared on my other blog,
but I decided to move it here to keep all my IT blog posts in one place.
I’m sorry to break it to you, guys, but you’re failing miserably on the DRY front.
I’m on a mental health break from Twitter. What led me to it was another reiteration of the same old story: men organizing tech events for other men, ignoring or hurting everybody (or almost everybody) who is, well, not a man. Wroc_love.rb didn’t want to have a Code of Conduct this year. After a semi-official twitter statement in opposition of a CoC from one of the conference organizers, months of trying to convince the organizing team followed. After yet another round of questions, which resulted in Wooga’s logo disappearing from the conference website (people are still waiting for any official statement from either Wooga or wroc_love.rb), and three days before the event, some people on twitter cried success: wroc_love.rb now has a Code of Conduct. That it happened after all the tickets were already sold out, after the organizers/employees of sponsors had their rounds of being horrible to concerned minorities on social media, after the CFP was long closed and the (drum roll) 100%-male lineup ready; that it obviously was an action directed at saving face – that is irrelevant. Because Every Small Step Counts™ – even the ones over the trap door – the White Boys’ Club is happy.
I went on a break not to witness all of this unfolding in real life (also to lower my level of snark, which, as you can see, still has a long way to go). I’ve already ranted enough and had my share of shit thrown at me. I do talk about issues like these with a couple of closer friends, and one of them articulated today what a lot of us feel more often than we’re probably willing to admit: we’ve already been through this. This constant repetition is extremely exhausting.
It’s always the same old story, isn’t it? Same counter-arguments. Same erasing. Same disbelief. Same unwillingness to learn. Eventually, same backlash and insults. Same We’re All Adults mantra. Same If You Won’t Educate Me, How Will I Learn. If we treated our coding problems the way we treat our community problems, we’d still be in the pre-compiler era.
So many of us who are reluctant to change our attitudes – or even to acknowledge problems – repeat the same cliché, regardless of the amount of data speaking to the contrary: “Women just aren’t interested in programming”; “Codes of Conduct will make us walk on eggshells”; “Meritocracy works”; “We’re all adults”. At the same time, we adopt new ideas in technology with virtually no hint of criticism. Being an early adopter is a really Big Deal. We started treating our infrastructure as code because we saw it worked for others, it made sense. We jumped on the container wagon enthusiastically, because we believed there was proof that was what we needed. When we sit at a conference and hear the speaker say, “Your infrastructure isn’t a special snowflake”, we enthusiastically nod and tweet an OH. We use gems and tools and read books and blog posts to help us keep our code stick to the more and the less obvious design principles. KISS. DRY. Separation of concerns. We’re so proud of that.
“Bentley Snowflake5” by Wilson Bentley. Licensed under Public Domain via Wikimedia Commons
But when it comes to problems in our community, we don’t learn from other people’s mistakes. We ignore all the data. We refuse to actively educate ourselves. All of a sudden, each case is new and special and so-one-of-a-kind and I’ve-never-seen-it-before. There are no blog posts, there are no books, there’s nothing on StackOverflow. Trust me. I didn’t even have to check. I just know. Sure, there are some crazy people babbling something about inclusiveness and safety in the background, but they obviously don’t know what they’re talking about. My case, my event, my audience is a special snowflake.
Time for some brutal honesty, mate. What do you think makes your community event so special? What makes you believe that the people attending your event were created from a different kind of rib? The rib of Adam von Meritocracy, maybe? Western programming communities are quite homogeneous. There is only a limited amount of diversity in behaviors, approaches and opinions in a group that anyone with bad eyesight will easily confuse with the Grand Army of the Republic. Can you personally vouch for everyone coming to your event? Or is that your ego speaking? You’re not a special snowflake, and neither are your friends. You’re a flawed human being. Just like me.
The ways we organize our code, the community-wide standards that we implement? On a certain level, they’re all a matter of informed opinions. We agreed being DRY is better than not, because it makes the code clearer, easier to maintain, sometimes even makes it recyclable. We extract code with potential for reuse into gems so that we can use it across various projects and so that others don’t have to reinvent the wheel. We are aware that other people had, are having and might have the same problems as we do, so we’re nice to people and we share on an open source license. And when these people come back with issues or pull requests or comments, unless we’re some sort of a Linus impersonator, we will be civil and welcoming about them. There’s loads of evidence that DRY works and we don’t pretend it doesn’t exist when someone waves it right in front of our faces. We can all agree that that would be silly.
But with community-related problems, so many of us change what is a mostly data-based discussion into a petty vim/emacs-style fight. Vim/emacs fights are embarrassing. They’re the equivalent of a sandbox toddler fight. Worse, they’re like poison for unicorns. When you’re witnessing a community-related problem for the first time and you behave as if it’s never ever happened before, you choose to ignore all the historical data proving it’s not only not the first time this has happened, but that there are also existing solutions, or at least suggestions on how to solve the problem. When you make yourself believe your case is special, you’re lying to yourself. Often, you’re hurting others. You’re also, obviously, acting against the DRY principle.
DRY is such a cool thing. It seems so basic, but makes our programming lives so much easier. And learning that our work isn’t all that special and unique is essential to optimizing tools and approaches that we implement. Because we can learn from each other. Thrive on experiences and avoid known mistakes. Believing we – or our work – are as special as a random drop of frozen water is what stops us from growing. I’m not saying our work isn’t valuable or important. Most of it is sure as hell worth the praise it gets, some of it should get loads more praise. But if we don’t let our egos stop us from growing as programmers, administrators, engineers or testers, we shouldn’t allow our egos or some sort of confirmation bias to stop our community from solving problems and becoming more balanced and healthy.
There are reasons why Codes of Conduct work. There is proof they work. Same thing with a blind selection process or how diversity in your speaker lineup improves your event’s quality. You just have to show some initiative to find that proof. It’s really out there, openly accessible. Just like with that weird coding problem you encountered last week – show some initiative, and everything is going to be fine. The community is here to help you, but only if you’re willing to listen.
PS. Thanks to Tom, Chris and Daniel for your comments. Thanks to Michael for coining the all-time classic infrastructure/snowflake dichotomy.

Codes of Conduct, and stuff

This blog post originally appeared on my other blog,
but I decided to move it here to keep all my IT blog posts in one place.
I had a very interesting conversation with Florian Gilcher a couple weeks ago. Florian – one of the eurucamp organizers – shared his experiences on how hard it gets sometimes when you want to show how useful Code of Conducts are. Sure, you hear about People Doing Bad Things And Being Thrown Out For Them, but do you hear stories about how CoCs actually make the events more diverse? You know, the thing that’s missing is voices coming from people that started going to conferences, became active in a community thanks to being provided a safe, welcoming space.


I thought I could share my story, then.


Let’s go back a couple years. I’ve been trying to learn how to program two or three times. Each time I started getting it, some sudden Bad Experiences held me back. It started over ten years ago, in high school, and continued for quite some time (I don’t want to write about these experiences here, but if you really want to know, write me, and I might share). If you’ve been there, you know it gets a little harder to come back to it each time stuff happens.


Fast forward to a year ago. I became a software engineer. I slowly started giving talks at Ruby user groups, plus a lightning talk on an occasional bigger conference. I had ideas, but never submitted any actual proposals, for, you know, real talks. I’d say impostor syndrome might be at fault here. Not shyness – as a campaign manager in an NGO for a couple of years, I’ve been in the media more times than I can remember. Public speaking was a natural thing for me. And even on my worse days, I still considered myself quite a smart person. Public speaking at conferences, where almost everybody was different from me, where I stood out, about a topic I felt uncomfortable in, was a bit mesmerizing. Scratch that: it had significant panic potential.


Last year’s eurucamp was the first conference with a code of conduct I’ve been to. The organizers not only implemented one, but they also went to great lengths to invite a diverse audience. They did outreach to women and other minorities. They designed a blind selection process, to make sure their own biases do not get in the way of picking great speakers. They made it clear that everyone should stick to the rules in the code of conduct and were ready to take action and apologize for any misconducts.

I decided to give it a go. I got a ticket.


When I entered the venue on the first day of eurucamp, I felt… weird. Uncanny. “Am I really on a programming conference? There’s, like, so many women here!”


Yep. About 30% of the people in the hall were women and that was the first thing that came to my mind. And I’m a diversity advocate. Good job, girl. Seeing mostly white men at every programming meetup I’ve been to made me internalize this picture so much that entering a programming-related venue and seeing a group of people that resembles the society I live in a bit better gave me a genuine wtf moment. I’ve worked it through, but I honestly find my initial response a bit embarrassing.


eurucamp topped it this year with their mentorship program, where each chosen speaker received a mentor by default. Sounds perfect for people like me: scared to ask for help, sure to consider all their questions silly. A code of conduct, an outreach program, mentors – and, what was surprising to me, at one point I thought it’s time to (gasp!) submit a talk proposal. For a real talk.


So eurucamp was the only big conference I was able to send a talk proposal to. I was also confident in them enough to ask another friend to submit a talk – a friend that never goes to any user group meetings because she just doesn’t feel safe. I was pretty sure she’d feel safe at eurucamp. It’s horrible that smart people like her (or any people, for that matter) have to skip community events because some other people sometimes cannot into decent person.


So what did I want to talk about? Well, I wanted to talk about how the stages of development in literature can apply to the stages of development of programming languages. You know, how these two processes are actually similar to an extent. Weird? Yeah, but for someone with a literary studies background – extremely interesting and doable. When my talk proposal ended up not being chosen, but was rated very highly, a number of people encouraged me to brush the proposal up a bit and submit it somewhere else. I started doing that, but I finally quit. Silly or not, I guess I just still felt too scared. I feel it’s slowly changing though. Thanks to events like eurucamp, where organizers realize the process of getting great speakers at a conference does not end with announcing a call for papers, more people feel safe. People like me feel what they find interesting might be interesting and valuable for other people. People like me, who feel they might actually be smart. That can be a valuable part of a community, but have a limited chance without a safe space. And yeah, people that feel if anything goes wrong, someone will help them.

So that’s my two cents.