back
240 comments
This is a good description of what life is like working on almost any significant open source project. The only thing not included was the comments from overly entitled users that saps whatever morale and energy you have left. Probably best he did not include that though as that is what all discussion would be about.

I am not sure what to do about the burnout problem. The way he described it is very on point though. Since everyone working on the project is overloaded there is a great feeling of things only get done if you do them.

Most of my open source work was in the pre-GitHub days when we used mailing lists, not pull requests, to build community. I do think there was something better about that for the project itself as it encouraged a lot more discussion and community building. PR's and Issues become silos and are not great for general discussion. I think they also encourage drive-by contributions which honestly are intoxicating initially but once you see people are not coming back become defeating.

Following up on my previous comment, I managed to never become fully burned out, but it required changes to myself, not the project. I had to become less emotionally invested in the project, realize I could not solve everything and step back a bit and do some other things. I guess it would be great if the project were reinforcing these ideas to its contributors to prevent burnout, but that also does not seem realistic. And "the project" is made up of others going through the same problems.

The large OSS project I contributed to thankfully had other contributors that were good role models for these behaviors and it helped seeing them disengage to do other things for a while.

> This is a good description of what life is like working on almost any significant open source project.

Open contributions project.

An open source project does not necessarily have to accept random contributions, issues or hatemail from the general public. [1] They just need to make the source available with a permissive licence, period.

I believe that Linux with its idiosyncrasies in its communication model (mailing list vs the ease of Github, strong dictator running the show) works as a great filter from entitled users, and that's an underrated feature in open source. See also sqlite.

---

1: Yet hell will freeze over before Github lets maintainers turn off the PR tab which would lessen this problem a bit.

> Most of my open source work was in the pre-GitHub days when we used mailing lists, not pull requests, to build community. I do think there was something better about that for the project itself as it encouraged a lot more discussion and community building. PR's and Issues become silos and are not great for general discussion. I think they also encourage drive-by contributions which honestly are intoxicating initially but once you see people are not coming back become defeating.

Glad some said it. When things are too organised or categorised it just becomes another business/todo list.

This generalises to any idealism. You would not think veterinarians to be at elevated risk of suicide, but they are [0], and I think the reasons are similar: a moral dilemma caused by the mismatch between expectation and grim reality which ultimately leads to burnout and desperation.

The other extreme is a "bullshit job", work that you don't enjoy and which serves no meaningful purpose.

[0] https://www.bbc.com/worklife/article/20231010-the-acute-suic...

I think, from observation, that the Rust project has worse burnout problems than most other similarly-sized open source projects.

I'm not sure whether it's more to do with the way the project is organised, the state of the codebase, or the sort of person that's attracted to working on Rust in the first place.

Not only open source. Also anyone taking ownership in companies end up like that. The difference is: The person gets paid and is ideally not emotional involved.
> I am not sure what to do about the burnout problem.

Pacing and self-regulation. It’s a marathon not a sprint. Set an hours-per-week budget. Beyond that things just don’t get done. That’s okay.

If the community needs faster pace, they can consider supplying hours or dollars to fund more developers to work full-time.

> I think they also encourage drive-by contributions

I realize I am in minority, but for me, if project uses a mailing list I am more likely to do a drive-by contribution (compared to no contribution at all). Just doing git send-email is much easier compared to figuring out how to create whatever pull request is called in whatever forge the specific project is using.

None of this is unique to open source. Something that would be readily apparent to people who do volunteer work on things besides software. Which is essentially moonlighting on doing your day job.

All volunteer organizations have to fight burnout. Any time you start feeling like things won’t get “done” unless you do them, you’re on that road.

Amen. Especially on open source projects where just enough people use it to have an active user base, but not enough where you have a good stable of contributors.

I’ve burned myself out on a handful of projects like this and also why I haven’t started any new ones lately. It’s very tiring (doubly so if maintaining open source isn’t part of your paid job, so you’re doing it on your free time).

>I am not sure what to do about the burnout problem.

Get paid for it, and don't do anything more than you are paid to do.

I've done volunteer work, per se. My biggest takeaway has been that humanity overall is not worth giving away my free time to.

When I volunteer my time now, I do so only for individuals who I know will sincerely appreciate it.

If I understand you properly, in the mailing list days, did EVERYONE get the email when someone sent in patches?
> the best way to help the project is to keep contributing for it for years. to do that, you have to avoid burning out, which means you have to treat yourself well.

When I was a schoolteacher, the way I expressed this is that you have to do the job in such a way today that you're capable of doing it again tomorrow. This did not go down well and I am no longer a teacher.

Do other people react as strongly as I did to the lack of capitalisation at the start of sentences? The post is generally "well" written with good grammar and punctuation so I find it strange - it feels like a style choice. But the style choice just instinctively makes part of my brain feel like it's written by a child.
I was the original author of an open-source, server-based, federated, infrastructure system, that has become fairly ubiquitous, for the demographic that it Serves.

But it didn't start off that way. I shepherded it -almost entirely alone- for a decade, before I found a dedicated, motivated team that I trusted to take it over.

They have done wonders for it. Most of its explosive expansion has taken off, under their watch.

Walking away from it was the best thing that I could do for it. The last thing these folks need, is a "Benevolent Dictator," peering over their shoulders, and giving suggestions.

During the gestation decade, I had to be a not-so-benevolent dictator, many times, as people tried to take it over, change it to suit narrow sub-demographics (at the expense of everyone else), and even change its entire raison d'etre. I got a ton of pretty vicious hate mail and there are people that still hate me (I cry myself to sleep over that, every night), after a decade. In one instance, I had to wait until one nasty old bastard popped his clogs, before I could spread it to the entire Pacific Northwest.

During that time, I learned how not to behave. A lot of that hate, was because I'm actually pretty good at slapping back, but I really needed to learn diplomacy. Even when they are nasty, and we are right, we often need to just swallow our pride, and let the dervishes whirl.

I don't miss working on it, and I'm really glad the new team are doing so good with it. I suspect there's very little of my original code in it, but the team mindset is still very much what I established.

I am about to release a project that actually uses that infrastructure as a feeder to my backend.

> new contributors make PRs. they make silly simple mistakes due to lack of experience; you point them out and they get fixed. this can be fun, for a time. what it’s teaching you is that you personally are responsible for catching mistakes.

Every team I've worked with that was feeling exhausted about code contributions actually needed to focus on better documenting guidelines but most importantly, improve CI. Catching silly mistakes is the textbook definition where automating stuff can help the most. This should improve reviewer's peace of mind and speed things up because people will work by themselves to fix things before asking for a review.

I don't know what's the CI situation in the Rust project but if it's anything like what I'm used to, it probably needs improvement. Adding more human-hours to reviewing things isn't sustainable.

I think this is true of most open source projects, and probably all of the bigs ones.

Software in general has a burnout problem. I am regularly stumbling around like a zombie by friday afternoon, and that's just for my actual, paid job. If you added maintenance of a large open-source project like Rust ... I don't see how I would manage it, at least without letting my health -- and probably my family -- suffer for it.

I know that some people are fortunate enough to be paid for their open-source work, but that doesn't mitigate the burnout from software engineering itself. Add to that baseline stress the fact that your customer is "the internet" and feedback is often coming from "whoever is currently angriest," and it seems wildly unsustainable.

I've recently been contracted to do some open-source work in the Rust ecosystem, and this article feels like a warning from my future self to me. I'll make sure to heed it.

> “it won’t get done if i don’t do it” and “i need to review everything or stuff will slip through” is exactly the mindset of my own burnout from rust.

I've already caught myself getting into this mindset a few times.

For one particular issue, I got a bit mad because it felt like I was the only one trying to move a critical issue forward, and other people were treating it as a distant priority. In that case, what helped was moving away from the issue for a few days, and seeing other people pick up speed and make progress on it in the meantime. Having supportive colleagues is super helpful.

I don't know how much this will be a problem in the coming year. I'm hoping we can strike a healthy balance.

Excuse the flippant tone, but isn't this just "I treated my hobby as an unpaid second job and I burned out because I was working two jobs"? It's worse than a job, actually; some of the stuff OP says I don't say about even my actual job. I have a set of responsibilities and I just make sure to fulfill them. If my coworkers don't fulfill theirs I'm not going to shoulder them. Am I going to give them a hand? Sure. But I'm not going to do their job for them, and I'm not going to avoid delegating because I don't trust their judgement. If they fuck up, they fuck up; maybe the business suffers, but how is that my problem? OP shouldn't be thinking the way they are even if they were being paid to work on Rust.
Turns out there are some resource management problems even rustc can’t solve.
Brian Anderson (AKA brson, who as it happens used to head up the Rust project) wrote a good piece back in 2017 called "The Minimally-nice Open Source Software Maintainer" which has tips to reduce burnout/disillusionment in junior contributors. It's less geared toward preventing burnout at the top, but still well worth a read, and there's no reason much of it couldn't be applied in reverse.

https://brson.github.io/2017/04/05/minimally-nice-maintainer

I see a trend in blogging to stop using capital letters - it makes it much harder to read. It's not even like they don't know how they work:

> rotate responsibilities. don’t have the same person assigned to the majority of PRs.

I'm a game dev at a small studio. I have a discord full of gamers who all want me to do something or at least pay attention to them.

Every time I release something new, someone hates it.

It was hard for a bit, but I've been doing this for years.

Honestly you just gotta tune out the noise and prioritize what you want.

Open source project is a bit harder because you have to collaborate more than I have to collaborate with my gamer fans, but still, stop people pleasing and prioritize yourself.

What's not clear to me from the post is, is the author talking about just the rust-lang projects?

Isn't this a characteristic of active contributors of many (or I daresay, most) large open source projects?

I am not an active contributor to any big OS project but whenever I stumble across the Github issues sections for one of them, they are full of "by when can we expect to see this fixed?" kind of questions.

maybe software doesn’t need to move so fast
I'm excited for the Rust project. But to add a superficial observation: It seems that the Rust project is not very diverse. Could that contribute to culture problems?

It seems to have a disproportionately high, relatively to society, percentage of white, male, strongly LGBT-oriented personalities, who usually have a female Japanese cartoon character, or maybe a furry, as their profile picture on GitHub.

Which is fine, whatever, but I worry that it suffers from groupthink and excludes different minds. Maybe it's hostile to plain people that just want to focus on programming? I suspect that people like Torvalds wouldn't survive long, and that's a shame.

And if you want to be really critical: Maybe the leadership is happy that specific people are leaving? Maybe burnout is a tool? Maybe it's a way of social control and censorship?

I personally hope that Rust finds more mainstream support and funding, because I'd love to work full-time in Rust for many years to come.

This is why I think that C++ will be around in the next 50 years but Rust? I can't tell.
It has been crazy how successful the rust project has been and they have been working to meet expectations. Lots of work to do.

I just wish they had python syntax, I'm not smart enough for {};

> new contributors make PRs. they make silly simple mistakes due to lack of experience; you point them out and they get fixed

Sometimes the right answer is to immediately say "your PR is not up to project standards, it won't be reviewed, please revise it yourself if you want it accepted". It's not a job of a maintainer to educate every wannabe-contributor.

A few guidelines to avoid maintainer's burnout:

* Do not allow questions on GitHub issues, it's a poor place for conversations. I find Discourse or some other forum (or mailing list) a better place to do that, which allows community participation (and you can automate moderation using something like https://github.com/pierotofy/issuewhiz)

* People owe you nothing, just as you owe them nothing; you don't have to fix an issue or merge a pull request because somebody opened one.

* Try review and merge contributions, but on your own timeframe. If people have urgency, kindly invite them to get a paid support agreement.

* Don't engage in quarrels; you always have the option to ignore or ban the offenders.

* Document FAQs.

If you don't get paid to do something it's not fun, how about you just stop doing it?
On top of the usual problems of a project becoming about maintenance and negativity, languages are destined to become diminishing returns and new languages always end up ruining themselves trying to add more to the foundations.

You can see with D, Rust, haskell, and whatever else, the transition to working on an ecosystem with easy to use and polished tools, IDEs, debuggers, autocompletion just never happens. The languages that get heavy use like C++, java and python solved the chicken and egg problem of having an ecosystem at some point where there was an actual workflow instead of just a hacked plugin and a command line.

The things that cause burnout like high expectations, pressure and endless bureaucratic project management slog sound like any software development job. Except the devs aren't getting paid which exacerbates the issue.
The whole industry has a burnout problem... I can't imagine the pressure with something as visible and complex as rust compiler and tool chain.

The authors is pointing the best remedy, encourage and promote health work habits.

I'm surprised at how many people seem to focus so much on the effect of incoming PRs that require some mentoring to get them to a mergeable state or on "entitled users". I don't think those are significant contributors to burn out in the Rust project. Those you can ignore. More significant is "X is important, but I'm the only one that thinks so, so I have to carry X to completion single handedly". That causes a lot of the demoralization and heartache and guilt that contributes to burn out.
Just close PRs that don't meet basic quality criteria, and you will go through them in no time.

Oh, but I suppose that's not compatible with the "no one left behind"-type rust manifesto.

Not sure if this is Rust specific though; if anything Rust is easier to review because the compiler takes care of a large class of problems like use-after-free or race conditions. You let the compiler do the "review" on your behalf on most common issues and mainly focus on logic errors, which makes life much easier IMO for the reviewer.
> i’m not going to name names because either you know what i’m talking about…

Consider: this attitude of nod and a wink “can’t name names” strongly contributes to burnout in every community i’ve seen it in. Rust has it in absolute spades, but i’ve seen it eat other groups alive too. Maybe we can stop doing it.

> if you are paid to work on rust, you likely started as an unpaid contributor and got the job later. treat it like a job now. do not work overtime; do not volunteer at every turn; do not work on things far outside your job description.

But if I don't work overtime how can I rewrite everything in Rust?

It felt like a depression. But only of the core development. Organisation and ecosystem are evolving. The layoffs by Mozilla in 2020 might play a role here. On the other hand, when withoutboats started writing about async again recently, it felt like the sun rises again.
“it won’t get done if i don’t do it” sounds like every job I've ever had, not just open source
Are there companies contributing to the Rust compiler?
It seems a bit far fetched.