Team picker
The team picker is responsible for team creation and teammate assignments.
Most of the team picker responsibility happens one day every two months.
However, if new team members join during cycle or existing team members exit or go on leave the team picker is responsible for team formation and assignments.
Team formation
Each team has a fake company name.
See the full list of company names.
- Artisium
- Creativault
- Inspironix
- Designory
- Imaginarium
- Culturist
- Innovario
- Visionest
- Galleryx
- Creatique
- Creativara
- Artology
- Designix
- Innovique
- Imagidome
- Culturia
- Visionaryx
- Inspiratech
- Museworks
- Artifexio
- Creatosphere
- Idearium
- Imaginest
- Innovision
- Creativest
- Artinova
These were all set up in the first training project.
Purpose
Training pair selection serves two purposes:
- Working with a partner encourages a think-out-loud approach to be more explicit and deliberate about action.
- Improve teamwork and relationships with people you typically don't work with on a daily basis.
Rules
The pairs are all assigned, and you need to work together using a "pair programming" approach:
- Screenshare
- 1 person types at a time
- Take turns every 30-60 minutes and rotate
You may use generative AI for assistance.
Pair selection
The pairs are all assigned (by the team picker). Pairs are assigned and not flexible. If the person you are paired with is out, go to the training slack channel to get another pair assignment.
Pair selection is done at weighted random (the full algorithm is below).
def mixed_pairs(people): seed(99) # Set a random seed for reproducibility shuffle(people) # Shuffle the list to randomize pairs utc2_people = [p for p in people if p[1] == 2] utc3_people = [p for p in people if p[1] == 3] other_utc_people = [p for p in people if p[1] not in [2, 3]] pairs = [] used = set() # First pair within UTC+2 and UTC+3 while utc2_people and utc3_people: p2 = utc2_people.pop() p3 = utc3_people.pop() pairs.append((p2[0], p3[0], p2[1], p3[1])) used.add(p2[0]) used.add(p3[0]) # Pair remaining people in the same groups if any remaining_people = utc2_people + utc3_people + other_utc_people shuffle(remaining_people) # Shuffle remaining people # Form pairs within remaining people, trying to respect time differences i = 0 while i < len(remaining_people) - 1: name1, tz1 = remaining_people[i] name2, tz2 = remaining_people[i+1] pairs.append((name1, name2, tz1, tz2)) used.add(name1) used.add(name2) i += 2 # Check for any unpaired person unpaired = [remaining_people[i][0] for i in range(len(remaining_people)) if remaining_people[i][0] not in used] return pairs, unpaired # Generate mixed pairs mixed_pairs, unpaired_people = mixed_pairs(people) mixed_pairs, unpaired_people
Pair rotation
Pair rotations are planned approximately 6-12 times per year.
Pair substitution
If a teammate is out of office, substitutions may occur.