From 98d050041b91c67a2e1712302da9cd912f86815e Mon Sep 17 00:00:00 2001
From: Chloe Kudryavtsev <toast@toastin.space>
Date: Wed, 20 Mar 2019 21:44:27 -0400
Subject: [teams] Rewrite half the page

Lots of things could be worded better.
Further, a few specific things came up:
- how do members get removed, specifically?
- how do leads get removed, specifically?
- the "lead" terminology confused many people, making them think it is
more than it is. tentatively rename the position to "admin"
- what is expected of members and leads?
- what's a "developer"?

This attempts to address all of the above.
---
 modules/ROOT/pages/index.adoc | 75 +++++++++++++++++++++++++++++++++----------
 1 file changed, 58 insertions(+), 17 deletions(-)

(limited to 'modules/ROOT/pages/index.adoc')

diff --git a/modules/ROOT/pages/index.adoc b/modules/ROOT/pages/index.adoc
index eb14853..8ccbb8f 100644
--- a/modules/ROOT/pages/index.adoc
+++ b/modules/ROOT/pages/index.adoc
@@ -13,35 +13,76 @@ This section describes the status quo of how Alpine is organized.
 [glossary]
 Developer:: Any Team Member is considered a fully fledged developer.
 Team:: A group of people with a specific purpose/scope that they tend to.
-Team Leads::
+Team Administrators::
 Team members that are allowed to vote in various organizational meetings and can appoint new team members.
-Team Leads are marked in *bold* in official team listings.
+Team Admins are marked in *bold* in official team listings.
 Team Member:: A registered member of a team, given access to that team's workspaces.
 
-== Becoming a Member
-To become a team member, start by contributing to items under the team's jurisdiction.
-Once you have shown some staying power, you may ask a team lead to appoint you as a member.
-
-[TIP]
+[NOTE]
 ====
-Do not worry if your request is denied!
-That just means you aren't known enough to the team, or need to take the project more seriously.
-The team lead should give you a reason as to why you've been denied.
+There is no distinction between technical and non-technical team members. Both are valued, and any useful distinctions are left to the discretion of individual teams.
 ====
 
-== Becoming a Team Lead
-Existing team leads, collectively, decide to appoint or demote other team leads.
-A proposed team lead should already be part of the team.
-If the proposal is to create a new team, the process is identical, except that the proposed team lead should be part of an existing team.
-
-NOTE: Teams may have multiple, or one team lead - they may not have zero team leads.
+== Membership
 
-== Being a Member/Lead
+=== Being a Member
 Being in a team grants grants you the things you need to work on whatever the scope of the team is.
 You should know your fellow team members well, and cooperate with them (and potentially other teams) to achieve tasks.
 As a team, you may request various workspaces, such as a separate irc channel, git namespace, dedicated host, and more.
 As a team, it is up to you how you manage yourselves internally, but the contents of this document should serve as guidelines.
 
+=== Being a Team Administrator
+As a team admin, you have more powers, and thus more responsibility.
+Since you have the power to vote (e.g in nominating other team admins), you are expected to be present for meetings and voting sessions.
+In the scenario that you must be absent for significant periods of time (more than a few days), you are expected to inform other team admins of that.
+
+=== Becoming a Member
+Team admins have the ability to add new members.
+You should have already contributed to the team in question (whether technically or non-technically), and convinced a admin that you should be in a team (just asking can be enough, sometimes).
+Technically, any admin may add or remove members, and teams may organize themselves however they wish internally.
+However, we recommend that all the team admins of a given team vote on adding a member, with the goal being a 2/3 majority.
+
+NOTE: 1/1 is 100%.
+
+=== Becoming a Team Administrator
+New team admins are voted in by all the other team admins in the project.
+In order for a team admin to be voted in, they must garner a 50% majority vote, and already be a part of that team.
+This vote can be done asynchronously, but in that case the absolute time limit is 2 weeks, after which, if the vote is inconclusive, the matter is resolved by the core team.
+
+=== Removing a Member
+Sometimes, members must be removed.
+This can happen for a variety of reasons.
+Teams are free to organize themselves as they see fit, but we recommend leaving purging team members as the last option on the table.
+In the case that it must come to pass, we recommend the proceedings be identical as in <<_becoming_a_member>>.
+
+=== Removing an Administrator
+Team admins are members as well, but there is no higher in-team authority available to remove them.
+In the scenario that this last resort is considered, the procedure will be the same as in <<_becoming_a_team_administrator>>.
+
+[WARNING]
+====
+Removing members (and especially administrators) is an extreme measure.
+In most cases, it is possible to solve issues through other means.
+It is highly recommended that the removal of anyone from the project be strongly considered before it is suggested.
+====
+
+== Team Structure
+
+=== Internal Organization
+Teams organize themselves internally however they want.
+This document does contain multiple recommendations, which, if followed, will make external relations easier.
+Further, team administrators must follow non-team-local expectations.
+
+=== Creating a New Team
+An existing team member within the project may propose creating a new team.
+In that scenario, the process will be the same as in <<_becoming_a_team_administrator>>.
+If the vote passes, the new team is formed, with the sponsor member as the only administrator.
+
+=== Dissolution of Teams
+A team is dissolved if it has no more members.
+If a team has no more administrators, one must be nominated, as in <<_becoming_a_team_administrator>>.
+If the vote does not pass, the team is dissolved as well.
+
 // TODO: specify what specific access each team has
 == Current Team Listing
 
-- 
cgit v1.2.3

