---
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]]
