Wikimedia Release Engineering Team/Roles

This page outlines roles and their responsibilities in the context of the Wikimedia Release Engineering Team.

Tech Lead
The Tech Lead for a project is responsible for overall direction setting, determining short-term plans, and being aware of the project's health.

A Tech Lead is assigned for every project that has a quarterly goal (see Goals) and is continuous for the quarter. Changes to the Tech Lead happen at the start of new quarterly goal work, usually around the time of quarter switch over.

Responsibilities

 * Arranging, scheduling, preparing, miscellaneous wrangling, and leading of any meetings needed for the successful completion of the project.
 * Communication of project status update during weekly Release Engineering Team meeting (eg: what recently happened, what the current near-term plan is, and anything anyone is blocked on).
 * Project workboard maintenance
 * Delegation and prioritization of tasks necessary to reach the project goal
 * Balancing maintenance tasks associated with the project with new work
 * "Public" project communication – notes/docs/wikipages/changelogs/mailing list things – communicating priorities and direction to the world outside of RelEng.
 * Performing new software releases and upgrades, interfacing with opsen where appropriate.

Train Conductor
The Train Conductor is responsible for all aspects of rolling out the latest production deploy of MediaWiki and extensions (the bulk of Wikimedia's user-facing code).

A Train Conductor is assigned via 2 week rotations within the Wikimedia Release Engineering Team.

Responsibilities

 * Perform the train release, see Heterogeneous deployment/Train deploys
 * Revert when issues arise, and quickly assign people to fix those issues.
 * Address Logspam by:
 * Identifying new logspam and reporting it in Phabricator.
 * Blocking further train rollout when new logspam is found correlated to the train
 * See Deployments/Holding_the_train for more on that.
 * Review old logspam tasks and either verify they are resolved or nudge relevant parties with increasing assertiveness.
 * Phase 1: Get the group0 log dashboard to zero log messages.
 * Phase 2: Keep the group0 log dashboard at zero log messages.

Release Team Manager

 * Identify and manage dependencies across teams
 * Establish and maintain collaborative relationships with other teams that we interact with (practically all)
 * Reduce administrative and synchronization overhead of engineers, allowing them to be more productive
 * Aid in professional development
 * Make sure engineers maintain a healthy work-life balance
 * Provide Performance Reviews
 * Personnel discipline
 * Hold 1:1s with all engineers
 * Team task management
 * Maintain #releng, #releng-backlog, #releng-next, and #releng-kanban workboards
 * Triage tasks added to #releng as a means of getting our attention
 * Watch (subscribe to) all other relevant #projects
 * Add #releng-next, #releng-kanban, or the "Epic" column of #releng to any tasks which need it
 * Planning
 * Shepherd our team's portion of the Annual Plan to completion
 * Shepherding the conversion of the Annual Plan into quarterly goals
 * Ensuring our quarterly goals are on track
 * Determine cross-team dependencies for annual/quarterly goals (both ways, us->others and others->us)
 * Budgeting
 * Including staffing/salary, travel (offsites/hackathons/wikimania/all hands), and professional development
 * Run the weekly team sync-up meeting
 * Maintain the [null wikitech:Deployments] calendar
 * Shepherd the SWAT Deploy group (add/removing members, ensuring adequate coverage, etc)