Services Support Agent Bootcamp Checklist

Bootcamp Checklist for Training of New Services Support Agents

Your manager should create an issue with this checklist on the support team issue tracker for you as part of your onboarding. This list looks strange in this handbook because it is formatted to be copy-pasted into an issue and then render properly there.

The topics are generally ordered by priority in which they need to be tackled, but feel free to work on later things in the list when you are waiting on something.

We need to keep iterating on this checklist so please submit MR's for any improvements
that you can think of. The file is located in [`source/handbook/support/onboarding/services-support-onboarding/index.html.md`](https://gitlab.com/gitlab-com/www-gitlab-com/tree/master/source/handbook/support/onboarding/services-support-onboarding/index.html.md) in the [www-gitlab-com](https://gitlab.com/gitlab-com/www-gitlab-com/) project. If an item does not start with a role or name of someone else, it's yours to do.

**Goal of this entire checklist:** Set a clear path for Services Support Agent training

### Stage 0: Complete general onboarding to have all necessary accounts and permissions

- [ ] **Done with Stage 0**

_Typically completed within first week_

1. [ ] General expectations: it is expected that you will _start_ to tackle Stages 0, 1, 2, and 3 as early as your first week, but you are not expected to complete all items for some number of weeks. We believe that you often learn best and fastest by diving into (relatively easy) tickets, and learning by doing. However, this has to be balanced with making time to learn some of the tougher topics. The expectation is therefore that you are sufficiently advanced in your onboarding by the end of your first week, that you can answer 2-5 "simple" tickets. Over the following weeks, your manager will set higher targets for the number and difficulty of tickets to be tackled, but you should always have about 2-3 hrs per day to spend on working through this bootcamp. Some days it will be less, some days it will be more, depending on ticket load and how deep "in the zone" you are in either the bootcamp or the tickets you are responding to; but an average of 2-3 hrs per day should allow you to complete everything through to the end of Stage 6 within about four weeks.
1. [ ] General Onboarding Checklist: this should have been created for you on [the People Ops Employment issue tracker](https://gitlab.com/gitlab-com/people-ops/employment/issues/) when you were hired.
   1. [ ] Finish every item on that list starting with `New team member:` until you are waiting for someone to answer a question or do something before you can continue that list.
   1. [ ] Start with Stage 1 here, but also with the first steps in Stage 2 and Stage 3.
   1. [ ] Check back daily on what was blocking you on your General Onboarding Checklist until that list is completely done, then focus on this one.

### Stage 1: Become familiar with git and GitLab basics

- [ ] **Done with Stage 1**

_Typically started in first week, completed by end of second week_

If you are already comfortable with using Git and GitLab and you will be able to
retain a good amount of information by just reading and watching through, that is
okay. But if you see a topic that is completely new to you, stop the video and try
it out for yourself before continuing.

1. [ ] Let your manager know you're ready to be assigned a trainer.
1. [ ] Just quickly check on your Zendesk account to make sure that is ready for you when you need it.
1. [ ] Add a [profile picture](https://support.zendesk.com/hc/en-us/articles/203690996-Updating-your-user-profile-and-password#topic_rgk_2z2_kh) to your Zendesk account
1. [ ] Let your manager know if for some reason you were not able to create an account on Zendesk.
1. [ ] Under your profile on Zendesk, it should read `Agent`. If it reads `Light Agent`, inform your manager.
1. [ ] Get familiar with our [support workflows](https://about.gitlab.com/handbook/support/workflows/#support_workflows)

Cover these topics on the [GitLab University](https://docs.gitlab.com/ee/university/):

1. [ ] Under the topic of Git
  1. [ ] [About Version Control](https://docs.google.com/presentation/d/16sX7hUrCZyOFbpvnrAFrg6tVO5_yT98IgdAqOmXwBho/edit#slide=id.gd69537a19_0_14)
  1. [ ] [Try Git](https://www.codeschool.com/account/courses/try-git)
1. [ ] Under the topic of GitLab Basics
  1. [ ] All the [GitLab Basics](http://docs.gitlab.com/ee/gitlab-basics/README.html) that you don't feel comfortable with. If you get stuck, see the linked videos under GLB in GitLab University
  1. [ ] [GitLab Flow](https://www.youtube.com/watch?v=UGotqAUACZA)
  1. [ ] Take a look at how the different GitLab versions [compare](https://about.gitlab.com/features/#compare)
1. [ ] Any of these that you don't feel comfortable with in the [user training](https://gitlab.com/gitlab-org/gitlab-ee/tree/master/doc/university/training/topics) we use for our customers.
  1. [ ] `env_setup.md`
  1. [ ] `feature_branching.md`
  1. [ ] `explore_gitlab.md`
  1. [ ] `stash.md`
  1. [ ] `git_log.md`
  1. [ ] For the rest of the topics in `user training`, just do a quick read over the file names so you start remembering where to find them.
1. [ ] Get familiar with the services GitLab offers
  1. [ ] The differences between [Free, Bronze, Silver, Gold](https://about.gitlab.com/pricing/#gitlab-com) in our SaaS product (which you'll be supporting)
  1. [ ] The differences between [the different versions of self-hosted](https://about.gitlab.com/pricing/)
  1. [ ] [GitHost](https://about.gitlab.com/gitlab-hosted/) (no longer accepting new customers, but still supported)


### Stage 2. Customer Interaction through Zendesk

- [ ] **Done with Stage 2**

_Typically started in first week, and completed by the end of the fourth week_

**Goals**

- Have a good understanding of ticket flow through Zendesk and how to interact with our various channels
- See some common issues that our customers are facing and how to resolve them.

**Initial Zendesk training**

Zendesk is our Support Centre and our main communication line with our customers. We communicate with customers through several other channels too, see the support handbook for the full list.

1. [ ] Complete Zendesk Agent training (allow 40 minutes for completion)
  1. Navigate to [Zendesk university](http://training.zendesk.com/checkout/3djt0nv8i5y5r) and register. You'll receive an email with information on accessing the Zendesk course
  1. Proceed to complete the **"Quick Tips: Agent"** course
1. [ ] Review additional Zendesk resources
  1. [ ] [UI Overview](https://support.zendesk.com/hc/en-us/articles/203661806-Introduction-to-the-Zendesk-agent-interface)
  1. [ ] [Updating Tickets](https://support.zendesk.com/hc/en-us/articles/212530318-Updating-and-solving-tickets)
  1. [ ] [Working w/ Tickets](https://support.zendesk.com/hc/en-us/articles/203690856-Working-with-tickets) *Read: avoiding agent collision.*

**Learn about the Support process**

1. [ ] Perform 15 one-hour pairing sessions with Services Support Agents.  Contact each in Slack to find a time that works, then create a Calendar event, inviting that person.  When it's time for the pairing session, create a new [Support project Issue](https://gitlab.com/gitlab-com/support/support-team-meta/issues) and use the template **Ticket Pairing** on the call.
  1. [ ] call with ___; issue link: ___
  1. [ ] call with ___; issue link: ___
  1. [ ] call with ___; issue link: ___
  1. [ ] call with ___; issue link: ___
  1. [ ] call with ___; issue link: ___
  1. [ ] call with ___; issue link: ___
  1. [ ] call with ___; issue link: ___
  1. [ ] call with ___; issue link: ___
  1. [ ] call with ___; issue link: ___
  1. [ ] call with ___; issue link: ___
  1. [ ] call with ___; issue link: ___
  1. [ ] call with ___; issue link: ___
  1. [ ] call with ___; issue link: ___
  1. [ ] call with ___; issue link: ___
  1. [ ] call with ___; issue link: ___
1. [ ] Dive into our ZenDesk support process by reading how to [handle tickets](https://about.gitlab.com/handbook/support/onboarding/#handling-tickets)
1. [ ] Learn about the [hot queue](https://about.gitlab.com/handbook/support/#hot-queue-how-gitlab-manages-ticket-assignments).
1. [ ] Start getting real world experience by handling real tickets, all the while gaining further experience with the Product.
   1. [ ] First, learn about our [Support Channels](https://about.gitlab.com/handbook/support/channels).
  1. [ ] [Proceed on to Regular email Support tickets](https://about.gitlab.com/handbook/support/channels/#regular-zendesk-tickets)
     1. Here you will find tickets from our GitLab.com Customers and GitLab.com (free) users
     1. Tickets here are extremely varied 
     1. You should be prepared for these tickets, given the knowledge gained from previous tiers and your training
1. [ ] Check out your colleagues' responses
   1. [ ] Hop on to the #support-live-feed channel in Slack and see the tickets as they come in and are updated
   1. [ ] Read through about 20 old tickets that your colleagues have worked on and their responses

**Learn about the Escalation process for Issues**

Some tickets need specific knowledge or a deep understanding of a particular component and will need to be escalated to a Senior Services Support Agent or Developer

1. [ ] Read about [creating issues and issue prioritazion](https://about.gitlab.com/handbook/support/onboarding/#create-issues)
1. [ ] Take a look at the [GitLab.com Team page](https://about.gitlab.com/team/) to find the resident experts in their fields

**Learn about raising issues and fielding feature proposals**

1. [ ] Understand what's in the pipeline and proposed features at GitLab: [Direction Page](https://about.gitlab.com/direction/)
1. [ ] Practice searching issues and filtering using [labels](https://gitlab.com/gitlab-org/gitlab-ce/labels) to find existing feature proposals and bugs
1. [ ] If raising a new issue always provide a relevant label and a link to the relevant ticket in Zendesk
1. [ ] Add [customer labels](https://about.gitlab.com/handbook/support/workflows/support_workflows/issue_escalations.html#use-labels) for those issues relevant to our subscribers
1. [ ] Take a look at the [existing issue templates](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#issue-tracker) to see what is expected
1. [ ] Raise issues for bugs in a manner that would make the issue easily reproducible. A Developer or a contributor may work on your issue.
1. [ ] Schedule a 45 minute call with your trainer where you share your screen
with them while you answer tickets on Zendesk, they give you feedback and answer
your questions. The goal with this call is for your trainer to pass on tactical
knowledge about the ticket handling process. Repeat this step a few times if that seems useful.

### Congratulations. You now have your Zendesk Wings!

### From now on you can spend most of your work time answering tickets on Zendesk. Never hesitate to ask as many questions as you can think of on the `#support` chat channel. 

### Stage 3. Feedback and Documentation
Keeping our documentation and workflows up to date will ensure that all Service Support Agents will be able to access and learn from the best
practices of the past. Giving feedback about your onboarding experience will ensure that this document is continually updated and those coming
after you will have an easier time coming in.

1. [ ] Schedule a call with your manager to discuss your on-boarding issue. Make a comment with the following questions answered:
   - What things were helpful?
   - What things did you wish existed in your onboarding?
   - What areas do you still not feel confident in?
   - Which areas do you feel strong in?
   - Discuss which areas of documentation need to be updated or created. Then update / create three of those:
      1. [ ] _________
      1. [ ] _________
      1. [ ] _________

1. [ ] Make an update to this on-boarding template to make it better. 


### Stage 4. Optional Advanced GitLab Topics

Discuss with your training manager if you should stop here and close your issue
or continue. Also discuss which of the advanced topics should be followed. Do
not just do all of them as they might not be relevant to what customers need
right now and can be a significant time investment.

These are some of GitLab's more advanced features. You can make use of
GitLab.com to understand the features from an end-user perspective 

- [ ] Set up and try [Git LFS](https://docs.gitlab.com/ee/workflow/lfs/manage_large_binaries_with_git_lfs.html)
- [ ] Get to know the [GitLab API](https://docs.gitlab.com/ee/api/README.html), its capabilities and shortcomings
- [ ] Learn how to [migrate from SVN to Git](https://docs.gitlab.com/ee/workflow/importing/migrating_from_svn.html)
- [ ] Set up [GitLab CI](https://docs.gitlab.com/ee/ci/quick_start/README.html)
- [ ] Create your first [GitLab Page](https://docs.gitlab.com/ee/pages/administration.html)
- [ ] Get familiar with the GitLab source code by finding the differences
between the [EE codebase](https://gitlab.com/gitlab-org/gitlab-ee) and the [CE codebase](https://gitlab.com/gitlab-org/gitlab-ce)