AgentSkillsCN

Developer Onboarding

设计高效的入职流程,帮助新开发人员快速上手、深入理解代码库,并顺利融入团队,实现高效协作。

SKILL.md
--- frontmatter
name: Developer Onboarding
description: Creating effective onboarding processes that help new developers become productive quickly, understand the codebase, and integrate smoothly into the team.

Developer Onboarding

Current Level: Intermediate
Domain: Team Collaboration / People


Overview

Developer onboarding is the process of helping new team members become productive quickly. Effective onboarding includes clear documentation, mentorship, hands-on tasks, and a structured program that reduces time-to-productivity and improves retention.

Why Good Onboarding Matters

BenefitImpact
Faster ProductivityNew hires contribute sooner
Higher RetentionBetter employee satisfaction
Better IntegrationSmoother team assimilation
Reduced MistakesClearer expectations
Positive ExperienceStrong first impression

Pre-Boarding

Before Day 1

markdown
# Pre-Boarding Checklist

## Send Welcome Email
- [ ] Welcome email sent
- [ ] Start date confirmed
- [ ] Onboarding schedule shared

## Prepare Equipment
- [ ] Laptop ordered
- [ ] Peripherals (mouse, keyboard, monitor)
- [ ] Software licenses purchased

## Prepare Access
- [ ] Email account created
- [ ] Slack account created
- [ ] GitHub account added
- [ ] Documentation access granted

## Prepare Team
- [ ] Team notified
- [ ] Buddy assigned
- [ ] Calendar invites sent

Welcome Email Template

markdown
# Welcome Email

Subject: Welcome to [Company Name]!

Dear [New Hire Name],

Welcome to the team! We're excited to have you join us.

## Your First Day
**Date:** [Start Date]
**Time:** [Start Time]
**Location:** [Office Address / Remote]

## What to Bring
- Laptop (if provided)
- Government ID for HR paperwork
- Any questions you have!

## Before You Start
Please complete the following:
1. Set up your GitHub account
2. Install required software:
   - VS Code
   - Git
   - Docker
3. Review our onboarding guide: [Link]

## Your Schedule
**Day 1:** Orientation and setup
**Week 1:** Environment setup and first commits
**First Month:** Complete first feature

## Questions?
If you have any questions before you start, please reach out to:
- [Manager Name]: [Email]
- [Buddy Name]: [Email]

Quick Start

Onboarding Checklist Template

markdown
# Onboarding Checklist: [Name]

## Pre-Day 1
- [ ] Send welcome email
- [ ] Prepare equipment
- [ ] Create accounts (GitHub, Slack, etc.)
- [ ] Assign buddy/mentor

## Day 1
- [ ] Welcome meeting
- [ ] Team introduction
- [ ] Development environment setup
- [ ] First commit (setup task)

## Week 1
- [ ] Codebase walkthrough
- [ ] First real task
- [ ] Code review participation
- [ ] Documentation review

## Month 1
- [ ] Complete onboarding tasks
- [ ] Attend team meetings
- [ ] Contribute to codebase
- [ ] Feedback session

Onboarding Documentation

markdown
# Developer Onboarding Guide

## Getting Started
1. Clone repository
2. Run setup script: `./scripts/setup.sh`
3. Read CONTRIBUTING.md
4. Complete first task

## Resources
- Architecture docs: `/docs/architecture`
- API docs: `/docs/api`
- Team wiki: [link]

Production Checklist

  • Welcome Package: Prepare welcome materials
  • Equipment: Set up development equipment
  • Accounts: Create all necessary accounts
  • Documentation: Onboarding documentation ready
  • Mentor: Assign mentor/buddy
  • First Task: Prepare first task (not too hard)
  • Environment Setup: Development environment setup guide
  • Codebase Tour: Codebase overview session
  • Team Introduction: Introduce to team members
  • Processes: Explain team processes (standup, reviews)
  • Feedback: Regular check-ins and feedback
  • Resources: Provide learning resources

Anti-patterns

❌ Don't: Information Overload

markdown
# ❌ Bad - Too much at once
## Day 1
- Read all 50 documentation files
- Understand entire codebase
- Learn all tools
# Overwhelming!
markdown
# ✅ Good - Gradual introduction
## Day 1
- Welcome and team intro
- Setup development environment
- First simple task

## Week 1
- Codebase overview
- First real feature
- Code review participation

❌ Don't: No Structure

markdown
# ❌ Bad - No plan
"Just start coding and ask questions"
markdown
# ✅ Good - Structured program
## Week 1: Setup and Orientation
- Day 1: Environment setup
- Day 2: Codebase tour
- Day 3: First task
- Day 4: Code review
- Day 5: Feedback session

❌ Don't: No Mentor

markdown
# ❌ Bad - No support
"Figure it out yourself"
markdown
# ✅ Good - Mentor assigned
- Buddy: [Name]
- Available for questions
- Regular check-ins scheduled

Integration Points

  • Code Review Culture (27-team-collaboration/code-review-culture/) - Review process
  • Knowledge Sharing (27-team-collaboration/knowledge-sharing/) - Knowledge transfer
  • Documentation (21-documentation/) - Onboarding docs

Further Reading

We're looking forward to working with you!

Best regards, The [Company Name] Team

code

## Day 1

### Welcome and Setup

```markdown
# Day 1 Schedule

## Morning (9:00 AM - 12:00 PM)
- Welcome and introductions
- HR paperwork
- Equipment setup
- Account setup

## Afternoon (1:00 PM - 5:00 PM)
- Development environment setup
- Repository access
- Team introduction
- First commit

Setup Checklist

markdown
# Day 1 Setup Checklist

## Equipment
- [ ] Laptop received
- [ ] Peripherals connected
- [ ] Software installed

## Accounts
- [ ] Email account set up
- [ ] Slack account set up
- [ ] GitHub account set up
- [ ] Documentation access

## Development Environment
- [ ] VS Code installed
- [ ] Git installed
- [ ] Docker installed
- [ ] Node.js installed
- [ ] Database installed

## Repository Access
- [ ] GitHub access granted
- [ ] Repository cloned
- [ ] Dependencies installed
- [ ] First commit made

Team Introduction

markdown
# Team Introduction

## Meet the Team
- **[Name]** - [Role]
- **[Name]** - [Role]
- **[Name]** - [Role]
- **[Name]** - [Role]

## Your Role
- **Title:** [Job Title]
- **Team:** [Team Name]
- **Manager:** [Manager Name]
- **Buddy:** [Buddy Name]

## Team Communication
- **Slack:** [Channel Name]
- **Standup:** [Time]
- **Sprint Planning:** [Day/Time]
- **Retrospective:** [Day/Time]

Week 1

Environment Setup

markdown
# Week 1: Environment Setup

## Day 1-2: Development Environment
- [ ] Install required software
- [ ] Set up development database
- [ ] Configure environment variables
- [ ] Set up local server

## Day 3-4: Codebase
- [ ] Clone repository
- [ ] Install dependencies
- [ ] Run application locally
- [ ] Run tests

## Day 5: First Commit
- [ ] Create feature branch
- [ ] Make small change
- [ ] Commit and push
- [ ] Create pull request

First Commit Guide

bash
# First commit guide

# Clone repository
git clone https://github.com/company/repo.git
cd repo

# Create feature branch
git checkout -b feature/first-commit

# Make small change
# Edit a file

# Commit changes
git add .
git commit -m "Add my first commit"

# Push to remote
git push origin feature/first-commit

# Create pull request
# Go to GitHub and create PR

First Month

Complete First Feature

markdown
# First Month: Complete First Feature

## Week 1: Environment Setup
- [ ] Development environment set up
- [ ] Codebase understood
- [ ] First commit made

## Week 2: Small Task
- [ ] Pick up small task
- [ ] Implement feature
- [ ] Write tests
- [ ] Create PR

## Week 3: Code Review
- [ ] Address review feedback
- [ ] Merge PR
- [ ] Deploy to staging

## Week 4: Production
- [ ] Deploy to production
- [ ] Monitor metrics
- [ ] Document learnings

Onboarding Checklist

markdown
# Onboarding Checklist

## Week 1
- [ ] Development environment set up
- [ ] Codebase cloned
- [ ] Dependencies installed
- [ ] Application running locally
- [ ] Tests passing

## Week 2
- [ ] First PR created
- [ ] Code review completed
- [ ] Feedback addressed
- [ ] PR merged

## Week 3
- [ ] First feature completed
- [ ] Tests written
- [ ] Documentation updated
- [ ] Deployed to staging

## Week 4
- [ ] Deployed to production
- [ ] Metrics monitored
- [ ] Learnings documented
- [ ] Onboarding complete

Buddy System

Assign Mentor

markdown
# Buddy System

## Buddy Responsibilities
- Help with onboarding
- Answer questions
- Provide guidance
- Introduce to team

## Buddy Activities
- Daily check-ins (first week)
- Weekly 1-on-1s (first month)
- Code review sessions
- Pair programming

## Buddy Checklist
- [ ] Welcome new hire
- [ ] Introduce to team
- [ ] Help with setup
- [ ] Answer questions
- [ ] Provide guidance

Buddy Schedule

markdown
# Buddy Schedule

## Day 1
- Welcome and orientation
- Team introduction
- Setup assistance

## Week 1
- Daily check-ins
- Answer questions
- Help with tasks

## Week 2-4
- Weekly 1-on-1s
- Code review sessions
- Pair programming

## Month 2+
- Monthly check-ins
- Career guidance
- Support as needed

Documentation

Setup Guide

markdown
# Development Setup Guide

## Prerequisites
- Node.js 16+
- Git 2.0+
- Docker 20.0+
- VS Code

## Installation

### 1. Clone Repository
```bash
git clone https://github.com/company/repo.git
cd repo

2. Install Dependencies

bash
npm install

3. Set Up Environment

bash
cp .env.example .env
# Edit .env with your values

4. Start Database

bash
docker-compose up -d

5. Run Migrations

bash
npm run migrate

6. Start Development Server

bash
npm run dev

Running Tests

bash
npm test

Common Issues

code

### Architecture Overview

```markdown
# Architecture Overview

## System Architecture

┌─────────────────────────────────────────────────────────┐ │ Load Balancer │ └─────────────────────────────────────────────────────────┘ │ ┌─────────────────┼─────────────────┐ │ │ │ ┌───────▼────────┐ ┌─────▼──────┐ ┌────▼──────┐ │ Frontend │ │ Backend │ │ Database │ │ (React) │ │ (Node.js) │ │(PostgreSQL)│ └────────────────┘ └────────────┘ └───────────┘

code

## Components
- **Frontend:** React application
- **Backend:** Node.js API
- **Database:** PostgreSQL

## Data Flow
1. User makes request to frontend
2. Frontend calls backend API
3. Backend queries database
4. Backend returns data to frontend
5. Frontend displays data to user

Small First Tasks

Easy Wins

markdown
# First Tasks

## Task 1: Fix Typo
- Fix typo in README
- Update documentation

## Task 2: Add Test
- Add unit test for function
- Ensure test passes

## Task 3: Update UI
- Update button color
- Add new icon

## Task 4: Fix Bug
- Fix reported bug
- Add test case

Task Selection

TaskDifficultyTime
Fix TypoEasy1 hour
Add TestEasy2 hours
Update UIMedium4 hours
Fix BugMedium6 hours

Regular Check-Ins

1-on-1s

markdown
# 1-on-1 Schedule

## Week 1
- Daily check-ins
- Discuss progress
- Answer questions

## Week 2-4
- Weekly 1-on-1s
- Review progress
- Set goals

## Month 2+
- Monthly 1-on-1s
- Career development
- Feedback

1-on-1 Template

markdown
# 1-on-1 Template

## Agenda
1. Wins since last meeting
2. Challenges faced
3. Questions
4. Goals for next period
5. Feedback

## Wins
- [ ] What went well?
- [ ] What did you learn?

## Challenges
- [ ] What was difficult?
- [ ] What help do you need?

## Questions
- [ ] Any questions?
- [ ] Anything unclear?

## Goals
- [ ] What do you want to achieve?
- [ ] How can I help?

## Feedback
- [ ] Any feedback for me?
- [ ] Any feedback for team?

Access and Tools Setup

Accounts

markdown
# Account Setup

## Email
- [ ] Email account created
- [ ] Email configured
- [ ] Signature added

## Slack
- [ ] Slack account created
- [ ] Channels joined
- [ ] Profile updated

## GitHub
- [ ] GitHub account added
- [ ] SSH keys configured
- [ ] Two-factor enabled

## Documentation
- [ ] Confluence access
- [ ] Notion access
- [ ] Wiki access

Tools

markdown
# Tool Setup

## Development Tools
- [ ] VS Code installed
- [ ] Git installed
- [ ] Docker installed
- [ ] Postman installed

## Communication Tools
- [ ] Slack installed
- [ ] Zoom installed
- [ ] Google Meet installed

## Project Management
- [ ] Jira access
- [ ] Trello access
- [ ] GitHub Projects access

Team Culture Introduction

Values

markdown
# Team Values

## Our Values
- **Collaboration:** Work together
- **Quality:** Deliver excellence
- **Innovation:** Embrace change
- **Transparency:** Be open
- **Respect:** Treat everyone well

## How We Work
- **Communication:** Open and honest
- **Decision Making:** Data-driven
- **Problem Solving:** Collaborative
- **Learning:** Continuous improvement

Norms

markdown
# Team Norms

## Communication
- **Slack:** For quick questions
- **Email:** For formal communication
- **Meetings:** For discussions

## Work Hours
- **Core Hours:** 10 AM - 4 PM
- **Flexible Start:** 8 AM - 10 AM
- **Flexible End:** 4 PM - 6 PM

## Meetings
- **Standup:** Daily at 10 AM
- **Sprint Planning:** Every Monday
- **Retrospective:** Every Friday

Measuring Onboarding Success

Time to First Commit

javascript
// Track time to first commit
const firstCommitDate = '2024-01-15';
const startDate = '2024-01-10';
const timeToFirstCommit = daysBetween(startDate, firstCommitDate);

// Goal: < 3 days

Time to First PR

javascript
// Track time to first PR
const firstPRDate = '2024-01-18';
const startDate = '2024-01-10';
const timeToFirstPR = daysBetween(startDate, firstPRDate);

// Goal: < 1 week

Satisfaction

javascript
// Track satisfaction
const satisfaction = {
    onboarding: 4.5,
    support: 4.8,
    culture: 4.7
};

// Goal: > 4.0

Remote Onboarding

Virtual Welcome

markdown
# Remote Onboarding

## Day 1
- Virtual welcome call
- Team introduction (Zoom)
- Equipment shipped
- Virtual setup session

## Week 1
- Daily video check-ins
- Virtual pair programming
- Online training

## First Month
- Weekly video 1-on-1s
- Virtual team building
- Online collaboration

Remote Setup

markdown
# Remote Setup Checklist

## Equipment
- [ ] Laptop shipped
- [ ] Monitor shipped
- [ ] Peripherals shipped
- [ ] Equipment received

## Software
- [ ] VPN configured
- [ ] Remote access set up
- [ ] Communication tools installed
- [ ] Collaboration tools installed

## Support
- [ ] IT support contact
- [ ] Onboarding buddy assigned
- [ ] Virtual office hours scheduled

Real Examples

Onboarding Plan

markdown
# Onboarding Plan

## Week 1
- Day 1: Welcome and setup
- Day 2: Environment setup
- Day 3: Codebase introduction
- Day 4: First commit
- Day 5: Team introduction

## Week 2
- Small task completion
- Code review participation
- Team meetings

## Week 3
- Feature development
- Testing
- Documentation

## Week 4
- Feature completion
- Deployment
- Onboarding review

Summary Checklist

Preparation

  • Welcome email sent
  • Equipment prepared
  • Accounts created
  • Team notified
  • Buddy assigned

Day 1

  • Welcome and orientation
  • Equipment setup
  • Account setup
  • Team introduction
  • First commit

Week 1

  • Environment setup
  • Codebase understood
  • First PR created
  • Code review completed

First Month

  • First feature completed
  • Tests written
  • Documentation updated
  • Deployed to production
  • Onboarding reviewed