πŸ‘‹πŸ½ Cross-Team Collaboration Fun Times

Fostering cross-team collaboration in the Rust project

Logo

What is this meeting about?

The Rust teams and working groups have proven to be a really effective way to scale the project. As the teams have grown, though, they have come to operate more and more independently, and we need mechanisms for the whole project to stay in sync. The "Cross-Team Collaboration Fun Times" meeting (CTCFT for short) aims to be one of those mechanisms.

What are the goals of the meeting?

  • πŸŽ‰ To celebrate and raise awareness of what is happening in the project.
  • βœ… To track progress on important efforts and communicate requests between teams.
  • πŸ’¬ To give a forum for cross-team discussion and collaboration.

When's the next meeting?

The meetings section gives more details about the meeting, along with the agenda for upcoming meetings and links to the slides (which are hosted on our hackmd team). You can also check out the CTCFT Calendar which lists all our meetings and has Zoom links and the like.

Are there minutes and recordings?

Yes! We typically record the meetings and link to the recordings in the meeting minutes that are published on this site.

Can I come?

Yes! This meeting is open for anyone to come and observe. Even though the meeting is primarily meant as a forum for the members of the Rust teams, it can be hard to define the borders of a community like ours. We'd love to have people who work on major Rust libraries in the ecosystem, for example, or who work on the various Rust teams at different companies.

πŸ‘¨β€πŸ‘©β€πŸ‘§ Meetings

Every CTCFT Meeting has its own page, found on the left. The page contains the agenda and, after the meeting takes place, it is updated with notes and links to a recording (if any). Meeting agenda items are always announced at least one week in advance of the next meeting (often more).

Meeting slides

You can find the slides for the various presentations on our hackmd team page.

Meeting recordings

Meetings will be recorded and those recordings will be posted publicly. We may even attempt to stream them. Recording the meetings serves several purposes:

  • It makes the meetings accessible to folks who cannot attend in person or who must miss a week.
  • The recordings of the meetings become another channel for people to follow along with what is happening in Rust.

Rules for participation

  • The meeting is open for anyone to observe (read more).
  • We will use a meeting queue to ensure everyone who wants to speak has a chance. The queue is managed by the MC.
    • To add yourself to the queue, write o/ in the chat.
    • To remove yourself from the queue, write nm in the chat.
    • If you you prefer, you can also ask a question for the speaker in the chat and the MC can read it out loud.
  • Please keep your video off unless you are expecting to speak.
    • If you are enqueued or expect you may well enqueue yourself soon, then feel free to turn it on.
    • This way the set of folks visible reflects who is actively participating at that moment.
  • Stay muted when not speaking.
  • Please avoid extensive conversations in the chat -- quick Q&A is ok.

Timing of the meeting

The meetings are targeted for the third Monday of every month. The timing of the meeting generally alternates between these two times. See the CTCFT Calendar for details.

BerlinNYSFBeijingSydneyAucklandπŸ”—
21:00 πŸ₯±15:00 πŸ₯°12:00 πŸ₯°3:00 ❌5:00 ❌7:00 ❌link
03:00 ❌21:00 πŸ₯±18:00 πŸ₯°9:00 πŸ₯°11:00 πŸ₯°12:00 πŸ₯°link

Key:

  • πŸ₯° working hours (9:00..18:00)
  • πŸ₯± rather late (18:00..22:00) -- which could be good for some folks!
  • ❌ totally unreasonable (22:00 - 9:00)

2021-07-19

Info
MCnikomatsakis
TimeSee in your time zone
Calendar event (with Zoom details)link

Agenda

As they are prepared, you will be able to find the presentations on hackmd, or linked below.

  • Opening remarks (nikomatsakis)
  • Mentoring (doc-jones)
    • The Rust project has a number of mechanisms for getting people involved in the project, but most are oriented around 1:1 engagement. Doc has been investigating some of the ways that other projects engage contributors, such as Python's mentored sprints. She will discuss how some of those projects run things and share some ideas about how that might be applied in the Rust project.
  • Lang team initiative process (joshtriplett)
    • The lang team recently established a new process we call initiatives. This is a refinement of the RFC process to include more explicit staging. Josh will talk about the new process, what motivated it, and how we're trying to build more sustainable processes.
  • Driving discussions via postmortem analysis (pnkfelix)
    • Innovation means taking risks, and risky behavior sometimes leads to process failures. An example of a recent process failure was the Rust 1.52.0 release, and subsequent 1.52.1 patch release that followed a few days later. Every failure presents an opportunity to learn from our mistakes and correct our processes going forward. In response to the 1.52.0 event, the compiler team recently went through a "course correction" postmortem process inspired by the "Correction of Error" reviews that pnkfelix has observed at Amazon. This talk describes the structure of a formal postmortem, and discusses how other Rust teams might deploy similar postmortem activities for themselves.
  • Open floor
    • Open time for comments or questions.

Social hour

Like last time, we are going to try an experimenatal social hour after the CTCFT. The idea is really simple: for the hour after the meeting, we will create breakout rooms in Zoom with different themes. You can join any breakout room you like and hangout.

The themes for the breakout rooms will be based on suggestions. If you have an idea for a room you'd like to try, you can post it in a dedicated topic on the #ctcft Zulip stream. Or, if you see somebody else has posted an idea that you like, then add a πŸ‘ emoji. We'll create the final breakout list based on what we see there. The breakout rooms can be as casual or focused as you like. You might, for example, talk about your favorite crates, or we might continue some of the discussions from the meeting.

2021-06-21

Info
MCnikomatsakis
TimeSee in your time zone
Calendar event (with Zoom details)link

Agenda

As they are prepared, you will be able to find the presentations on hackmd, or linked below.

  • (5min) Welcome
  • (5min) About the social hour -- yaahc
    • yaahc will present her plans for a social hour that follows the CTCFT (see below).
  • (15min) Turbowish and Tokio console -- pnkfelix and Eliza (hawkw)
    • Rust programs are known for being performant and correct -- but what about when that's not true? Unfortunately, the state of the art for Rust tooling today can often be a bit difficult. This is particularly true for Async Rust, where users need insights into the state of the async runtime so that they can resolve deadlocks and tune performance. This talk discuss what top-notch debugging and tooling for Rust might look like. One particularly exciting project in this area is tokio-console, which lets users visualize the state of projects build on the tokio library.
  • (20min) Guiding Principles for Rust -- nikomatsakis
    • As Rust grows, we need to ensure that it retains a coherent design. Establishing a set of "guiding principles" is one mechanism for doing that. Each principle captures a goal that Rust aims to achieve, such as ensuring correctness, or efficiency. The principles give us a shared vocabulary to use when discussing designs, and they are ordered so as to give guidance in resolving tradeoffs. This talk will walk through a draft set of guiding principles for Rust that nikomatsakis has been working on, along with examples of how they those principles are enacted through Rust's language, library, and tooling.
  • (10min) Open floor
    • Time for people to make short announcements, ask questions, whatever.
  • (5min) Closing -- nikomatsakis

Social hour

After the CTCFT, we are going to try an experimental social hour. The idea is really simple: for the hour after the meeting, we will create breakout rooms in Zoom with different themes. You can join any breakout room you like and hangout.

The themes for the breakout rooms will be based on suggestions. If you have an idea for a room you'd like to try, you can post it in a dedicated topic on the #ctcft Zulip stream. Or, if you see somebody else has posted an idea that you like, then add a πŸ‘ emoji. We'll create the final breakout list based on what we see there.

The breakout rooms can be as casual or focused as you like. For example, we will have some default rooms for hanging out -- please make suggestons for icebreaker topics on Zulip! We also plan to have some rooms where people are chatting while doing Rust work: for example, yaahc suggested for folks who want to write mentoring instructions.

2021-05-17

Info
MCnikomatsakis
TimeSee in your time zone
Calendar event (with Zoom details)link
Recordinglink

Agenda

You can find the presentations on hackmd, or linked below.

Frequently Asked Questions

Who can attend the meeting?

This meeting is open for anyone to come and observe. Even though the meeting is primarily meant as a forum for the members of the Rust teams, it can be hard to define the borders of a community like ours. We'd love to have people who work on major Rust libraries in the ecosystem, for example, or who work on the various Rust teams at different companies.

I have 222+ unread Github notifications in rust-lang/rust. Why is this meeting worth my time?

This meeting is meant for busy people. It's not just a bunch of random status updates. It's a carefully selected set of topics meant to spark both discussions and new ideas for how the Rust teams operate, and a place for us to coordinate on cross-cutting technical projects.

One other point: because the agenda will be circulated in advance, it may be that you pick and choose which meetings to attend based on whether this is a discussion topic that you have a lot of interest in.

Who will MC and who will assemble the meeting agenda?

To start, nikomatsakis plans to do those things. Assuming the meeting is a success, we'll figure out next steps then.

What kinds of things would be a good fit for the agenda?

We're looking for three kinds of things:

  • Status updates on projects that could affect multiple teams;
  • Experience reports with insights to share;
  • "Rough draft" proposals that are ready to be brought before a wider audience.

How can I propose an agenda item?

Open an issue on the CTCFT repo to let nikomatsakis know about it!

What if I have something sensitive to discuss?

For sensitive items, this is likely not the right meeting, but you can reach out to nikomatsakis privately to discuss it.

Does this really have to be synchronous?

Yes. For this to work, we need people to pay attention for an hour. We're all really busy, and asynchronous communication is all too easy to ignore.

What can we do to make this accessible to people around the globe?

The Rust project includes people from all over the world, and some time zones are just plain incompatible. We've put some thought into how to structure the meeting to make it accessible to folks from different time zones:

  • We will alternate between different times so that folks in different time zones can more readily attend.
  • We will also distribute recordings of the meeting (and perhaps consider livestreaming as well) so that people can watch.
  • Per Rust's 'No new rationale' principal, we will not use the meeting to make decisions, particularly on controversial issues, but rather to generate discussion and distribute information. (See the next question.)

What if I can't make some meeting or other? Am I going to miss out on key decisions?

Per Rust's 'No new rationale' principal, we will not use the meeting to make decisions, particularly on controversial issues, but rather to generate discussion and distribute information. This means that folks who couldn't attend the meeting can watch the recordings and then participate in the follow-up discussion.

How will this be better or different than the project leadership sync meeting?

Some time back we attempted a Project Leadership Sync Meeting. The structure was basically status reports and -- after a time -- it petered out in favor of (sparsely used) Zulip streams.

This meeting has a different structure. To start, it will have more active curation of the agenda, and it will not have a "round robin" format. We'll not be looking to find out what is going on, but rather to distribute the key points of that information, and to focus conversation on interesting agenda items that merit discussion.

Further, the scope of the meeting is broader. The meeting will representatives from project groups like error handling and other key efforts of the Rust project.

How did you arrive at those times? Can we try different ones?

The timing for the meeting is something I would like feedback on. I think it's important that we make the meeting accessible, but I also think we should take into account the time zone that the majority of participants are coming from. Here is a kind of survey of possible times and how accessible they are to folks from different time zones:

BerlinNYSFBeijingSydneyAucklandπŸ”—
12:00 πŸ₯°06:00 ❌03:00 ❌18:00 πŸ₯±20:00 ❌22:00 ❌link
15:00 πŸ₯°09:00 πŸ₯°06:00 ❌21:00 πŸ₯±23:00 πŸ₯°00:00 ❌link
17:00 πŸ₯°11:00 πŸ₯°08:00 πŸ₯°23:00 ❌01:00 ❌02:00 ❌link
21:00 πŸ₯±15:00 πŸ₯°12:00 πŸ₯°3:00 ❌5:00 ❌7:00 ❌link
01:00 ❌19:00 πŸ₯±16:00 πŸ₯°7:00 ❌9:00 πŸ₯°10:00 πŸ₯°link
02:00 ❌20:00 πŸ₯±17:00 πŸ₯°8:00 ❌10:00 πŸ₯°11:00 πŸ₯°link
03:00 ❌21:00 πŸ₯±18:00 πŸ₯±9:00 πŸ₯°11:00 πŸ₯°12:00 πŸ₯°link

Key:

  • πŸ₯° working hours (9:00..18:00)
  • πŸ₯± rather late (18:00..22:00) -- which could be good for some folks!
  • ❌ totally unreasonable (22:00 - 9:00)

I love the logo. Who designed it?

Glad you asked! I love it too! @Xfactor521 made it! πŸ™

Internets

Schitt's Creek Image

Here are links to various Rust CTCFT related internet things:

(Yes, this page was mostly an excuse to embed that GIF.)

πŸ’– Code of conduct

Rust code of conduct

All participants in the CTCFT meeting are expected to observe the Rust code of conduct.

  • We are committed to providing a friendly, safe and welcoming environment for all, regardless of level of experience, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, nationality, or other similar characteristic.
  • Please avoid using overtly sexual aliases or other nicknames that might detract from a friendly, safe and welcoming environment for all.
  • Please be kind and courteous. There’s no need to be mean or rude.
  • Respect that people have differences of opinion and that every design or implementation choice carries a trade-off and numerous costs. There is seldom a right answer.
  • Please keep unstructured critique to a minimum. If you have solid ideas you want to experiment with, make a fork and see how it works.
  • We will exclude you from interaction if you insult, demean or harass anyone. That is not welcome behavior. We interpret the term β€œharassment” as including the definition in the Citizen Code of Conduct; if you have any lack of clarity about what might be included in that concept, please read their definition. In particular, we don’t tolerate behavior that excludes people in socially marginalized groups.
  • Private harassment is also unacceptable. No matter who you are, if you feel you have been or are being harassed or made uncomfortable by a community member, please contact moderation@ctcft.com immediately. Whether you’re a regular contributor or a newcomer, we care about making this community a safe place for you and we’ve got your back.
  • Likewise any spamming, trolling, flaming, baiting or other attention-stealing behavior is not welcome.

CTCFT Rules for participation

Please observe the meeting rules for participation.

Moderation contact

Please contact moderation@ctcft.com.