Wikimedia Cloud Services team/Decision Making

Sometimes making decisions is hard, and sometimes you just need a decision made. This is a social agreement between the members of the team to follow and commit to the following decision process:

When do you have autonomy to decide?
Example: If the task is maintenance on existing work and has little to no user impact (e.g. upgrades, refreshes, cluster expansions, etc. etc.) and takes less than 5 days -> Just do it.
 * If you are responsible for the decision* -> Communicate + you have autonomy to make the decision (err on the side of communication)
 * If you think that the task is going to take >5 days (1 working week) -> engage
 * If you think that the scope is going to affect any of the other teammates current tasks -> engage on the decision process
 * If the task is reactive (addressing security concerns or outages) -> Communicate but do not delay for the decision process, once the urgency is dealt with, reevaluate.
 * Otherwise -> Communicate + you have autonomy to make the decision.

* The responsibility for the decision comes when you are made directly responsible for a project that is assigned when starting/planning a project.

How does the decision process go?
NOTE: If you have autonomy, then it's up to you to decide when/how/who to consult or get involved, following this process is still recommended for technical discussions and decision record keeping, specially for architectural/big decisions.

Otherwise:
 * Create a task in phabricator with the tag #wmcs-proposals, and share with the team/publicly for a week (via email to cloudservices@wikimedia.org and bullet point in weekly meeting), pre-filled task creation url here (also linked from the bottom of the cloud-services-proposal project description).
 * If there were any questions/concerns, gather those and start an exploration for another week (experiment/docs reading…)
 * Write down all the discoveries as an enhancement proposal on wikitech, at this point it should be written in a specific format (see below).
 * If there's no obvious agreement, create a meeting and invite the team, share the status of the proposal and make a decision (Wikimedia_Cloud_Services_team).
 * Record the decision (see below for documenting it) – any phab task or email thread in process should be resolved with a link to a wikitech page documenting the decision under ‘enhancement proposals’
 * Enhancement proposal docs can link to operational instructions but should NOT contain them! They go other places (runbooks, etc)

Decision meeting
This will happen in a synchronous meeting, created by the proposer of the decision, with the format:
 * Time boxed, 40 min
 * A decision will be made by the end of the meeting
 * 5 min before the end, the present people will cast a vote
 * The creator/proposer commits to driving the meeting towards a conclusion (and is permitted and encouraged to interrupt distractions or derailing conversations as needed)
 * When no consensus happens (less than 60%)… the decider decides (decider is, in order of priority, Tech lead, team manager, idea proposer).

Documenting a decision
Create a new page under enhancement proposals using this template:

https://wikitech.wikimedia.org/wiki/Wikimedia_Cloud_Services_team/EnhancementProposals/Decision_record_template

You will be able to copy most of the contents of the task into the wiki page and just fill up the missing bits.