[G1-Sync] Manual knowledge update
This commit is contained in:
@@ -0,0 +1,351 @@
|
||||
---
|
||||
id: productivity-okr-goals
|
||||
title: OKR / Goal Setting — Objectives & Key Results
|
||||
category: Coding
|
||||
status: draft
|
||||
source_trust_level: B
|
||||
verification_status: conceptual
|
||||
created_at: 2026-05-09
|
||||
updated_at: 2026-05-09
|
||||
tags: [productivity, planning, vibe-coding]
|
||||
tech_stack: { language: "process", applicable_to: ["Engineering"] }
|
||||
applied_in: []
|
||||
aliases: [OKR, KPI, goal setting, objectives, key results, north star, SMART goals]
|
||||
---
|
||||
|
||||
# OKR / Goal Setting
|
||||
|
||||
> "내 일 가 회사 목표 와 어떻게 연결?". OKR 가 답. **Objective (영감) + Key Results (측정)**. Quarterly. Google / Intel 의 시스템.
|
||||
|
||||
## 📖 핵심 개념
|
||||
- O (Objective): 영감 + 정성.
|
||||
- KR (Key Result): 측정 + 정량.
|
||||
- Quarterly cadence.
|
||||
- 0.6-0.7 가 목표 (1.0 = 너무 쉬움).
|
||||
|
||||
## 💻 코드 패턴
|
||||
|
||||
### 좋은 OKR
|
||||
```
|
||||
Objective: 사용자 가 우리 앱 가 빠르다 느끼게.
|
||||
|
||||
Key Results:
|
||||
- KR1: p99 latency 가 500ms → 200ms.
|
||||
- KR2: Lighthouse score 65 → 90+.
|
||||
- KR3: "느림" 관련 support ticket 가 50% ↓.
|
||||
```
|
||||
|
||||
→ Objective 가 영감, KR 이 측정.
|
||||
|
||||
### 나쁜 OKR
|
||||
```
|
||||
❌ Objective: "v2 출시"
|
||||
- Project 일 뿐. Outcome X.
|
||||
|
||||
❌ Key Results:
|
||||
- "10 feature 출시" (output, not outcome)
|
||||
- "Code refactor 완료" (binary, not measure)
|
||||
|
||||
✅ Objective: "Customer 가 v2 가 더 좋다 느낌"
|
||||
- KR: NPS +10
|
||||
- KR: Retention +15%
|
||||
- KR: Time-to-first-value 50% ↓
|
||||
```
|
||||
|
||||
→ Output (한 거) ≠ Outcome (변화).
|
||||
|
||||
### Cascade
|
||||
```
|
||||
Company OKR
|
||||
└─ Department OKR
|
||||
└─ Team OKR
|
||||
└─ Individual OKR
|
||||
|
||||
→ 매 level 가 위 OKR 에 contribute.
|
||||
```
|
||||
|
||||
### Company OKR (예)
|
||||
```
|
||||
O: 시장 leader 됨.
|
||||
KR1: ARR $10M → $30M.
|
||||
KR2: Logo count 100 → 500.
|
||||
KR3: Net retention 110% → 130%.
|
||||
```
|
||||
|
||||
### Engineering OKR (예)
|
||||
```
|
||||
O: 빠른 + 안정적인 product.
|
||||
KR1: p99 < 200ms (현재 500ms).
|
||||
KR2: Crash-free rate 99% → 99.9%.
|
||||
KR3: Time to deploy 1 day → 1 hour.
|
||||
```
|
||||
|
||||
### Individual OKR (예)
|
||||
```
|
||||
O: Search 가 customer favorite feature.
|
||||
KR1: Search latency 1s → 300ms.
|
||||
KR2: Search NPS 40 → 60.
|
||||
KR3: Search-driven session +30%.
|
||||
```
|
||||
|
||||
### Stretch goal
|
||||
```
|
||||
0.6 - 0.7 = 좋음.
|
||||
1.0 = 너무 쉬움 (사실 sandbag).
|
||||
0.3 = 너무 어렵.
|
||||
|
||||
Google: 0.7 가 default.
|
||||
```
|
||||
|
||||
### Setting cadence
|
||||
```
|
||||
Quarter (Q1, Q2, Q3, Q4):
|
||||
- Week 1: 회사 OKR 발표
|
||||
- Week 2: Team OKR
|
||||
- Week 3: Individual
|
||||
- Mid-quarter: check-in
|
||||
- Quarter 끝: review + grade + 다음 plan
|
||||
```
|
||||
|
||||
### Weekly check-in
|
||||
```
|
||||
- KR1: 60% 진행 (track)
|
||||
- KR2: 30% (off track)
|
||||
- KR3: 90% (ahead)
|
||||
|
||||
행동:
|
||||
- KR2 unblock 가 무엇?
|
||||
- KR3 가 빠르 = 자원 redirect?
|
||||
```
|
||||
|
||||
### Grading
|
||||
```
|
||||
0.0 - 0.3: failed
|
||||
0.4 - 0.6: progress
|
||||
0.7 - 0.8: 성공 (sweet spot)
|
||||
0.9 - 1.0: too easy
|
||||
|
||||
→ 0.7 = "좋은 effort + outcome".
|
||||
```
|
||||
|
||||
### Public vs private
|
||||
```
|
||||
Google: public (모두 본다).
|
||||
- Transparency
|
||||
- Coordination
|
||||
- Accountability
|
||||
|
||||
→ 작은 회사 = private OK. 큰 = public.
|
||||
```
|
||||
|
||||
### KPI vs OKR
|
||||
```
|
||||
KPI (Key Performance Indicator):
|
||||
- 지속적 metric (revenue, NPS).
|
||||
- "Healthy 지표".
|
||||
|
||||
OKR:
|
||||
- 시간 한정 goal.
|
||||
- "변화 지표".
|
||||
|
||||
→ 둘 다 사용. KPI = baseline, OKR = improvement.
|
||||
```
|
||||
|
||||
### North Star Metric
|
||||
```
|
||||
1 가장 중요 metric.
|
||||
|
||||
Slack: Daily active teams.
|
||||
Airbnb: Nights booked.
|
||||
Spotify: Time spent listening.
|
||||
|
||||
→ All decision 가 NSM 가 위.
|
||||
```
|
||||
|
||||
### SMART goal (alternative)
|
||||
```
|
||||
Specific: 명확
|
||||
Measurable: 측정
|
||||
Achievable: 가능
|
||||
Relevant: 관련
|
||||
Time-bound: 기한
|
||||
|
||||
→ OKR 의 KR 가 SMART.
|
||||
```
|
||||
|
||||
### V2MOM (Salesforce)
|
||||
```
|
||||
Vision: 큰 그림
|
||||
Values: 어떻게
|
||||
Methods: 무엇
|
||||
Obstacles: 막힘
|
||||
Measures: 측정
|
||||
|
||||
→ OKR 의 변형.
|
||||
```
|
||||
|
||||
### Roadmap vs OKR
|
||||
```
|
||||
Roadmap: 무엇 만들 거 (output).
|
||||
OKR: 무엇 달성 (outcome).
|
||||
|
||||
→ Roadmap 가 OKR 의 input.
|
||||
"Feature X 가 KR1 에 contribute".
|
||||
```
|
||||
|
||||
### Engineering 의 OKR 함정
|
||||
```
|
||||
❌ "코드 line +X" (output)
|
||||
❌ "Sprint velocity +Y" (proxy)
|
||||
❌ "X test 작성" (binary)
|
||||
|
||||
✅ "Latency Z 개선"
|
||||
✅ "Incident -W" (실제 사건)
|
||||
✅ "NPS +N"
|
||||
|
||||
→ Engineering 가 customer outcome.
|
||||
```
|
||||
|
||||
### Tech debt OKR
|
||||
```
|
||||
O: 우리 codebase 가 sustainable.
|
||||
KR1: 매 PR cycle time p50 < 1 day.
|
||||
KR2: Test coverage 60% → 80%.
|
||||
KR3: Production incident -40%.
|
||||
KR4: Onboarding 시간 (1주 후 first PR) 줄임.
|
||||
```
|
||||
|
||||
### Innovation time / 20%
|
||||
```
|
||||
20% time (Google) = OKR 외 자유.
|
||||
|
||||
→ 매 quarter 가 OKR 에만 = 안 자라.
|
||||
80/20 mix.
|
||||
```
|
||||
|
||||
### 함정: KR 가 manipulable
|
||||
```
|
||||
KR: "Email open rate 30%"
|
||||
→ Spam 이메일 폭탄 = open rate 큰.
|
||||
|
||||
→ KR 가 game-able.
|
||||
KR 가 multiple + customer outcome.
|
||||
```
|
||||
|
||||
### Communication
|
||||
```
|
||||
Weekly: 매 사람 가 status (color: green/yellow/red).
|
||||
Bi-weekly: team review.
|
||||
Monthly: department review.
|
||||
Quarterly: company readout.
|
||||
|
||||
→ Visible 가 motivation.
|
||||
```
|
||||
|
||||
### OKR tooling
|
||||
```
|
||||
- Lattice
|
||||
- Workboard
|
||||
- Gtmhub
|
||||
- Quantive (Gtmhub)
|
||||
- Notion / Confluence (DIY)
|
||||
- Spreadsheet (작은)
|
||||
```
|
||||
|
||||
### Personal OKR
|
||||
```
|
||||
Career:
|
||||
O: Senior engineer 됨.
|
||||
KR1: 큰 project ownership 1.
|
||||
KR2: Mentor 2 junior.
|
||||
KR3: Conference talk 1.
|
||||
|
||||
Health:
|
||||
O: 더 건강한 lifestyle.
|
||||
KR1: 매 주 운동 3회.
|
||||
KR2: 7+ hour 수면 평균.
|
||||
```
|
||||
|
||||
### Reset / pivot
|
||||
```
|
||||
Mid-quarter, 외부 환경 변경 (recession, competitor):
|
||||
- OKR reset 가능.
|
||||
- 명시적 announce.
|
||||
- 변경 = 진척 0 가 아닌, 새 baseline.
|
||||
```
|
||||
|
||||
### Down-grade goal
|
||||
```
|
||||
KR 가 너무 쉬워 보이면 = 더 hard.
|
||||
"Stretch" 가 자체 update.
|
||||
|
||||
→ Goal-setting 가 dynamic.
|
||||
```
|
||||
|
||||
### When 안 OKR?
|
||||
```
|
||||
- 시작 startup (pivot 잦음)
|
||||
- 매우 작은 팀 (5 명 이하)
|
||||
- Crisis mode (모든 거 가 firefight)
|
||||
- 이미 strong 의 system (KPI 만)
|
||||
|
||||
→ Process 가 가치 보다 cost 면 skip.
|
||||
```
|
||||
|
||||
### 매 팀 가 다른 cadence?
|
||||
```
|
||||
가능:
|
||||
- Engineering: quarterly
|
||||
- Sales: monthly
|
||||
- Product: half-year
|
||||
|
||||
→ 1 cadence 강요 X.
|
||||
```
|
||||
|
||||
### Backlog vs OKR
|
||||
```
|
||||
Backlog 가 무한.
|
||||
OKR 가 "이 quarter 가 무엇 가장 important?"
|
||||
|
||||
→ Backlog 가 OKR 와 align 안 함 = re-priority.
|
||||
```
|
||||
|
||||
### "10x" goal
|
||||
```
|
||||
Larry Page: "10x 가 10% 보다 쉬움."
|
||||
|
||||
→ 10% improvement = 기존 path optimize.
|
||||
10x = 새 approach 강제.
|
||||
|
||||
OKR 가 ambitious.
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준
|
||||
| 상황 | 추천 |
|
||||
|---|---|
|
||||
| 큰 + 안정 | OKR (quarterly) |
|
||||
| Startup | Light OKR (monthly) 또는 KPI 만 |
|
||||
| Engineering | Customer outcome KR |
|
||||
| Career growth | Personal OKR |
|
||||
| Tech debt | OKR 가 priority signal |
|
||||
| Crisis | Skip OKR, focus crisis |
|
||||
|
||||
## ❌ 안티패턴
|
||||
- **Output (한 거) KR**: outcome 아님.
|
||||
- **너무 쉬운 (1.0)**: sandbag.
|
||||
- **너무 어려운 (0.1)**: discouraging.
|
||||
- **20+ KR**: focus 잃음 (3-5 max).
|
||||
- **Cascade 안 됨**: company / team align X.
|
||||
- **Check-in 없음**: 잊혀짐.
|
||||
- **OKR 가 매월 다름**: 안정성 X.
|
||||
|
||||
## 🤖 LLM 활용 힌트
|
||||
- O = inspirational, KR = measurable outcome.
|
||||
- 0.7 = sweet spot.
|
||||
- KPI = baseline, OKR = change.
|
||||
- North Star Metric 가 align 의 핵심.
|
||||
|
||||
## 🔗 관련 문서
|
||||
- [[Productivity_Estimating_Effort]]
|
||||
- [[Productivity_Linear_Jira_Workflow]]
|
||||
- [[Productivity_Standup_Retro_Patterns]]
|
||||
Reference in New Issue
Block a user