User:APaskulin (WMF)/Sandbox/Decisions

= Wikimedia technical decision making =

The Wikimedia technical decision making process connects stakeholders in the Wikimedia Foundation, affiliates, and the volunteer community in order to make technical decisions. This process should be used in any circumstance where the impact of the decision will be felt beyond the team making that decision.

Questions and feedback
Questions and feedback are always welcome. Contact us at [mailto:tech-decision-forum-support@wikimedia.org tech-decision-forum-support@wikimedia.org].

Templates
The technical decision making process uses these templates to document and guide decisions.

Process
The Wikimedia technical decision making process connects stakeholders in the Wikimedia Foundation, affiliates, and the volunteer community in order to make technical decisions. This process should be used in any circumstance where the impact of the decision will be felt beyond the team making that decision. This especially includes decisions that have a significant impact code and software deployed on Wikimedia production infrastructure.

This process includes:


 * Technical decision forum composed of representatives of teams from Wikimedia Foundation Product and Technology departments, Wikimedia Deutschland, and independent +2 contributors
 * Templates for problem statements and decision records



Identify the decision team
The decision team is the group of people driving the decision. In most cases this will be a Wikimedia Foundation team, affiliate team, or volunteer group. But there are certain decisions, similar to the decision to implement Vue.js (JavaScript Framework), that are more cross cutting where the team might be made up of a cross section of people. It is crucial that who is accountable for the decision is resourced (have a clear way to execute the decision) and they have the authority to act on that decision.

Define the problem statement (1 week)
A document which describes the decision to be made. This is tagged with the Technical Decision Making board in Phabricator.

1. Decision team opens a task in Phabricator
Use this Phabricator task template to create the task describing the problem.

STEP 2: Technical Decision Forum Project Manager copies the submitted 'Problem Statement' task in Phabricator into a Google Doc and shares it with the project owner who submitted it and the Technical Decision Forum Chairs to review, add comments and discuss. Below is the template for the Google Doc that will be used for real-time collaboration during this stage of the process. The Technical Decision Forum Project Manager will add a link to the Problem Statement Google Doc to the initial phabricator task when the project owner is ready to share it.

Template: Problem Statement


 * Define the problem or opportunity (WHAT).
 * Outline the importance of addressing the problem or opportunity (WHY).

Touch Points:
 * Phabricator Workboard (with overview template)
 * Office Hours (available by appointment biweekly)

Technical Decision Forum
The Problem Statement is shared with the Technical Decision Forum by adding a phabricator ticket to the Decision Forum Inbox. The Project Manager of the forum will monitor phabricator and send process emails to the forum when there are new overviews.

The Technical Decision Forum is made up of people representing individual teams, organizations or volunteer groups. The Forum is chaired by a representative from the Technology Department and one from the Product Department, the chairs are rotated on a quarterly basis. Teams may rotate their representation as needed, but the expectation is that feedback on the artifact can be provided within a week. The feedback requested at this point is as follows:


 * Is the problem statement correct?
 * Is it clear how solving this problem moves forward our organizational goals (supports, Movement Strategy, the Medium Term Plan, Annual Plan, etc…)?
 * Are these the right stakeholders?
 * Is the needed subject matter expertise to make a decision reflected accurately? Are the right groups outlined in the overview?

Touch Points:


 * Office Hours
 * Technical Decision Forum Google Group
 * Phabricator
 * Google Docs
 * Slack

Research and Prototyping Stage
Once the Problem Statement is confirmed with the Technical Decision Forum, the Decision Team begins work and demos/checks in with the Technical Decision Forum every two weeks. Here is where options and solutions are developed. This phase should be scoped and timeboxed. At the check-in they demo progress being made to inform the decision. This is the time where stakeholders are engaged with, further models are developed and prototyping occurring as needed.

''Note: Demonstrations do not have to be prototypes with UIs. They could be a summary on progress on a document, pseudo code or anything else that helps others see where the team's progress and thinking is at that time.''

Touch Points:


 * Technical Decision Forum
 * Demonstrations during Office Hours
 * Retrospectives
 * Phabricator
 * Progress Announcements in Technical Decision Radar

Executive Review
For larger, more impactful decisions, system-level tradeoffs or decisions that greatly impact the community, demonstration of the overview is done for relevant executives, typically the Chief Technical Officer (CTO) and Chief Product Officer (CPO). The CTO and CPO will delegate a representative that will review the Problem Statement and flag for review with the CTO and CPO when it is believed it might meet the requirement for Executive Review.

Touch Points:


 * Meeting with Executives

Make the Decision
Once the Decision Team has engaged all the stakeholders outlined in the Problem Statement and reviewed with Executives (as required) the team can make the decision.

Touch Points:


 * Technical Decision Forum
 * Phabricator
 * Decision Announcement in Technical Decision Radar

Decision Record Published
Once a decision has been made it is published on MediaWiki here.