# rust project burnout @ RustWeek 2025 - [organizing thread](https://rust-lang.zulipchat.com/#narrow/channel/486433-all-hands-2025/topic/Session.20about.20Burnout/with/517349315) - ["working on rust kinda sucks"](https://hackmd.io/5n97FexORfiOjhFShK9HpA?view) - [follow-up zulip thread](https://rust-lang.zulipchat.com/#narrow/channel/122651-general/topic/.28editable.29.20list.20of.20ways.20contributing.20to.20rust.20is.20frustrating/near/438985936) - [blog post](https://jyn.dev/the-rust-project-has-a-burnout-problem/) ## stories - feel ignored - felt pressure is not proportional to the consequences - "felt like i had to have something to show for it" - people are not in control of outcomes - switch between crickets and everyone giving bad feedback at once - working purely through text is alienating - feels good to meet people, esp. in person but also via video - "talking to people wins again" - foundation staff has gotten death threats - no feedback loop for social problems, little positive feedback - only person working on one particular thing - if it's tedious, mark it as a good first issue - feel forced to "poke holes" in new ideas - time-critical things feel bad - "feel stuck" because no one else will do it - hard to know when to step away - "actively say yes" instead of having to say no - council and foudation solve this with terms; compiler team co-leads; - people around you are burned out - "teams as a whole are burned out" - "quiet weeks" - cargo explicitly said they don't have capacity - that's great, we should do that more - absent team leads ## what is going wrong? - code review is rough on both sides - very long latency - what to do if you don't get a review? - 2 weeks is already a long time - can we get triagebot to set `S-waiting-on-{author,review}` automatically? - https://github.com/rust-lang/triagebot/issues/1994 - can we suggest people break large PRs into multiple smaller ones? - interpersonal conflict - feel obligated to review every change - competing priorities for maintainers - implementing / mentoring / triaging / reviewing - teams have long meeting backlogs - sucks if you want to discuss your issue - "not prioritizing is prioritizing" - extremely rough onboarding for new maintainers - make this a project goal? - culture of mentorship - need to be more deliberate about recruiting - people notice they are not keeping up with reviews and take themselves off the list - triagebot limits should help - we should reflect reality in the queue - should look at libs - went from 2 to 10 reviewers by asking all at once - we have the same high standards even for changes that don't need it - anyone who's ever contributed should be able to merge to rustc-dev-guide - same for forge - same for triage - for rl/r, there isn't anything easy - "no one wants to waste their time" - nothing before an RFC - "we start with a proposal" - can we make an official process for brainstorming? - https://medium.com/@ElizAyer/organizational-boundary-problems-too-many-cooks-or-not-enough-kitchens-2ddedc6de26a - we should get rid of internals.rlo - we could use rl/rfcs issues for early discussion - experts are not getting assigned to review their area - unclear who is still there - terms solve this too - have to consent to be committed - [zulip discussion](https://rust-lang.zulipchat.com/#narrow/channel/392734-council/topic/explicit.20team.20membership.20term.20durations/with/518931131) ## what can we do differently? - we should pin an issue for new contributors - link to https://rustc-dev-guide.rust-lang.org/#what-should-i-work-on - learn from GSOC: have a big spreadsheet tracking everything - we should tell existing contributors *not* to grab easy things - "good first issue" vs "good second issue" - help mentors and mentees find each other - add back an experts map? need to update it regularly - maybe triagebot can suggest this on prs to rl/team - could generate this automatically from git history - have a pinned zulip thread - maybe triage team can be involved? - can suggest people join triage team - make it easier for people to triage issues; should be giving away triage rights like candy - [discussion of how people can join wg-triage](https://rust-lang.zulipchat.com/#narrow/channel/242269-t-release.2Ftriage/topic/procedures.20for.20joining.20the.20team.3F/with/518933906) - can we have a feedback mechanism for people in the project to report internal issues? - check-ins - compiler-team allows members to opt-out of reviewing fcps - unclear how crucial any given FCP is - we should expect the fcp author to write this up ## Notes * jyn is leading the session because of experience with being burntout * things that are not great about being involved in Rust: * Some technical (e.g., RFC process) * Some social * Opens up to the crowd on the question "what are some sources of burn out?": * people feel not empowered to do their * interpersonal conflict * code review (on both sides) * long latency on reviews * 2 weeks can be quite a while to sit with your changes without review * Not enough capacity from maintainers * need to make choices between review, working on things, mentoring others * especially hard for newcomers to know what to do * In particular it's hard for people to know what the consequences of their changes are * No true on-boarding path * Perhaps we need to improve our onboarding process instead of letting people figure it out on their own * It helps to have someone mentor * We need to be more deliberate about bringing people on board * capacity is a real problem * Backlog is to be expected but it is a problem when there are people actively working on things but blocked on something relatively small (e.g., review) * from the maintainer perspective it can also be an issue * Triage bot is gaining the ability to limit the number of open reviews and maybe that will help? * Libs team helped things by recruiting a _batch_ of people because it's easier for people to volunteer to be 1 of 10 vs 1 of 3. * High standards for even somewhat inconsequential changes * Try to provide more places where changes can just be merged without the need for review * We're probably be more restrictive on who can merge to e.g., forge * Finding work: * We have lots of people who would work on things if they knew what to work on * Should we pin an issue for new contributors to push people towards the existing resources * Google Summer of Code has a resource for finding things * But how do we put together that resource * We should encourage experienced contributors to not take on "good first issues". * Some tags need adjustments (e-hard is _really_ hard and so everything kind of lands in e-medium) * There's unfortunately not a ton of easy issues * Helping mentors and mentees to find each other: * Have some _very easy_ place to maintain a list of people who are experts and willing to mentor in a specific place * expertise is hard to define and this will surely get out of date. * git history can be useful here perhaps? * mentoring can be a way to "socially" spread who is an expert in an area * We could have a Zulip thread where people can just ask these types of questions * More stories on burnout: * waffle: * caring about a specific lang thing * caught in a circular dependency where the reviewer and reviewee where both waiting on each other * demoralizing to be waiting * wasted time in internals.rust-lang.org * jyn: we should get rid of internals * being a single person working on a specific thing * feeling nervous about going on a camping trip because there was no one else to work on this thing * somewhat solved by getting more people involved * The actual consquences of not actually doing what was needed were smaller than the _perceived_ consequences * project goals and grants * pressure when you have a grant but can't show anything for it. * social problems require hard work to solve * often times you don't get good feedback about whether work to solve those problems is actually working or even appreciated * issues on platforms like r/rust-lang * mod team needs to be made aware of issues * being able to talk about problems with other people can be a very useful tool * if you're feeling alienated by the processes, talking with others can be very useful. * There's often people who care one particular thing * These people feel the need to be solely responsible for that one thing * It would be nice if there were less of these "single issues" and the ability to spread the exisitng workpool around less issues * It's hard to recruit others to care about your "one thing". * our processes officially start with a proposal * but there's lots of things that actually need to happen before, but there's not a ton of official processes happening before hand * There's an issue where someone might have a solution proposal and some maintainer needs to take the time to poke holes in their solution * We should figure out better ways to put the burden on the proposer to show that their idea is sound * Taking on work that needs to be done * Status quo: you have to actively step away * Possible future: you have to actively commit to coninue * We don't have a mechanism for checking-in * We have some positions in the project that are term limited - it could be nice to have more "terms" for things so that people have an oportunity to contemplate whether they want to walk away or continue * We can also more proactively move people to alumni because they can always come back More stories: * "I feel most burnt out when other people around me are burnt out" * Entire teams can be burnt out * Shot out to Cargo for previously stating when they felt that they didn't have enough capacity. * Go has done this in the past * Clippy will probably do something like this: * Clippy will go on a short break with no new features to get "our house in order" * Clippy seems healthy - why? * Perhaps this can be attributed to onboarding being actively worked on in Clippy