Page MenuHomePhabricator

Update process for development policies
Open, Stalled, Needs TriagePublic

Description

This task proposes using the technical decision making process to govern development policies. Please leave feedback and questions as comments on this task.

Background

Wikimedia development policies are mandatory standards of practice for Wikimedia production software. Before January 2021, development policies were governed by the TechCom RFC process. When the Technical Decision Forum started in January 2021, it took over the responsibilities of TechCom but did not define a process for managing development policies. This task proposes a process to govern development policies as a replacement for the TechCom RFC process.

Guiding questions

  1. Where do development policies fall in the TDMP's decision matrix and who is owner/responsible party for those policies?
  2. Where and with whom should someone speak when they have questions about interpreting a policy, and when they face problems they think might warrant a change in policy but want to check before escalating to start a decision process?

Scope

This is a difficult task to scope. It involves issues of technical decision making in general and cross-team collaboration. I have attempted here to propose a system that works within the existing WMF technical decision making structure without requiring significant updates to that process or additional overhead.

About development policies

Development policies on mediawiki.org are defined by Template:Development policy:

This page documents an official Wikimedia development policy. There is no current mechanism to make changes, as the TechCom RFC process is defunct.

Development policies define standards of practice for developing and maintaining Wikimedia software. In contrast to development guidelines, policies describe what developers must do, while guidelines describe what developers generally should do. There can be no deviations from policies, while minor deviations from guidelines, like coding conventions, can often be allowed based on individual circumstances.

Pages that use Template:Development policy on mediawiki.org:

TitleSubjectPage created
Development policyLinks to other policies; note about PHP serializationFeb. 2019
Wikimedia services policyDeveloping and deploying servicesNov. 2019
Wikimedia Engineering Architecture PrinciplesPrinciples and requirements for all Wikimedia engineering projectsSept. 2018
Support policy for PHPProcess for changes to PHP support in MediaWiki core and componentsOct. 2019
Stable interface policyProcess for defining the parts of MediaWiki core that are considered stable for use by other componentsJan. 2017
MediaWiki database policyRequirements for MediaWiki database queries and schema changesDec. 2019
Gerrit/Privilege policyGerrit rights and responsibilities for MediaWiki core and components, including processes for requesting and revoking privilegesDec. 2018

Proposal

Require new policies and changes to existing policies to go through the technical decision making process. This ensures that all stakeholders have an opportunity to provide input without introducing new channels of communication or structures of technical ownership. The scope of the technical decision making process covers decisions with impact beyond the team making the decision. This scope appropriately covers development policies, which in most cases cannot be clearly owned by a single team.

To adapt the technical decision making process to govern development policies:

  • Add a step requiring that new policies and changes to existing policies are announced on wikitech-l.
  • Create and use a Development policies tag in Phabricator to track tasks related to development policies.

To document this process, repurpose the Development policy page to describe the process and provide a list of policies.

Update Development policy

Rename page to "Development policies", and replace with this content.

Update Technical decision making

Under 2. Define the problem statement:

Add a new Phabricator task template for changes related to development policies, tagged with Development policies and tech-decision-forum, with this content:

**Request type:** Change the content of an active policy / Propose a new policy / Change the status of a policy

## What

**Describe that change you're proposing. Include any existing guidance on the subject.**


**What does the future look like if this is achieved? **


**What happens if we do nothing?**


## Why

**Identify the value(s) this problem/opportunity provides.**

Under 6. Publish decision record:

Add a step that requires the proposer to announce the change or new policy on wikitech-l.

Update Template:Development policy

Add logic to the template that shows content based on a status variable.

StatusContent
Active policiesThis page documents an official Wikimedia development policy. Changes follow the technical decision making process.
Proposed policiesThis page documents a proposed Wikimedia development policy. To provide feedback, see [link to phabricator task].
Draft policiesThis page is a draft of a new Wikimedia development policy.
Deprecated policiesThis Wikimedia development policy has been deprecated.
Superseded policiesThis Wikimedia development policy has been superseded by [link].

Alternatives

Policies are managed by developer consensus

In contrast to policies, development guidelines are managed through developer consensus or decision by a lead developer. The most lightweight option for managing development policies is to use similar language and rely on talk page discussions to establish consensus. However, while this process works well for guidelines, the nature of policies requires a more formal process of gathering input from stakeholders.

Policies are owned by a relevant team or group

Another option is for each policy to be owned by a Wikimedia Foundation team, affiliate team, or volunteer group. The owners would be responsible for monitoring the policy's talk page for change requests, consulting stakeholders, fostering consensus, and publicizing decisions. However, in discussion with stakeholders, we found that the responsibilities and goals of WMF teams do not align clearly with individual policies. In addition, coupling policy governance with WMF organizational structure presents a risk that these responsibilities could be lost due to changes in team structure.

Policies are owned by special interest groups

As a way to mitigate the risk of organizational changes in the previous option, each policy could be governed by a dedicated special interest group (SIG) composed of subject matter experts, stakeholders, and people impacted by the policy. Although a precedent exists on mediawiki.org for establishing SIGs, the effort and authority required to establish and sustain these groups is beyond the scope of this task.

Next steps

  • Collect feedback and finalize proposal
  • Update Development policy to describe the new process
  • Create a Development policies tag in Phabricator
  • Update Technical decision making with a new Phabricator task template specifically for decisions related to development policies
  • Update Template:Development policy to reflect the new process
  • Publicize new process

Event Timeline

Where do development policies fall in the TDMP's decision matrix and who is owner/responsible party for those policies?

That is, where and with whom should "the people" talk when they have questions about interpreting a policy, and when they face problems they think might warrant a new/change in policy but want to check before escalating to start a decision process?

To avoid continuing to block T273164, I propose replacing the current "This page documents an official Wikimedia development policy. Changes follow the TechCom RFC process." banner with the banner used on a few other development guidelines (such as Wikimedia Performance Team/Backend performance): "This page documents a MediaWiki development guideline, crafted over time by developer consensus (or sometimes by proclamation from a lead developer)"

That approach works for guidelines because:

  • They're not enforced,
  • not needed to be consistently followed for the org to be well-functionining (they offer default guidance, with local owners overriding as-needed based on good judgement),
  • they have the development policies and its decision making process to fallback on if there is disagreement.

For policies, this falls apart because 1) they shouldn't change frequently or without notice, and 2) as soon as two people disagree the same question comes up: What is the decision making process and which parties take responsibilities over it.

Determined that this will be handled by each department and no decision needs to be made on it.

Hi @Jenlenfantwright, I think it would be beneficial to put this decision through the process. I know we talked in the past about the option of policies being governed by individual teams, but I think the feedback we would get through the decision-making process would be helpful in figuring out what that process should be and what teams would be involved

Hi @apaskulin,
That sounds great. I've adjusted it to reflect this change and we can proceed. I'll contact you on Slack for next steps. Thanks!

apaskulin changed the task status from Open to In Progress.Nov 4 2022, 7:48 PM

Hi everyone, I've updated the task description with a proposal to use the technical decision making process to manage development policies. Please share your feedback and questions here on the task.

A solution for T273164: Post-TechCom Gerrit privilege handout workflow and similar questions is badly needed, but as a member of the "Decision Forum" since its inception I feel that the current TDF is primarily designed for creating RACI charts and is not suited to any sort of open discussion and shared decision making. The process itself defines no systems for discussion. The recorded decisions resulting from the process are descriptions of WMF projects rather than community inclusive programs. The concerns that I and others have raised both privately and publicly about the lack of clarity in how Wikimedia technical volunteers can participate in the process have never been addressed.

The Wikimedia development policies are Free and Open Source software project governance, not internal organization politics. As such I would expect them to be maintained by an open body related to the software projects rather than a largely political committee which "Empowers teams to make decisions that are informed by experts from around the organization."

Perhaps what the TDF could be used for towards the goal of restoring some system of FOSS governance is creating a RACI chart for a plan to review documents from https://fossgovernance.org/ and draft a system for the Wikimedia movement which treats the various paid staff and technical volunteers as co-equals.

Determined that this will be handled by each department and no decision needs to be made on it.

This may now be a moot question with the update from T283277#7410597, but could we have a clarification of determined by whom and following what discussion? @Krinkle's comments in T283277#7303662 ring true to me about the difference between guidelines and policies. The Wikimedia Foundation has two engineering departments as well as a reasonably large volunteer technical contributor community and affiliate organizations who are intended to be bound by https://www.mediawiki.org/wiki/Development_policy decisions. It is unclear to me how these groups of stakeholders, who sometimes have goals which are at odds with each other, will build joint policy without a body helping with reconciliation.

I agree with bd808. I prefer first finishing the retro before adding more responsibilities to it.

Thanks for your comments, @bd808 and @Ladsgroup!

This may now be a moot question with the update from T283277#7410597, but could we have a clarification of determined by whom and following what discussion?

@bd808, this conclusion was the result of a meeting with the former Decision Forum chairs after I initially opened the task, but you are correct that it was reversed following my comment in T283277#7410597.

apaskulin changed the task status from In Progress to Stalled.Jun 8 2023, 8:18 PM
apaskulin added a project: Tech-Docs-Team.

Marking this as stalled for now since it depends on T333235: [Epic] Technical Decision Forum retrospective: Phase 1