Jason Cohen once said that “Every company has a culture. The only question is whether or not you decide what it is.” - I couldn’t agree more. I think this can extend further, though, not just to companies but to any group of people working together.

Bands have a culture, stereotypically defined by their genre of music. Sports teams have a culture. Towns and cities obviously have a culture. Even brands have a culture, not just internally, but externally as well (Like Red Bull). The word “culture” really comes down to any set of values which are adhered to and promoted by a group of individuals.

Either you choose a culture, or you end up with one.

Open source projects typically have a very strong (which is to say: clearly evident) culture. Unfortunately most of the time, in my experience, it’s not one which is consciously chosen.

The majority of open source projects start out as a couple of people hacking away to build a tool. Then occasionally they blossom and eventually grow into something far larger. The culture of the project evolves not with the codebase, but rather with the contributors who participate in writing it.

For open source projects, culture has nothing to do with what test suite you use, or what code standards, or how often you release. Culture is the tone of the comments in the issue tracker. Culture is the jokes which are (or are not) deemed to be acceptable in IRC. Culture is the type of response which is given when a new contributor shows up with a “stupid” question.

If you run an open source project (or a company, or a band) there is a great deal of responsibility on your shoulders to set that culture. If you start out with “harmless banter” when you’re just 3 people, each new person who joins the group will understand that this is the code of conduct which will allow them to “fit in” with your crew. In short, each new member will mirror the behaviour of existing members. The more members you have, the harder it is to get all (or any) of them to suddenly do something different.

Whatever vibe is present within a community is the one which is generally perpetuated and repeated throughout it.

Approaches and Results

Two recent examples in particular come to mind:

Last year the Drupal project had one of the best cultural initiatives I’ve ever seen for an open source project. It was called Getting off The Island. The premise was that it’s easy to get stuck inside a little bubble of the one technology that you’re working on, forgetting the wider ecosystem of projects and even other languages. The initiative encouraged Drupal contributors to “get off the island” and go out into the world and learn from other open source projects. Then, return with new knowledge and skills that might benefit Drupal in the future. I was invited to speak about Ghost at DrupalCamp Vienna last year as a part of this initiative, and it was the most interesting conference I attended in 2013.

There is so much to be learned when some of the competitive animosity is set aside for a moment, and we stand up and say “Hey, we’re all trying to do roughly the same thing here - why don’t we learn from each other?” - Initiatives like this demonstrate wonderful leadership and vision from Drupal. They clearly set the tone for the future of the project, as well as being a role model to other Open Source projects.

Conversely, it’s sad to see a sometimes disparate culture in the WordPress core community. Anonymous twitter accounts like WordPreh and DerpPress spend all day, every day, mostly cutting down other people and projects. It’s like a niche version of Secret app. Regular ad hominem snark directed at people both inside and outside the WordPress community.

The problem isn’t that these accounts exist - of course - It's impossible to prevent that sort of content from occurring somewhere on the internet. No, the problem is that they are not just tolerated, but actively followed and retweeted by the WordPress leadership and (as a result) the wider development community. That's the poisonous part. The part which spreads.

Interestingly, the “WordPreh” account was originally derived from a satirical account in the Drupal community, called “Drupleh” - an account which has long since been disbanded and shut down. I don’t know what the reasons were. But I like to think it’s because they realised it was a negative, energy draining thing that didn't add any value to the community.

Either you choose a culture, or you end up with one.

Culture Inheritance

It's interesting how culture is inherited at various points in the chain. It cascades down like CSS. Admittedly, I seem to say that about most things - so there is a distinct possibility that I'm simply drunk on CSS.

Nevertheless, Drupal inherits some of the culture of the PHP community. Discourse inherits some of the culture of the Ruby community. Ghost inherits some of the culture of the Node.js community, and - in turn - Ghost theme & app developers inherit some of the culture of the Ghost community.

When we had a big discussion back in February about which front end framework to use for Ghost - the competition was largely between Angular.js and Ember.js. While there were many technical reasons for why we ultimately went with Ember, there was also a large unspoken reason: It was a better culture fit.

We knew that whatever framework we selected would drive a significant number of new contributors to become part of the Ghost community. We found that the Ember developers share a lot of the same values (and approaches) as we do. As we got to know their core team, sat in on their development hangouts, and attended some of their community meetups: It became clear to us that this was a group we could work well with.

This is something which is very hard to quantify precisely, but I believe is immensely important to the future of the project.

Ghost Culture

We’re very much trying to choose our culture and make it one that we’re proud of. We encourage open and frank debate, but always with civility. We actively discourage and call out brogrammer behaviour and humour as much as possible when it takes place. We try to encourage discussions to be objective rather than subjective in their content. “I prefer [x]” is not a valid basis for an argument. “WordPress/Tumblr/Medium do [x] and it works really well because [y]” is a very valid basis.

Recently we also published a set of clear community guidelines. The crux of it is pretty straightforward: Don’t be a dick.

We have no issue with swearing, both in code and commit messages, which some people don’t like. But that’s part of who we are. If you spend longer than 5 minutes with myself and Hannah, you’ll have trouble counting all the fucks uttered. Doubtless this will drive some people away, but it will attract some others, too. Hopefully they’ll be people we’d like to hang out and work with.

Defining a culture doesn’t mean being everything to everyone. It doesn’t mean being flawless. It means choosing the environment which you want to participate in. The environment which will breed more of the same type of creativity and ideas which will fit with your own. There are merits both to a classy downtown cocktail bar as well a dirty college dive bar; but they will certainly attract different crowds.

One of the most important values that we try to promote is that of being welcoming. It’s incredibly tiring to respond to bad bug reports over and over again. After you see the same style of poorly worded, poorly considered feature request enough times - it’s quite hard not to be snarky when you say “no” in response.

Hannah in particular, though, has put in a huge effort to always welcome bug reports, no matter how bad, in a friendly way - simultaneously guiding people to information on how to submit better bug reports.

The best thing about this is that as new contributors come on board, we notice that they automatically start to do exactly the same thing - without us ever asking them to do it.

Contributor Github comment screenshot

This is just one way in which we're noticing the effect of defining a culture and watching it grow.

We aren’t perfect at any of this. I’m not sure that anybody can be, and we get it wrong often enough. But in the last year of running a large open source project we’ve learnt a tremendous amount about how important it is to be aware of how our values filter down throughout the Ghost project as well as the Ghost Foundation.

The people who adopt your culture today are the people who define your culture tomorrow. That warrants serious consideration.

Either you choose a culture, or you end up with one.