Files
2nd/10_Wiki/Topics/Coding/Productivity_Onboarding_Process.md
T
2026-05-10 22:08:15 +09:00

6.3 KiB

id, title, category, status, source_trust_level, verification_status, created_at, updated_at, tags, tech_stack, applied_in, aliases
id title category status source_trust_level verification_status created_at updated_at tags tech_stack applied_in aliases
productivity-onboarding-process Engineering Onboarding — first 30 / 60 / 90 days Coding draft B conceptual 2026-05-09 2026-05-09
productivity
onboarding
vibe-coding
language applicable_to
process
Engineering
onboarding
ramp up
buddy
first PR
30/60/90
new hire
devcontainer

Engineering Onboarding

새 engineer 의 첫 90 days. Day 1 = code clone. Week 1 = first PR. Month 3 = own feature. Buddy + doc + checklist.

📖 핵심 개념

  • 명시적 timeline.
  • Buddy + manager 1-on-1.
  • Doc 가 catchup.
  • 첫 PR 가 빠른 (small task).

💻 코드 패턴

Day 1 checklist

## Day 1
- [ ] Laptop setup
- [ ] Account: GitHub, Slack, AWS, Linear
- [ ] Read [Engineering Handbook](#)
- [ ] Read [README](#)
- [ ] Run app locally (devcontainer 권장)
- [ ] Buddy 1-on-1
- [ ] Manager 1-on-1
- [ ] First Slack post (introduction)

Week 1

## Week 1
- [ ] 첫 PR (typo fix / docs)
- [ ] Architecture overview 읽음
- [ ] 5 ADR 읽음
- [ ] Pair on a feature
- [ ] Standup 가입
- [ ] Sprint planning 참여
- [ ] Daily 1-on-1 with buddy

Month 1

## Month 1
- [ ] 작은 feature 완료 (1주)
- [ ] On-call shadowing
- [ ] Code review 시작 (1-2 PR / week)
- [ ] Customer 한 번 talk
- [ ] Retro 참여

Month 3

## Month 3
- [ ] 큰 feature 완료
- [ ] On-call (primary)
- [ ] 다른 사람 onboard 의 buddy
- [ ] 90-day review

Devcontainer

// .devcontainer/devcontainer.json
{
  "name": "MyApp Dev",
  "image": "mcr.microsoft.com/devcontainers/javascript-node:20",
  "postCreateCommand": "npm install && npm run db:setup",
  "extensions": ["dbaeumer.vscode-eslint", "esbenp.prettier-vscode"],
  "forwardPorts": [3000, 5432, 6379]
}

→ "Clone + open in Codespaces / VS Code = 동작".

Setup script

# bin/setup
#!/bin/bash
set -e

# Detect OS
if [[ $OSTYPE == 'darwin'* ]]; then
    brew bundle
fi

npm install
docker compose up -d
npm run db:migrate
npm run db:seed

echo "Ready! Run: npm run dev"

→ "1 command setup".

First PR (intentional small)

- Typo in README.
- 1 unit test 추가.
- 작은 refactor (rename variable).

→ Goal:
- Git workflow 익숙.
- Code review 경험.
- 매 commit.
- CI pass.

Buddy

같은 team 의 mid-senior.
- Day 1-7: 매일 30 min 1-on-1.
- Week 2-4: 매일 짧은 check.
- Month 2+: ad hoc.

→ "Stupid question" channel.

Manager 1-on-1

주 1회.
- Career goal.
- Feedback.
- Block / 어려움.

→ Onboarding 의 first 30 days = 매주.

Architecture diagram

새 사람 이 큰 그림 잡기:
- System diagram (Excalidraw).
- Service map.
- Data flow.
- Critical path.

→ Onboarding doc 의 1 page.

Codebase tour

30-60 min:
- 매 module 의 owner.
- 매 큰 file 의 purpose.
- Dependency graph.
- "Don't touch" zone.

→ Walk-through video (Loom).

Reading list

1. README.
2. CONTRIBUTING.md.
3. Architecture overview.
4. Top 5 ADR (recent decision).
5. Coding style guide.
6. Deployment process.
7. Incident playbook.

→ 1 week 안 read.

Stupid question channel

Slack #help-{team} 또는 #ask-anything.
- 질문 가 환영.
- 매 답 가 doc 가능 (FAQ).

Pair programming (early)

새 사람 = navigator.
Buddy = driver.
- Real task 가 함께.
- Implicit knowledge transfer.

→ 1주 후 swap.

Mentor vs buddy vs manager

Buddy: same team, 작은 questions.
Mentor: career, technical depth.
Manager: career, performance, growth.

→ 매 다른 role.

Anti-pattern

- "Sink or swim": 친절한 X.
- 매 사람 가 다른 process: drift.
- No buddy: lonely.
- No 1-on-1: signal X.
- 큰 first PR: discouraging.
- No documentation: 모든 거 ask.

Onboarding survey

30 day 후 survey:
- Setup 가 smooth?
- Doc 가 clear?
- Buddy 가 helpful?
- 첫 PR experience?
- 무엇 missing?

→ Onboarding 자체 의 improvement.

Remote onboarding

First-day video call (manager + buddy + team intro).
Loom 가 walkthrough.
Async doc 가 baseline.
Periodic sync (weekly) — 사람.
Coffee chat (random).

→ In-person 의 lonely 방지.

Tools setup automation

# bin/onboard.sh
- Generate AWS access key.
- Add to GitHub team.
- Slack invite.
- Set up 1Password vault.
- Schedule 1-on-1.
- Send welcome email.

→ 매 onboarding 가 manual = drift.

Pre-day-1

Offer accepted → Day 1 까지 1-2 weeks:
- Hardware ship.
- Account 미리 setup.
- 첫 day schedule.
- Welcome package.
- Reading material (optional).

→ Day 1 가 "ready".

Buddy 의 commitment

Buddy = 매주 4-8 hour (first month).
- Manager 가 buddy 의 work load 감소.
- Buddy reward (review, perf).

→ Buddy 가 "free time" 가 안 됨. Recognized work.

Quick win

1주 내 ship 가능 task.
- Bug fix (low risk).
- Small feature.
- 작은 refactor.

→ "I shipped to production!" 가 self-confidence.

90-day review

Manager + new hire:
- Goal achieved?
- Onboarding 가 좋음?
- Career direction?
- Improvement?

→ 명시적 milestone.

Ramp-up time (industry)

Junior: 3-6 month.
Senior: 1-3 month.
Staff+: 1 month (큰 codebase) - 6 month (큰 system).

→ "Productive" = first PR 보다 own feature.

Public examples

  • GitLab handbook: 매 process public.
  • Basecamp: shape up + onboarding.
  • Stripe: pair programming heavy.
  • Shopify: dev environment 자동.

🤔 의사결정 기준

단계 추천
Day 1 Setup + buddy meet
Week 1 First PR + read
Month 1 Small feature + on-call shadow
Month 3 Big feature + own
Big team Cohort (group hire)
Remote Async + sync sync

안티패턴

  • Sink or swim: morale ↓.
  • No buddy: lonely.
  • Big first PR: discouraging.
  • No doc: 모든 question = sync.
  • Manual setup: 매 사람 가 다름.
  • No 90-day review: signal X.
  • Buddy 가 free time: 안 됨.

🤖 LLM 활용 힌트

  • Day 1 / Week 1 / Month 1 / 3 timeline.
  • Buddy + manager 1-on-1.
  • Devcontainer 가 "1 command setup".
  • First PR 가 small + quick.

🔗 관련 문서