365 lines
7.2 KiB
Markdown
365 lines
7.2 KiB
Markdown
---
|
|
id: quality-mentoring
|
|
title: Mentoring — Junior 성장 / Pair / Knowledge share
|
|
category: Coding
|
|
status: draft
|
|
source_trust_level: B
|
|
verification_status: conceptual
|
|
created_at: 2026-05-09
|
|
updated_at: 2026-05-09
|
|
tags: [quality, mentoring, learning, vibe-coding]
|
|
tech_stack: { language: "Process", applicable_to: ["Engineering"] }
|
|
applied_in: []
|
|
aliases: [mentoring, pair programming, junior dev, knowledge sharing, lunch and learn]
|
|
---
|
|
|
|
# Mentoring
|
|
|
|
> Senior 의 시간 = 가장 큰 leverage. **Junior 1명 성장 = 10x output**. Pair, code review, lunch-and-learn, design doc review.
|
|
|
|
## 📖 핵심 개념
|
|
- 정기 1:1 (weekly).
|
|
- Pair programming (특정 task).
|
|
- Code review = teaching opportunity.
|
|
- Knowledge share (lunch-and-learn).
|
|
|
|
## 💻 코드 패턴
|
|
|
|
### 1:1 meeting (weekly, 30 min)
|
|
```
|
|
Junior 가 운영:
|
|
- 진행 중 무엇
|
|
- 막힘 / 도움 필요
|
|
- 학습 / 성장 목표
|
|
- Feedback (양방)
|
|
|
|
Mentor:
|
|
- Big picture context
|
|
- 중장기 advice
|
|
- 회사 navigation
|
|
```
|
|
|
|
→ Mentor 가 말 X — listening.
|
|
|
|
### Pair programming style
|
|
```
|
|
Driver / Navigator:
|
|
- Driver: typing
|
|
- Navigator: thinking ahead
|
|
- 매 15-20 min swap
|
|
|
|
Ping-pong (TDD):
|
|
- A: test 작성
|
|
- B: 통과 코드
|
|
- B: 다음 test
|
|
- A: 통과 코드
|
|
|
|
Strong-style:
|
|
- "어떤 작은 step?"
|
|
- Driver 가 navigator 의 의도 implement
|
|
```
|
|
|
|
→ Junior 가 driver — 주도 학습.
|
|
|
|
### Pair 의 가치
|
|
```
|
|
- 학습 (junior 입장)
|
|
- 코드 quality (review built-in)
|
|
- Knowledge transfer (bus factor ↓)
|
|
- 같이 어려움 풀기
|
|
|
|
비용:
|
|
- 2명 시간 — but 1명 의 2배 output X
|
|
```
|
|
|
|
### Pair when
|
|
```
|
|
✅ 새 feature 디자인
|
|
✅ 복잡 bug
|
|
✅ Junior onboarding
|
|
✅ Critical refactor
|
|
✅ 새 기술 / pattern
|
|
|
|
❌ 단순 작업 (typo 수정)
|
|
❌ 둘 다 모름 (둘 다 시간 낭비)
|
|
❌ Energy mismatch (피곤)
|
|
```
|
|
|
|
### Code review 가 teaching
|
|
```
|
|
PR comment:
|
|
- "Why" 명시 (단순 "do this" X)
|
|
- Reference (article / docs)
|
|
- Severity (must-fix vs suggestion vs nit)
|
|
|
|
좋은 review:
|
|
"This works, but consider...
|
|
The reason is...
|
|
See: [link]
|
|
What do you think?"
|
|
|
|
→ Author 가 학습.
|
|
```
|
|
|
|
### Lunch-and-learn (weekly / monthly)
|
|
```
|
|
30-60 min:
|
|
- Speaker 가 기술 / pattern 발표
|
|
- 모두 참여
|
|
- Slides / demo / discussion
|
|
|
|
주제 예:
|
|
- 새 framework 사용기
|
|
- Recent incident postmortem
|
|
- Library deep dive
|
|
- Conference talk 요약
|
|
- Domain knowledge
|
|
```
|
|
|
|
### Brown bag
|
|
```
|
|
Lunch-and-learn 의 다른 이름.
|
|
Casual + brown paper bag (lunch).
|
|
|
|
Junior 가 발표 — 학습 + presentation skill.
|
|
```
|
|
|
|
### Onboarding plan (new hire)
|
|
```
|
|
Week 1: 환경 setup, 작은 PR (typo)
|
|
Week 2: Pair on small feature
|
|
Week 3-4: 자체 small feature
|
|
Month 2: Medium feature
|
|
Month 3: Independent
|
|
|
|
→ 점진 시간 + ownership.
|
|
```
|
|
|
|
→ [[Productivity_Documentation]] 의 onboarding doc.
|
|
|
|
### Mentor 의 함정 (avoid)
|
|
```
|
|
- "내가 했을 때는..." — 옛 방식 강제
|
|
- Junior 의 mistake 직접 fix (학습 기회 잃음)
|
|
- 모든 답 줌 (스스로 풀게)
|
|
- Public criticism
|
|
- Micromanage
|
|
```
|
|
|
|
### Junior 가 mentee 로 잘 사용
|
|
```
|
|
- Specific question ("X 가 안 됨" — 맥락 + 시도한 것)
|
|
- 막힘 1-2 시간 — ask
|
|
- Notes 작성 (자체 reference)
|
|
- Mentor 시간 적게 더 자주
|
|
```
|
|
|
|
### "Stuck" rule
|
|
```
|
|
30 min stuck → ask.
|
|
혼자 1 hour 전 = OK 학습.
|
|
2 hour+ = 시간 낭비.
|
|
|
|
→ Pride X — communication.
|
|
```
|
|
|
|
### Review junior PR (정성스럽게)
|
|
```
|
|
- 큰 issue 만 must-fix (작은 nit 무시)
|
|
- Praise good parts
|
|
- Specific suggestion + example
|
|
- Pair review (chat over PR)
|
|
```
|
|
|
|
### Career ladder
|
|
```
|
|
Junior → Mid → Senior → Staff → Principal
|
|
|
|
각 레벨:
|
|
- 기술 깊이
|
|
- Scope (own task → team → org)
|
|
- Impact (code → system → strategy)
|
|
|
|
Mentor 가 next level 의 expectations 명시.
|
|
```
|
|
|
|
### Tech talk (internal conference)
|
|
```
|
|
분기마다 internal conference:
|
|
- 모든 dev 가 talk (or watch)
|
|
- 다른 팀 학습
|
|
- Network
|
|
|
|
→ 큰 회사의 학습 culture.
|
|
```
|
|
|
|
### Book club
|
|
```
|
|
주간 30 min:
|
|
- 한 chapter 읽기
|
|
- Discuss
|
|
|
|
추천 books:
|
|
- Pragmatic Programmer
|
|
- Designing Data-Intensive Applications
|
|
- The Phoenix Project
|
|
- Domain-Driven Design
|
|
- Clean Code (debate but classic)
|
|
- Refactoring (Fowler)
|
|
```
|
|
|
|
### Coding katas / leetcode
|
|
```
|
|
Pair / 그룹 으로 연습:
|
|
- 같은 problem 다른 approach
|
|
- 30 min limit
|
|
- Solution share
|
|
|
|
→ Algorithm + collaboration.
|
|
```
|
|
|
|
### Conference / training budget
|
|
```
|
|
$2-5K / year per dev.
|
|
- Conference (Velocity, RailsConf, etc)
|
|
- Online courses (Frontend Masters, Egghead, Pluralsight)
|
|
- Books
|
|
|
|
→ 회사 가 invest = retention ↑.
|
|
```
|
|
|
|
### Constructive feedback
|
|
```
|
|
SBI model (Situation / Behavior / Impact):
|
|
"In yesterday's review, you marked 5 nits as must-fix (Behavior).
|
|
This made the author rewrite extensively (Impact).
|
|
For nits, I suggest 'consider' instead (suggestion)."
|
|
|
|
→ 사람 X 행동 O.
|
|
```
|
|
|
|
### Praise
|
|
```
|
|
"X did great work on Y. The approach was Z."
|
|
|
|
Public + specific:
|
|
- Slack #praise channel
|
|
- All-hands shoutout
|
|
- Performance review
|
|
|
|
→ 강화 + visibility.
|
|
```
|
|
|
|
### Difficult conversation
|
|
```
|
|
- 지각 / 미달 — 명시 + clear expectation
|
|
- Quality issue — example + improvement plan
|
|
- Communication gap — direct + listen
|
|
|
|
Manager 가 final 책임.
|
|
Mentor = early signal.
|
|
```
|
|
|
|
### Sponsor vs mentor
|
|
```
|
|
Mentor: advice, 경험 share.
|
|
Sponsor: 활용 (promotion, project assignment).
|
|
|
|
→ 같은 사람 가능. 둘 다 important.
|
|
```
|
|
|
|
### Bus factor
|
|
```
|
|
"이 person 가 떠나면 system 가 깨짐?"
|
|
Bus factor 1 = 위험.
|
|
|
|
해결:
|
|
- Pair / share knowledge
|
|
- Document
|
|
- Rotate ownership
|
|
```
|
|
|
|
### Junior → Senior transition
|
|
```
|
|
Senior expectation:
|
|
- 자기 기술 + 다른 사람 mentor
|
|
- Big picture thinking
|
|
- Cross-team collaboration
|
|
- 다른 사람 가 follow 가능 코드
|
|
|
|
Junior 가 senior 처럼 행동:
|
|
- Help others
|
|
- Take ownership
|
|
- Communicate up
|
|
- Big picture
|
|
```
|
|
|
|
### Mentoring metrics (어렵)
|
|
```
|
|
- 1:1 attendance
|
|
- Junior PR cycle time
|
|
- Retention
|
|
- Promotion rate
|
|
- Survey: "I have a great mentor"
|
|
```
|
|
|
|
→ 정확 측정 어려움 — qualitative.
|
|
|
|
### Engineering ladder transparency
|
|
```
|
|
Public ladder:
|
|
- Junior: ...
|
|
- Mid: ...
|
|
- Senior: ...
|
|
|
|
Promotion criteria 명확 → bias ↓.
|
|
```
|
|
|
|
### Gender / diversity
|
|
```
|
|
Mentor 가 underrepresented junior 적극 sponsor.
|
|
Promote diverse talent.
|
|
Inclusive language + behavior.
|
|
```
|
|
|
|
### Burnout 신호
|
|
```
|
|
Junior:
|
|
- 매 PR 가 막힘
|
|
- Communication 줄어듦
|
|
- Quality 떨어짐
|
|
- 우울
|
|
|
|
Action: 1:1 +자주, workload 줄임, 휴가 권장.
|
|
```
|
|
|
|
## 🤔 의사결정 기준
|
|
| 상황 | 추천 |
|
|
|---|---|
|
|
| New hire | Onboarding plan + pair |
|
|
| Stuck junior | 30 min ask rule |
|
|
| 학습 기회 | Pair + review |
|
|
| Career growth | 1:1 + ladder |
|
|
| 큰 issue | 명시 + plan |
|
|
| Knowledge share | Lunch-and-learn |
|
|
|
|
## ❌ 안티패턴
|
|
- **Mentor 가 말만 / listen X**: junior 안 학습.
|
|
- **Stuck → bypass / fix for them**: 학습 기회 잃음.
|
|
- **Public criticism**: 자존감 상함.
|
|
- **"천재 culture"**: collaboration X — burnout.
|
|
- **Onboarding 없음**: 새 hire 헛수고.
|
|
- **Career ladder 비공개**: bias / 불공정.
|
|
- **Bus factor 1 무시**: 떠남 시 disaster.
|
|
|
|
## 🤖 LLM 활용 힌트
|
|
- 1:1 + pair + review = 3대.
|
|
- Junior 가 driver (pair).
|
|
- Question 으로 가르침 (답 X).
|
|
- Internal lunch-and-learn 정기.
|
|
|
|
## 🔗 관련 문서
|
|
- [[Productivity_Code_Review]]
|
|
- [[Productivity_Documentation]]
|
|
- [[Quality_Tech_Debt]]
|