Rust 2019 (11): Tackling growth and tone

The Rust project has grown massively over the recent years. I think a lot of people are not even aware of how much. With over 100 team members nowadays and about 4700 contributors to the main repositories (all under minus LLVM and jemalloc forks, I counted on Jan 15th), we’re in the upper crowd of FOSS projects globally. This is not including working group organisations like WASM, embedded or net! All this with a mostly volunteer team and a really small paid crew. Just as a comparison: Go, often used as a benchmark for our community, has about 2400 contributors! All this considering that Go has been in 1.0 much longer! These comparisons are not rigourous, but important to recalibrate. Speaking on a project level, we are the biggest and most accessible project in the last wave of programming languages.

Yet, as Dirkjan correctly notes, there’s now “users who keep posting vague forum threads or exert significant stop energy on others’ proposals”. I would add that we now have users that straight out try to frame the Rust project, the mods and especially core as some kind of evil force that does not work in the interest of users.

I do agree that we have homework to do with regards to community interaction, especially with clarity of communication. The blogging campaign in 2018 and 2019 are an attempt to make it easier for community members to give their feedback in one block. The new website was an attempt to fix a lot of glaring mistakes of the old page. There an interplay between the growth and community behaviour, though. And it won’t go away: good community work builds communities, which leads more community work…

I sadly must say that as much as the interaction on the website last year has frustrated community people, it was also not a stellar display of respect towards people working on Rust. While it’s easy to put the blame on the Rust team for delivering rough (and we take the blame!), some people have used the chance for showing abyssimal behaviour.

Community tone towards the project is the communities work

The Rust project provides moderation for some spaces, notably out GitHub trackers, Reddit, URLO and IRLO. “Moderation” is often just attached to the actions of banning, kicking and whatever, but is actually the task of keeping a discussion in useful boundaries. Most of what the moderation team is doing is discuss. But it’s literally impossible, and also unwanted, to make the moderation team to be the arbiter of what’s acceptable and what not. Community norms are, ultimately, the communities job.

Here’s the great thing: everyone can do that! Everyone can moderate! Get more used to calling out people that you feel are overstepping boundaries! Help people that seem to struggle with giving feedback! Spend some time with other community members to think about how to deliver a piece of criticism. It probably improves the chances of the feedback being taken into regards!

The Rust community is known as friendly and approachable and we want to keep that. This is everyones job. If you agree with this as a guiding principle, you should promote it. The Rust project may have ultimately kicked things off, but a mature community must live without its roots.

This doesn’t mean that everything must be roses: strong, structured, actionable criticism is the gold of our community. Let’s have more of it!

Our communication towards the community is our work

We’ve been rushed by success. Being one of the fastest growing FOSS projects is not an easy feat and our interaction culture needs to change along. We do a ton on that level: There’s a weekly newsletter, the open RFC process, we’re one of the most active projects on GitHub. Still, more and more people feel ill-informed or are frustrated by intransparent processes. Distance and lack of visibility builds tension. It’s hard to figure out how teams come to be and it’s hard to follow their work. Some of this is inherent in the volume, but some of it also stems from employing the same communication strategies as three years ago.

Finding new ways to make community interaction work in a transparent ways is important. Some of this will be nailing down policy and allow new working groups to form. The other will be finding ways to make getting an overview over the project better. We have experimented with tools like the Herald in the past, to have a more unified stream of incoming news, but yet have to see adoption. I’m also having a hard time finding projects of our size that do obviously better than we do.

If you feel like this is a teasing issue to you, by all means get in touch with me or the community team.