1. Playbook
  2. Onboarding

First Steps

Install Hypothesis

Install the Hypothesis web annotation tool so you can use it to annotate this playbook with questions, comments and corrections.

GitLab

We use GitLab for a lot of project management as well as managing our code in git repositories. We want to introduce you to it here briefly because we will use its issue tracker functionality.

It's fine if you are unfamiliar with GitLab โ€“ you only need the basics for now.

You can explore the documentation in your own time.

Github

We also use Github, though less actively, and primarily for our open-source, public codebases.

The only thing to do here is to publicly display your Datopian membership, see Publicizing or hiding organization membership.

Onboarding Issue

You are going to track your onboarding progress using a Gitlab issue in the onboarding project.

  • Please go to Onboarding.
  • Create your own GitLab issue and use it to track your Onboarding progress. Name it like Onboarding {First Name} {Last Name} {Date}
  • Copy and paste the checklist below into your GitLab issue and modify it/add more learnings to it while going through the Onboarding process (eg. Markdown, HackMD, GitLab, etc.).
This is my exciting onboarding issue! ๐Ÿš€

## Onboarding Essentials

### Prerequisites

* [ ] I have access to Datopian email
* [ ] I have set up accounts on all the systems
  * [ ] Google Authenticator
  * [ ] GDrive
  * [ ] Calendar
  * [ ] GitHub
  * [ ] GitLab
  * [ ] Hypothesis
  * [ ] HackMD
  * [ ] GChat
  * [ ] Xero
  * [ ] Gravatar
* [ ] I have submitted my bank account details
* [ ] I have submitted my details via the Phonebook form
* [ ] I have set up my laptop

### Two-Factor Authentication

* [ ] Google
* [ ] GitHub 
* [ ] GitLab

### First Steps

* [ ] Have created this issue in GitLab :smile:
* [ ] Hypothesis working in my browser and have created (and then deleted) one test annotation on this website
* [ ] On GitHub I have made my membership in Datopian public and it's visible on my profile and https://github.com/datopian
* [ ] I have access to GDrive
  * [ ] Have created my Email Signature
  * [ ] Doc Styles are set. Test by creating a Google doc in apprentice folder and see that default doc styles are automatically applied (you can delete this document afterward).
* [ ] Calendar
  * [ ] [settings] Add working hours
  * [ ] [settings] Check if your time zone is correct
  * [ ] Created a calendar meeting
  * [ ] Invited one or more other people to it
  * [ ] Deleted it
  * [ ] Add any days to your and the team's calendar in next 2 months in which you will be away (delete these afterward if inaccurate).
  * [ ] Confirmed I have the All Team Monthly meeting and General Tactical Meeting on my calendar 
* [ ] How we communicate
  * [ ] Go on GChat and message your onboardee directly
* [ ] Standups
  * [ ] Write a standup in the onboarding channel (Plan, Recap, Blockers (if any), Availability)
* [ ] Meetings
  * [ ] Create a meeting doc in the [onboarding practice folder](https://drive.google.com/drive/u/0/folders/1XbKO6_IbTLXu6-OVTzpPYJgJ_Hzn8Lxv)
  * [ ] Structure the document according to the recommendation. Do as if you were going to introduce someone to the place where you live
  * [ ] Post the link to the meeting doc on the onboarding channel and ask for it to be reviewed
* [ ] Fill out [Datopian's Skill DB](https://docs.google.com/forms/d/e/1FAIpQLSeiR0eRZ8zerYgb17-1ed0DqWTOgTqe1YYWvClE_l5FvuvZIQ/viewform)

Setting up Google Drive

After setting up your email address, you will have access to GSuite, and of course, Google Drive.

The Onboarder will have granted you access to relevant Team Drives, so you can access and store the information / documents you require.

  • Any new documents / sheets /presentations you create should be created in the appropriate folder in the Team Drive, not your personal drive. This speaks to our open and collaborative working culture and avoids having to explicitly share files with people.
  • If you require access to files that you currently don't have access to, please reach out to your Onboarder.

E-Mail Signature

Please implement this E-mail signature template into your gmail account.

Default Styles

We want our documents to look neat and coherent so we set up default styles for Datopian. Follow the steps below to set up default styles for your documents in Drive.

  • Go into Doc Style Template (Drive: All โ†’ Useful Docs for New Joiners)
  • Then, click the menu item Format โ†’ Paragraph Styles โ†’ Options โ†’ SAVE as my default styles

Test it:

  • Create a new document
  • Start writing.
  • Check if the styles are correct: compare with the styles in the template.

Calendar

You have been given access to create, edit, and share in the Datopian Team calendar. We use the team calendar to track people's working hours and holidays.

It is expected that you keep your calendar up to date so that if it shows as free, that means a colleague can add a meeting during that period.

Set Your Working Hours

Set your working hours in the Google Calendar settings so that people automatically get warned when they try to schedule a meeting outside your working hours.

For instructions on how to set your working hours, see:

Google Calendar Docs.

Working hours are according to the primary time zone you have set in Google Calendar. For info on where to find your primary time zone in the settings, see:

How To

  • To see someone else's calendar, see others' calendars side by side or find a time that someone is free, see: Google Calendar Docs
  • You can also add the calendars of the teammates you're mostly working with so you can easily see their availability. For instructions, see Google Calendar Docs

[!tip]We have a weekly all hands, this will be in your Datopian calendar once you sign in to your email.

How We Communicate

As a virtual organization we need to have efficient, reliable, cost-effective ways to communicate and share material.

Google Chats is the main chat channel we use to communicate with our team members.

Any project information or artifacts (e.g. README or technical specs) should be kept on the drive and not on Google Chats. We use Google Chats as a communication platform and not a knowledge management platform.

Once you have your Google Chat account, please let your Onboarder know and they will add you to the appropriate channels for your role and introduce you to everyone.

Communication Tools

  • Chat โ€“ We use Google chat. A networking platform online (or download the app) where we have different rooms for different projects/purposes. (Based on the transparent policy, we require people to speak publicly in the related group and @ the people you want to talk instead of texting privately, unless it is a personal chat.)

  • Voice / Video calls: Our default tool is Google Meet โ€“ video call links are automatically added to every meeting set up using our Google Apps calendar.

    Face to face communication is a big deal for humans. Facial cues are very important. Always prefer video over voice for synchronous.

  • Email โ€“ we use Gmail.

  • Documents โ€“ GDrive for all internal documents, we also use HackMD.

Standups

Standups are part of the [agile methodology][agile]. Their purpose is to:

  • Keep the team in sync
  • Surface blockers
  • Deal with issues arising (e.g. need to reprioritize in face of an arising issue or change in estimate)

Traditionally, standups they are done verbally "in person" (in a live team meeting e.g. on video). Most teams at Datopian do this. However, we have found it useful1 to provide the standup in a written form and post it on chat. Thus, team members SHOULD provide daily written "standup" update in their project channel or other agreed location. The form is as follows:

  • Availability: What is your availability for next 24h? e.g. "6h" or "Not working" or โ€ฆ
  • Last: Short sentence or bullets about last 24h and what you accomplished
  • Next: your plan for the next 24h. Short sentence or bullets.
  • Blockers: Is there anything that is or will get in your way for you to complete your tasks? You can omit this or leave it blank if there aren't.
* Availability: ...
* Last: ...
* Next: ...
* Blockers: ...

Meetings

See Meetings ยป.

Markdown

Markdown is a markup language with plain text formatting syntax. We often use markdown language based tools, including HackMD and GitLab.

If you are new to Markdown, see the Markdown tutorial.

HackMD

We mostly use HackMD for developing documents, it's not only because it's free but also it allows several team members co-work at the same time! HackMD also gives you the output real-time and you can easily copy and paste the markdown text into another interface/platform (e.g. GitLab) by keeping the same format.

Frequent senarios to use HackMD with the team:

  • as scratch pad for brainstorming to generate ideas of a project or a document;
  • as essential document to co-work a project with team members;
  • as draft for GitLab issues;
  • as draft before git commit, etc.

Let's try it out here.

Note: For meeting doc, you will want to use Google Doc, not HackMD.

Version Control and Git

We use version control and git in particular to manage code and also a lot of content.

See the Version Control and Git section for more information, including an introduction for those new to the topic.

Footnotes

  1. Why have we found this useful? First, written updates are easier to follow. Second, if some team members can't make standup they can still get the updates. โ†ฉ