Skip to content

Commit

Permalink
Updating onboarding and project information
Browse files Browse the repository at this point in the history
  • Loading branch information
choldgraf committed Apr 22, 2021
1 parent 77ca6a6 commit 45c8612
Show file tree
Hide file tree
Showing 10 changed files with 181 additions and 95 deletions.
41 changes: 41 additions & 0 deletions .github/ISSUE_TEMPLATE/new-team-member.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
name: "🙌 Onboard a team member"
about: Steps to follow to bring on a new team member
labels: "type: onboard"
title: "Onboarding <name>"
---

Onboarding champion: `@<INSERT HANDLE>`

# Onboarding checklist

Follow the checklist below to onboard a new team member!

**Communication**

- [ ] Send them a link to the [Getting started docs](https://team-compass.2i2c.org/en/latest/get-started.html)
- [ ] Schedule an onboarding meeting

**Accounts**

- [ ] Make email account
- [ ] Add to [the proper GitHub team](https://github.com/orgs/2i2c-org/teams/2i2c-team)
- [ ] Add to [the proper Slack group](https://2i2c.slack.com/admin/user_groups)

**Permissions**

- [ ] Add to appropriate Cloud projects
- [ ] Add to appropriate AWS projects
- [ ] Add to appropriate Azure projects
- [ ] NameCheap administration privileges to `2i2c.org` and `2i2c.cloud`

**External**

- [ ] Add to [2i2c website](https://2i2c.org/about/)
- [ ] Tweet about their arrival

**Wrap up**

- [ ] Have an onboarding session with the onboarding champion
- [ ] Announce in the `#general` Slack channel about our new team member
- [ ] Celebrate, they are now onboarded! 🎉
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
_build
.vscode
*/.ipynb_checkpoints/*
*/.ipynb_checkpoints/*
tmp/
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,4 @@ help:
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

live:
sphinx-autobuild --ignore */.github/* . _build/html/
sphinx-autobuild --ignore */.github/* --ignore */tmp/* . _build/html/
9 changes: 9 additions & 0 deletions conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,3 +75,12 @@
}

panels_add_bootstrap_css = False

# -- Custom scripts -----------------------------------------
import pandas as pd
from pathlib import Path

hub_table = "https://docs.google.com/spreadsheets/d/e/2PACX-1vTpwlQL0Moz-ej-ADNfc6JTxfTje5GBQD1o0DE66atYi2ulWan3leEiCC20epzTyHVWIdomxp9Jt70D/pub?gid=0&single=true&output=csv"
df = pd.read_csv(hub_table)
Path("tmp").mkdir(exist_ok=True)
df.to_csv("tmp/hub-table.csv", index=None)
79 changes: 51 additions & 28 deletions get-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,50 +2,73 @@

This is a guide and checklist for new team members of 2i2c to get oriented, and to make sure that you're set up with all the resources you need to start contributing!

## Onboard checklist for new members
(start:team-compass)=
## Navigating the team compass

First and foremost, these are the things that should be completed to consider a new person "onboarded". When a new team member joins,
This repository acts as a knowledge base and a "Source of Truth" for everything at 2i2c.
It is regularly updated as our team processes, structure, and information changes.
There is a *lot* of information in the team compass, so here is a quick primer on where to look next.

```md
- [ ] Communications
- [ ] Make email account
- [ ] Add to GitHub repositories
- [ ] Add to private slack channels
- Permissions
- [ ] Add to appropriate Google Cloud projects
- [ ] Add to appropriate AWS projects
- [ ] Add to appropriate Azure projects
- [ ] Add to NameCheap (to create domains for hubs if needed)
- [ ] External
- [ ] Add to 2i2c website
- [ ] Run an onboarding session
```
To **get started with the 2i2c Team**, see the sections below:

## Accounts
- [](practices/info-location.md) - an overview of where different kinds of information is stored for 2i2c (e.g., what things are stored in Google Drive, what things in GitHub, etc)
- [](practices/expectations.md) - what practices you are expected to abide by while working with the 2i2c team.
- [](practices/communication.md) - the various channels that the 2i2c teams use for communication, and what kinds of conversation happens in each channel.
- [](practices/coordination.md) - the team workflow that we use in carrying out projects and daily activities.
- [](practices/team-compass.md) - how to update the team compass itself.

### Your 2i2c email address
In addition, the other sections on this page contain pointers to other useful sources of information for 2i2c.

Someone should have sent you a message with your 2i2c email address. You can use this to access information in the 2i2c drive, as well as various online services that we use such as cloud engines. You can sign in to your email address at gmail.com (it behaves like a Google account).
## Onboarding process

### Google Drive
New 2i2c team members are onboarded in order to make sure that the following conditions are met:

Your 2i2c email address will get you access to a Google Drive that contains documents, brainstorms, and other assets that aren't fit for the 2i2c Team Compass. You can log into the Google Drive by going to `drive.google.com` and adding a new account using your `@2i2c.org` address and password.
- They know where to look for certain information
- They feel welcome and excited to be a part of the team
- They have an understanding of what 2i2c is currently up to
- They have enough information to get started

### GitHub Access
When a new team member joins, follow these two steps first:

2i2c has a few GitHub repositories. You should have membership in the `2i2c-org` GitHub organization and write access to its repositories. Check that this is the case and, if not, ask for access in the Slack.
1. Identify an **Onboarding Champion**. This is somebody that will help guide the onboarding process for our new team member.
Their job is to carry out the process described in the onboarding issue template.
2. [Open an issue in the Team Compass](https://github.com/2i2c-org/team-compass/issues/new/choose). Choose the "Onboard a new team member" template.
This issue will track the onboarding process, and will provide steps to take in order to onboard our new team member.

The following sections describe some things that should be met in order to onboard somebody new.

### NameCheap Access
## Accounts that should be created

2i2c runs much of its cloud infrastructure at custom URLs created for the target institution. In order to ensure you have the ability to create new URLs, you should have access to the 2i2c NameCheap account. If not, ask for access in the Slack.
- **A GMail address**. You can use this to access information in the 2i2c drive, as well as various online services that we use such as cloud engines. You can sign in to your email address at gmail.com (it behaves like a Google account).
- **A Slack account**. In addition to GMail, 2i2c also uses Slack to have informal or synchronous communication.

## Accounts you should have access to

### Cloud Accounts
- **Google Drive**. Your 2i2c email address will get you access to a Google Drive that contains documents, brainstorms, and other assets that aren't fit for the 2i2c Team Compass. You can log into the Google Drive by going to `drive.google.com` and adding a new account using your `@2i2c.org` address and password.

2i2c has a number of cloud accounts that it uses to create and operate its infrastructure. You should have access to the cloud accounts for any projects that you expect to work on. This includes Google Cloud, Microsoft Azure, and Amazon Web Services. The specific project might depend on what you’re working on, so check with the team to make sure you have the right access.
- **GitHub Access**. 2i2c has a few GitHub repositories. You should have membership in the `2i2c-org` GitHub organization and write access to its repositories. Check that this is the case and, if not, ask for access in the Slack.

- **NameCheap Access**. 2i2c runs much of its cloud infrastructure at custom URLs created for the target institution. In order to ensure you have the ability to create new URLs, you should have access to the 2i2c NameCheap account. If not, ask for access in the Slack.

## What projects is 2i2c working on?
- **Cloud Accounts**. 2i2c has a number of cloud accounts that it uses to create and operate its infrastructure. You should have access to the cloud accounts for any projects that you expect to work on. This includes Google Cloud, Microsoft Azure, and Amazon Web Services. The specific project might depend on what you’re working on, so check with the team to make sure you have the right access.

## What are we working on right now?

The [2i2c team coordination page](practices/coordination.md) has information about our daily workflow.
You can use this to begin participating in our daily activities and find out what everyone is working on.

## What major projects is 2i2c working on?

Check out the [projects page](reference/projects.md) for more information about the projects that 2i2c is working on.

## Tips for working remotely

2i2c is a remote-first organization, and believes strongly in following practices that are inclusive, participatory, and collaborative. It has team members spread out over many time zones working on a variety of projects. There are many guides and tips for working remotely[^remote-work1], and we've tried to distill a few key components for our workflows:

1. **Have a single source of truth**. For any information or projects in 2i2c, there should be one source of truth. Any conflicting information will defer to this source of truth, and it should be updated first and often. The default source of truth is this team compass, unless otherwise specified.

2. **Document everything**. Documentation is the most important tool for coordinating and distributing information across remote teams. It is crucial that 2i2c team members document all relevant information about their projects, what they are working on, etc.

3. **Broadcast updates in multiple places**. Different people have different preferred methods of engagement and communication on 2i2c projects. For this reason, don't assume that posting an update or question in a single location will reach everybody that you wish to reach. Do not hesitate to post questions or ask for feedback in multiple places (e.g., GitHub, Slack, or even email). However, try to keep information in a single place to have a single source of truth.

4. **Update often**. Err on the side of updating the team more often than not. Nobody should be surprised when something gets done - especially nothing major. Your work should be as transparent to others as possible!
6 changes: 5 additions & 1 deletion index.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ If you see information here that is out of date, please propose an edit in [the

See below for a brief overview of each section of the Team Compass, or browse the sections to the left on your own.

:::{seealso}
For help navigating the team compass, see [](start:team-compass).
:::

## Team Practices

Information about working with the 2i2c team, understanding our processes and projects, and generally getting oriented.
Expand All @@ -28,7 +32,6 @@ practices/expectations
practices/communication
practices/coordination
practices/team-compass
reference/projects
```

## Managed JupyterHub Service
Expand All @@ -51,6 +54,7 @@ Contains information about the 2i2c team and our projects, and some useful resou
```{toctree}
:maxdepth: 1
:caption: Team Reference
reference/projects
reference/inspiration
reference/terminology
meetings/eng/index
Expand Down
29 changes: 20 additions & 9 deletions practices/expectations.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,21 @@
This page describes some of the expectations for 2i2c team members.
While these are not strict rules, they are things you should do in order to help maximize its impact.

## Be respectful
## General team practices

### Be respectful

When interacting with 2i2c team members, or individuals outside of 2i2c, always be respectful.
We are currently working on a Code of Conduct for 2i2c, but until it is complete, we expect everyone to follow the principles described [in the Jupyter Project Code of Conduct](https://jupyter.org/governance/conduct/code_of_conduct.html).

## Be communicative
### Be communicative

First and foremost, be communicative to other team members.
2i2c is a remote-first organization, and it is crucial that we are open and up-front with one another.
If there's any doubt, don't hesitate to ask someone, ideally in a public channel.
If you are wondering whether somebody else needs to know something, assume that they do and tell them.

## Be proactive
### Be proactive

We are a remote-first organization, and this means that it is crucial that we work together to identify how to make the most impact.
2i2c generally do a combination of development, operations, and support for the infrastructure and projects that we work on.
Expand All @@ -24,12 +26,21 @@ What you work on will depend on your role and potentially your funding source, b

Read [](coordination.md) and the other documentation in this guide to understand how the 2i2c team coordinates amongst one another.

### What do engineers do at 2i2c?
## Engineering Team Practices

These team practices are relevant for the engineering team at 2i2c.

### Participate in the team workflow

The 2i2c Engineering Team has [a team coordination workflow here](coordination.md).
You are expected to participate in this workflow with other members of the team.

### Participate in the following activities

If you're an engineer at 2i2c, plan to do a combination of these things:

1. Development for the [Managed JupyterHub Service](../managed-hubs/about.md). This is a collection of JupyterHubs that we run for various customers/communities in research/education. We are constantly updating and improving this infrastructure!
2. Operation for the [Managed JupyterHub Service](../managed-hubs/about.md). In addition to developing the infrastructure, we also operate it and provide support. We try to divide this work so that we share the responsibility of operation and support.
3. Focused development in collaboration research and education communities. In addition to running infrastructure, we also collaborate around specific projects, usually involving tools in the Jupyter ecosystem. You may work with researchers in improving their tool, or building something new for another group's project.
4. Outreach, teaching, and community-building. In addition to technical work, we also encourage 2i2c team members to make interactive computing more accessible and powerful for others via outreach, particularly for under-served communities.
5. Open source development and support. We run all of our infrastructure on open source tools - usually from communities for which we are not the sole leader. It is crucial that we participate in these communities and support them in addition to doing 2i2c-specific work.
1. **Development for the [Managed JupyterHub Service](../managed-hubs/about.md).** This is a collection of JupyterHubs that we run for various customers/communities in research/education. We are constantly updating and improving this infrastructure!
2. **Operation for the [Managed JupyterHub Service](../managed-hubs/about.md).** In addition to developing the infrastructure, we also operate it and provide support. We try to divide this work so that we share the responsibility of operation and support.
3. **Focused development in collaboration research and education communities.** In addition to running infrastructure, we also collaborate around specific projects, usually involving tools in the Jupyter ecosystem. You may work with researchers in improving their tool, or building something new for another group's project.
4. **Outreach, teaching, and community-building.** In addition to technical work, we also encourage 2i2c team members to make interactive computing more accessible and powerful for others via outreach, particularly for under-served communities.
5. **Open source development and support.** We run all of our infrastructure on open source tools - usually from communities for which we are not the sole leader. It is crucial that we participate in these communities and support them in addition to doing 2i2c-specific work.
13 changes: 0 additions & 13 deletions practices/info-location.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,19 +17,6 @@ More organization-specific discussion and items we track can also be found in [t
Generally speaking the daily specifics of activity on a project are recorded *outside* of the team compass, as they are more dynamic. The important thing is that the team compass make it clear *where* to find this information, and that the information is kept up-to-date for all.


## Tips for working remotely

2i2c is a remote-first organization, and believes strongly in following practices that are inclusive, participatory, and collaborative. It has team members spread out over many time zones working on a variety of projects. There are many guides and tips for working remotely[^remote-work1], and we've tried to distill a few key components for our workflows:

1. **Have a single source of truth**. For any information or projects in 2i2c, there should be one source of truth. Any conflicting information will defer to this source of truth, and it should be updated first and often. The default source of truth is this team compass, unless otherwise specified.

2. **Document everything**. Documentation is the most important tool for coordinating and distributing information across remote teams. It is crucial that 2i2c team members document all relevant information about their projects, what they are working on, etc.

3. **Broadcast updates in multiple places**. Different people have different preferred methods of engagement and communication on 2i2c projects. For this reason, don't assume that posting an update or question in a single location will reach everybody that you wish to reach. Do not hesitate to post questions or ask for feedback in multiple places (e.g., GitHub, Slack, or even email). However, try to keep information in a single place to have a single source of truth.

4. **Update often**. Err on the side of updating the team more often than not. Nobody should be surprised when something gets done - especially nothing major. Your work should be as transparent to others as possible!


## Marketing and communication

There are three main ways that 2i2c communicates with the outside world:
Expand Down
Loading

0 comments on commit 45c8612

Please sign in to comment.