Technical Collaboration Guidance/Vision

The Technical Collaboration Guideline aims to become a set of recommendations followed by Wikimedia Foundation Product teams and Wikimedia communities to partner in software development. This document describes the pieces involved in this collaboration, and how they could work.

Checkpoints
Product teams work better in an agile context where experimentation, iterations and flexibility are the norm. Volunteers in wiki communities can understand these principles well, but they cannot afford to participate in the daily life of projects. Checkpoints allow projects to get the communities and other stakeholders involved, influencing their next steps.

Checkpoints happen when a project has a new deliverable that welcomes public feedback:
 * 1) A project proposal.
 * 2) A design concept.
 * 3) Translatable content.
 * 4) A prototype.
 * 5) A release plan.
 * 6) A beta in production.

Calls for feedback
Projects make calls for feedback at every checkpoint. They do it in a systematic way, using the same channels and the same principles for processing feedback and deciding next steps.

Volunteers can subscribe to all calls for feedback from a specific project (i.e. Flow). They can also subscribe to all calls of feedback of a certain type (i.e. design reviews). This allows the participation of more volunteers with limited time, interested in a specific project or focus.

The calls for feedback are common to all stakeholders, including communities and other WMF teams.

Blockers
Calls for feedback focus on finding potential blockers. Smaller problems and requests are also welcome, but they will be put aside when potential blockers are found.

Blocking a project is a serious matter. Blockers proposed need to have a solid argumentation. They must be discussed until a decision is made. Blockers can be declined by the project, who will need to provide a solid argumentation too.

Project information
All projects have a wiki page with an overview and a standard infobox containing their basic information: Phabricator links, contact details, subscription, and checkpoints passed / pending. Users can follow the checkpoint links to understand quickly the development status of a project.

Checkpoint information
All checkpoints have a wiki page with an overview, subscription, and up to date information about the projects that are running a call for feedback and the ones that passed/failed it.

Community control on deployments
Communities have two ways of controlling the products and major features deployed in their wikis:
 * 1) Timing of the deployment, requesting to be among the early adopters or among the late / last adopters. Most features are deployed by waves, and this provides flexibility to projects very interested or very skeptical about a specific feature.
 * 2) Opt out, based on blockers reported that have clear community consensus. The hypothesis is that most of these blockers will either be solved through deployment waves, or will stand and stop a feature for all Wikimedia projects.