Anyway, funny story but remember when the discussion was about The Cathedral and The Bazaar?
There's a second axis to that graph, and it's ends are labelled "A Community" and "A Cult".
Anyway, funny story but remember when the discussion was about The Cathedral and The Bazaar?
There's a second axis to that graph, and it's ends are labelled "A Community" and "A Cult".
Just to pile onto this some more:
"Ojeda said that there is a need to deprioritize these contributors, but that we still need to find talented people to join our community. That means finding ways to focus on the people who actually matter."
One of and maybe the biggest challenge we had fostering contributors that I - he said patting himself on the back - recognized early when I started at Mozilla, was in coming to terms, structurally, with the fact that free, open software had... won.
That is to say: Firefox 1.0. 2004. A smart kid who wants to contribute to a high-profile open source project with name recognition and global impact had basically four choices: the Linux kernel, the GNU project, the Apache webserver and Firefox; outside serious nerd circles that was basically it.
A decade later, after macports and later homebrew, the explosion of the ruby and python ecosystems, git and GitHub and the entire directional shift of the software world, that kid had 10,000+ choices.
A thing I said a lot in those first few years was: we are competing on the experience and ergonomics of being a part of this community. Every single person out there who is smart enough to turn the crank on a compiler and figure out how to send us a patch has thousands of options. The process complexity and hard-knock oldschool open source "culture" we believe is acting as a "filter" isn't selecting for brains or talent, it's selecting for a willingness to tolerate bullshit and endure abuse.
And to be explicit about this: a long-running filter that's selecting for a willingness to tolerate bullshit and endure abuse is exceedingly useful if you're a terrible manager or a sex pest, two classes of people who have notably flourished in free software for a very long time.
But when smart people have choices, and they choose not to tolerate mismanagement and abuse and stop choosing you, either you grow up or soon all you have are people who think abuse and mismanagement are normal.
And you can call this oversensitive, feel-good "woke" nonsense if you want, but I've got the data and I'm right: a code of conduct, community standards and moderation enforcing them, the psychological safety of your community, these are near term competitive advantages and long term survival necessities. Treating the process of getting involved and the experience of staying involved in your community _as a product_, worthy of usability testing and ergonomic refinement, that moves the needle.
We gave the entire (well, no-PII, no active secbugs, etc) contents and history of Bugzilla to some very smart PhDs at uMontreal, and one of the things they came back with was this: somebody submitting their first bugfix was relatively unlikely to submit a second, but somebody on their fourth bugfix is quite likely to get to five, and six, and stick around.
I cannot emphasize enough how much you get from up front code ergonomics and human care in the early stages of the contributor relationship.
On the other side of that coin, the psychological safety part of it, a true story: I'm the guy who killed IRC at Mozilla. I'm proud of it.
One of the reasons I'm proud of it is the mobile IRC bouncers that didn't let people delete old DMs so I got to have conversations with colleagues where they showed me pages and pages and pages of vicious scrollback harassment that they had to endure for their jobs, sitting in their phones forever.
The feature request was "I just want this to stop."
The move to Matrix was partly driven by their open source commitments - hi, @matrix , hey yo, love you all - but they mostly won on the strength of two things. First that their accessibility posture was not just unrivalled in terms of FOSS forums but that their team jumped at the chance to work with us improve it.
But 2nd: the moderation tools are unmatched. Nothing else comes close.
Once you have tools and process in place to ablate harassment, nobody willingly goes back to not having that.
Like, OK, we've got clean running water now, we've got soap, we've got [checks notes] the forum management equivalent of an orbital ion cannon for dealing with the abuse or harassment of our community in our open forums., and I guess we're on our way to penicillin. We're going to be OK.
Being trusted to provide the foundations and tooling of that psychological safety to a team of the finest people I have ever worked with, and delivering on that promise, has been the high point of my career.
But again, there it's the same story. Matrix is still a _little_ convoluted as far as onboarding is concerned, but it beats the heck out of IRC's "learn a new OS and hope you don't get disconnected" cliffs-of-Dover learning curve, and the numbers again reflected that. Invest in community accessibility, and community safety and tooling ergonomics, and the line goes up.
Not a line made out of rageclicks, manipulation and misery, just the steady growth of a community worth being a part of.
Anyway: the Linux kernel could have that. Any community can have that, really. But the real work is the humility of admitting you might need it.
And a lot of people - not just proud but _justifiably_ proud, for all their accomplishments and success - can easily find themselves trapped in the kind of blind spot you can only be trapped in by the atrophy of that humility, from a mere failure to welcome and foster enough diversity and dissent.
Where you can no longer change without failing first.
Anyway: The worst thing an organization's leaders tolerate is what that organization becomes, and the blast radius of a single toxic contributor is huge and largely invisible. For everyone who speaks up to say this behavior isn't acceptable, there are dozens or hundreds of smart, competent people who peer into your community, see that this is how you live and move along without your ever knowing they exist, on their way to a better life somewhere else.
We don't have to live like this.
A final, selfish addendum to this: I do consulting work around questions of cultural health, process improvement and accessible cultural change. If you'd like to have a conversation about that, let me know.
@mhoye While I think the Perl metaphor is very selectively remembering history and over-estimating the importance of languages, I don't entirely disagree with the conclusions about Linux.
But it won't matter a bit. Sure, this means you get fewer volunteers. But beyond "cult" and "community" you're missing the fourth C of Linux - corporations. There's already plenty of paid developers, and if those aren't elevated community members anymore but regular code-doulas-for-hire from the start, it's probably going to be enough for quite a while.
I think it's bang on.
Perl drove me up the wall, but it was the thing you did unix admin with.
Then config management tools happened, and they were both Ruby (yes I know, ansible. ugh) and our entire team cheerfully binned the perl junk and used a real language instead.
Perl made me feel stupid. Ruby allowed me to remember that I'd been a coder and had fun with it.
(modulo some truly hairy MIME-handling that only perl could cope with)
@JuliaRez But that's partially what I was going for, the languages don't matter that much, no matter what aesthetic criteria devs attribute to them, often in fits of narcissism of small differences.
You got a new tool, it was in a new language. That's usually how things work. Tool is good, people switch to using it, taking the language along.
Only very rarely is it because the previous language was that bad. If no good tool ever comes up again for the old language, it withers (e.g. Perl), but sometimes it gets a new lease on life (e.g. PHP, basically Perl--).
Programmers aren't esthetes. I mean, look at it, YAML and Rust seem to rule the world right now...
And most preferences go completely out of the window once money is on the line, and your choices are limited. Which is why I'm not worried about Linux-the-kernel surviving.
Linux-the-FOSS-community is another thing, but I have low hopes for community software in general.
@mhoye a dimension TC&TB’s author, who famously denied on libertarian / Objectivist grounds that there was any such thing as “community”, couldn’t even perceive
@mhoye I have wondered for years what the point of licences for open source projects really was if it was trivial to ignore them and it only cost money to deal with it (which companies had and the authors did not).
Am I missing something?
@grmpyprogrammer
Guess having the necessary clout should've been the job of the fsf.
@mhoye
@mhoye currently trying to hold my tears. thank you; this is an excellent condensation
@mhoye I think this is a good thread.
@mhoye that is damn cool to have hard confirmation for. thanks for sharing!!
was that ever publicly published? i can’t seem to find anything from Montreal, closest come https://dl.acm.org/doi/10.1145/3756681.3756994 as a 2025 dataset and its sole citation https://link.springer.com/chapter/10.1007/978-3-032-15621-1_30 p. 367
@mhoye much earlier this year I basically gave up on an attempt to contribute to Matplotlib because the process was so painful. Like, the existing code also had issues, but that's never a big deal for me. But I would need day job money to deal with their CI setup or their patch notes process, let alone both. It's not that I couldn't soldier through it if I needed to. It's that I couldn't justify spending my life that way.
@MaddieM4 @mhoye I tried to contribute to firefox a decade ago (or so) and the level complexity with the use of multiple languages meant that after going through multiple layers it become clear that implementing the simple feature I wanted to add would far exceed the time I could afford. I could imagine contributing to the kernel, but I will like opt for a simpler kernel that uses C exclusively for similar reasons... Too much industry-level complexity in Linux already.
@mhoye sounds like a really shitty place to work if that behaviour was expected. was this via a public irc server or internal only?
@waffles The combination of the long running and deep seated cultural expectation of working in the open, the fact that for many years IRC was the only suitable tool for that and that later alternatives were almost all proprietary or otherwise closed meant we held onto it for very good, values-forward reasons, for a lot longer than we should have.
@denisbloodnok @waffles irc.mozilla.org was a public server, yes.
@mhoye glad to hear that it wasn’t internal abuse. but damn, would not want a job where i was expected to listen to that.
@mhoye Is there an inventory of the capabilities you & yrs found particularly valuable somewhere?
@owen When we got it spun up, the weapon of choice was called Mjolnir. Today, you want to look at its successor Draupnir.
You need to know a _little_ about how Matrix communications are structured and work, but relatively little. Single-action org-wide banning, per-user or per-origin, is a delight, and retroactive redact was something that a few free-as-in-speechies objected to until the day I had to clean up a goatse flood, they came around pretty quick after that.
@mhoye Thanks.
Going off a quick read, it seems like a lot of its underlying thesis is in the direction that if you have to moderate someone in one spot, odds are they've been up to antisocial nonsense in several, and you might want to act on them without having to individually find and adjudicate them. That tracks - but am I reading it right?
@mhoye (The background radiation of most moderation on the internet is to treat each incident as a one-off; tooling for addressing repeat customers is frequently weak)
@owen During my full-time involvement, it was still true that moderators had to generally keep track of disparate acts across forums, and communicate appropriately.
Early on, this was a lot of administrative work for me - most abusers get away with it by being perfectly nice to most people - but after a while I'd built up enough credibility that people came to value the safety of their colleagues in other fora very highly.
@mhoye man, I wish my experience reflected this
we have IRC and Matrix both as fully endorsed options and the Matrix route has dropped off significantly in the last few years; it's about a third or quarter of IRC at this point
(they're bridged together and the bridging experience is kinda shit from the IRC side but pretty seamless from the Matrix side)
@technomancy i was in shock about the moderation tools part. going to matrix for moderation tools is like going to the desert for water
The more competent you are, the more important humility is.
Never listen to your own press. Always put yourself in other people's places. Never internalize people's praise of you and your work. Always listen to others' experiences of your work, and of you.
Yes, you have to decide who to listen to, but still.
"Always listen to others' experiences of your work, and of you."
The very *best* yearly review I ever had was when my boss very directly told me what I was doing that he didn't want, and what he wanted me doing instead. Most reviews are generic, because bosses are uncomfortable with this sort of criticism. Which means neither of us gets better.
It's ironic that my _worst_ rating was my *best* review.
This is how we improve, both as employees and as people.
Someone who can provide that degree of feedback is precious! Treasure them.
@mwl It worked out well. I'm really good at hitting the target, once I'm told what it is. So I immediately pivoted, and did the things he _specifiec_ that he wanted.
He came back in a month, telling me I was doing exactly what he wanted, and that -- if I kept it up -- we'd do a mid-year to erase my bad review, which would make me eligible for a raise at year-end.
Until that point, I had no idea a bad review meant NO raises for _two_ years!
Easily my best boss ever.
@Netzblockierer @torvalds only started so loving ai because it could make a python ui for him, should we trust a project ran by someone who is either/both unable or unwilling to learn python? @mhoye
@sackofbones @torvalds @mhoye I'm not skilled enough in C to consider maintaining a fork…
@Netzblockierer Neither am I, I could do it in Rust or C#(if I could run direct on x64) tho... @torvalds @mhoye
@Netzblockierer @mhoye @torvalds that's likely never going to happen, I would advise finding or establishing a fork. Isn't that the great promise of open source? I don't understand a lot of the whinging around this topic because by my estimation schisms are nothing new to humans, digital or meat space.
@mhoye I think the availability of robo-coding also lowers the casual contributor bar for fixing the couple problems they care about in a way sufficient for their own use, while the work to contribute upstream does not. A hostile upstream culture will just mean those changes get orphaned, or more forks or entirely new projects. That is not to say this is good, but the relative costs are shifting in a significant way.
@mhoye this is also why ignore doesn't work in any community. New people assume the behavior they see is acceptable. You must actively remove people who exhibit unacceptable behavior.
@mhoye i work and plead mors on the build tool and compiler and rest of tech tool aspect side of things with the same arguments.
And I think it is far less important than the one you point out (and probably harder to fix funnily enough).
So thank you for expressing it <3
@mhoye Hear hear!
@mhoye goofiest things is that the Linux kernel has the clout to get first dibs in any kind of talent recruiting contest...
been looking at microkernels and seems like it's a better alternative and much easier to maintain than the monolithic one that Linux has.
@mhoye The unfortunate thing about the move to Matrix is significantly more discussion started happening on Mozilla-internal Slack at the same time, and that really killed some of the open-by-default vibes, with some people scarcely checking Matrix.