Recommendations for initial work of the Council
In the course of developing this RFC, and thinking extensively about the structure and operation of the Council, the interim leadership team also identified many other tasks that fell outside the scope of this RFC, and explicitly decided to defer those tasks to the new Council. This section documents those tasks, as a suggested starting point for bootstrapping the work of the Council. None of these are binding suggestions, and the Council can freely set and prioritize its own agenda; this section serves as a public, transparent handoff of knowledge and proposals to the Leadership Council.
Some of these tasks represent meta-level decisions about the processes of the Council, and we chose not to make those decisions in this RFC to avoid enshrining a particular structure rather than deferring to those who will be working regularly with that structure. The remaining tasks represent a partial todo list of long-standing tasks that fall within the Council’s purview, insofar as they have fallen through the gaps between team purviews. Some of these tasks should be delegated by the Council rather than worked on directly by the Council. The inclusion of a task in this list doesn’t change what type of decision-making process is required for it; some of these may be Council-internal operational decisions or private operational decisions, while others will require a public policy process.
These are in no particular order, other than that meta-level decisions about processes for making decisions will need to happen before decisions relying on those processes.
Meta-level decisions about processes and policies
- Determining where, when, and how frequently the Council meets.
- Establishing processes for where the Council makes decisions, both synchronously (in meetings) and asynchronously.
- Writing and agreeing on templates for decisions, that help guide the Council to remember and follow process steps.
- Establishing specific processes around Council transparency, including records of decisions, minutes of meetings, the locations where these get published, and similar.
- Establishing a process for appointing the “Project directors” to the Rust Foundation board in a timely fashion. The Council will need to make such appointments soon after formation, and will also need to help ensure continuity across the transition.
- Establishing processes and conventions for the Council’s regular review of its policy decisions. In particular, establishing expectations for the frequency of such reviews, with mechanisms to adjust those downwards when representatives express concern, or upwards after previous successful reviews.
- Selecting tools and establishing processes for tracking the Council’s backlog/todo list, making as much of that list as possible public for transparency, and having a well-defined mechanism for Project members or teams to ask the Council to address something (either publicly or privately).
- Defining and documenting processes for external requests to the Council from outside the Project, ensuring they get routed appropriately, and taking steps where possible to ensure they can be directly routed to appropriate teams (potentially including new teams) in the future.
- Bootstrapping the new “Launching Pad” team and ensuring it has enough structure to operate.
- Organizing teams within Rust, and ensuring all teams and other governance structures are “attached” to appropriate places in the structure. (This includes working with teams to find appropriate homes, and ensuring such changes are ultimately reflected in the team metadata repository.)
- Establishing and agreeing on processes for faster decision-making for simple one-off operational matters, such as responding to emails reaching out to the Project.
- Ensuring the policy decision process (RFC process) is well-documented and linked from the Council documentation, so people know how Council public proposals happen.
- Develop handoff procedures for handling transitions to new Council representatives, or to alternates.
Other tasks/gaps potentially within the Council’s purview
- Checking in with teams and individuals across the Project, seeing what’s going well and what needs help, and adding to the Council’s todo list.
- Checking for priority items that need urgent help from the Council.
- Checking in with members of the former core team to identify items from their past todo lists and other open issues they’re aware of, to add to the Council’s todo list, and subsequently to either work on or delegate or otherwise disposition.
- Checking in with the moderation team, to ensure they have sufficient support and resources to ensure growth and sustainability. Collaborating with the moderation team as they develop and codify their policies and procedures to better handle a broader range of situations across the Project.
- Helping to develop plans to support understaffed or otherwise unsustainable teams.
- Work with the infra team to develop a transition plan for privileges traditionally maintained by core (such as root privileges / logged-use break-glass credentials). Coordinate appropriate policies with infra.
- Working with the Launching Pad team to help transition teams out of it into appropriate places in the organization.
- Ensuring that top-level teams have well-documented purviews, starting to identify gaps between those purviews, and working with teams to determine when those gaps should fall to specific existing teams or become the purview of new teams.
- Establishing policies to enable delegation of communication/PR tasks that have traditionally fallen to top-level leadership, and then making appropriate delegations of such work, potentially including the creation of teams.
- Working with teams to establish coordination channels for team roadmaps, and developing processes to support cohesion across those roadmaps.
- Making concrete plans to improve Rust Project diversity, including working with individual teams on how to better support diversity initiatives, as well as addressing gaps for which no individual team currently has responsibility.
- Working with teams on processes for receiving feedback from subteams, particularly on proposed Council representatives. Particular attention should be paid to:
- Ensure feedback is processed early, often, fairly, and consistently such that subteam members feel heard and Council members are given opportunity to address feedback and improve.
- Help detect and address bias in Council representative selection, including status-quo bias towards existing Rust leaders or people similar to them.
- Documenting and improving processes for interaction with the Rust Foundation, and considering organizational improvements to provide further ongoing support for those interactions (such as how and where Project directors fit into the organizational structure and how they interface with the Council regularly).
- In particular, establishing the purview of the Project directors along with policies and procedures for ensuring proper representation of Project interests on the Foundation board.
- Establishing proper procedures, and potentially teams, for handling issues which may have legal implications on the Project or Project participants.
- Ensuring that people and teams within the Rust Project have access to appropriate training and resources for the positions they find themselves in, beyond the skills required for their direct purview. Foster a culture of team membership that values such skills and help teams find resources or training to bolster such skills. Such skills and training include, among many others:
- General leadership and coordination skills, within a team and across a community
- Transparent and legible reasoning skills, recognizing and documenting underlying values, crux-finding, and collaborative disagreement
- Conflict resolution and de-escalation
- Project management and planning
- Communications between individuals, teams, and projects
- Public communications
- Help teams evaluate and consider replicating useful aspects of the Council’s structure and processes within other teams across the Project (particularly top-level teams), such as:
- Appropriate structures to help subteams collaborate and coordinate amongst themselves and with top-level teams
- Structures for decision-making, including policies allowing for some types of decisions to be made more quickly, where appropriate
- Transparency, privacy, and documentation of decisions
- Policies for handling conflicts of interest among team members
- Policies on the number of team members sharing a common affiliation
- Ensure Project and Project member health by understanding and working against common work patterns where select “heroes” assume an outsized and unreasonable share of the maintenance burden by:
- taking on large amounts of essential work that they do not really want to do because no one else volunteers
- taking on so much work (either voluntarily or out of seeming necessity) that they are prone to burnout
- taking on work no one else has the ability to do and for which the member’s absence would lead to potential crises in the Project
- Evaluating improvements to the RFC decision process, such as tracking and supporting multiple potential outcomes and changes in people’s preferences without restarting decisions, and providing lighter-weight mechanisms for reversible decisions.