Proposal to switch our week-to-week Carbon project development syncs to be more async.
The weekly Carbon meeting is providing value by aggregating all the activity across our forums and helping both active contributors and folks following the Carbon project keep up-to-date on the different discussions that take place.
However, it has stopped being a forum with active discussions where we dive deeply into any specific topics. The summaries are also presented live and synchronously which isn't adding much value on top of having them written up in our notes.
Somewhat tongue-in-cheek version of the problem: our weekly meeting in its current format should probably be an email. ;]
But we don't want to just get rid of the meeting and lose the value of aggregating activity across the project. We need a new structure that is closer to that of an email. And ideally, we should re-capture some of the discussion benefits that we have had in the past.
Currently, Carbon has a weekly sync meeting for contributors, that opens with a detailed summary of all the discussions and activity over the past week.
We propose to restructure our weekly sync meeting to be an asynchronous process that still provides weekly cross-project and cross-contributor visibility. We suggest a "Last Week in Carbon" structure based on the weekly summary structure we are already using in our weekly syncs. But these will instead be posted towards the beginning of the week in a GitHub Discussion thread.
We also suggest adding a less frequent discussion meetings with a structure designed to help elicit broader discussion across the community. We suggest a cadence based on the Carbon Copy newsletter of every two months. The start will be a very brief 10-minute update on major developments in the project, and then a 45-minute "demo" of some kind. Anyone working on Carbon who has a good idea for something to demo can sign up to do so. If we don't have a technical demo, we'll pick an active and interesting language design discussion and demo our language design process by having a small part of that discussion live. We'll encourage everyone to ask any questions needed to follow along and focus on letting folks understand a slice of what is happening in Carbon development over reaching a specific resolution or outcome.
The goal is to base these heavily on the existing weekly sync meeting minute summaries of discussion and activity in the Carbon project and weekly newsletters like LLVM Weekly.
Note, these should not be prose newsletters. They should focus on structured information in a bulleted format that is easily skimmed.
The exact structure, process, and format used should be heavily driven by the contributors producing these posts, but we suggest using a collaborative tool (docs) for drafting, and then posting the results to GitHub Discussions for broader visibility and discussion. We also suggest that these be time boxed to a few hours of work total and the content filtered as needed to fit that time box rather than pushing to include every topic for summarizing. Beyond that high-level guidance, the exact format is up to those authoring it. We do encourage authors to pull in other contributors to help wherever useful.
We specifically suggest that only issues-for-leads and proposals be exhaustively summarized. Whoever is creating these summaries should use their own judgement to filter to the most relevant things to summarize while trying to catch things that might otherwise be missed. As this is imperfect, we will also create some specific ways that individuals can help surface a specific thing they would like to see included in these.
We would like an easy way for folks to flag things that are interesting to include into the summaries, especially PRs that might otherwise be missed. We suggest one or both of two options far flagging these:
The goal is to provide an easy way for a much wider audience to follow along with Carbon's development and get to see interesting details about how that development is progressing.
We suggest starting this off with a brief overview of project progress since the previous session, but keep this overview very brief: strictly less than 10 minutes of the meeting.
Then we suggest soliciting a specific "demo" of something recent and interesting in the project. These can take a wide variety of forms, but some primary ones we anticipate initially:
We will explicitly encourage folks to persistently ask questions for context and background they don't understand, as answering these questions is an effective informal way of spreading basic understanding of Carbon as it develops.
The goal is not to resolve questions about the design or decide anything in these sessions, but to give a wider audience an opportunity to see and join some aspects of our development process periodically while also getting a very brief update on the overall project status.
Initially we suggest scheduling these for every two months with the goal of aligning them to newsletters. However, this is not a strict scheduling goal and we should consider adjusting frequency as needed. We should also reschedule as needed to maximize folks' availability and freely skip any where we don't have a good demo ready-to-hand.
We could make no change, but there has been a consistent lack of fully utilizing the current meeting structure and so it seems like some change is motivated based on how people are engaging.
The current structure is also especially expensive for the team, and so it seems important to at least explore some alternatives that may open up better scaling, either in team size or timezones.
A different approach would be to completely drop having a synchronous discussion meeting. However, this would lose one of the historically impactful aspects of the weekly meeting that we hope to recover with this approach: telegraphing to the broader potential Carbon community (largely the existing C++ community) how we are going about developing Carbon.
We have had several instances of specifically positive feedback from observers or more casual participants in historical weekly meetings where deeper design discussions took place or where we showcased specific issues or capabilities. However, these kinds of topics are not always available and so not something we can sustain at the pace of every week.
The proposal picks the alternative of reducing the frequency and adjusting the structure of the synchronous meeting to try and capture this value at a much more sustainable cost and with a larger and more consistent audience. If the audience doesn't materialize or we get feedback that this impact isn't landing, we should revisit this aspect of the structure.
This would lose the main value that we currently get from the weekly meeting, and one that many across the team have repeatedly cited: both a way to catch up and a way to avoid missing discussions happening in a forum or at a time that they missed.
Keeping this, and making it even more asynchronous in nature, further our goal of making the Carbon development processes and community open and welcoming of people from different locations, working on different schedules, or with different levels of involvement.
There is a wide range of possible formats and structures for both weekly summaries and a discussion meeting. This proposal picks two based on trying to closely fit the distinct goals and value propositions of each component of our historically weekly meeting. But there are many others that could potentially be considered.
Currently, the suggestion is to try these out and iterate on these based on the experience. When making this significant of a change it seems hard to predict accurately how the details will land, and simply selecting a plausible starting structure is more important than getting the best structure. We should make minor adjustments to both as needed based on our experience with the new format.