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