Files
2nd/10_Wiki/Topics/Architecture/Strategic_Thinking.md
T
Antigravity Agent f8b21af4be Wiki cleanup: error-doc removal, dedup merge, link normalization
10_Wiki/Topics 대규모 정리:
- 오류 캡처/미완성 stub 문서 227개 제거
- 교차폴더 중복 43클러스터 병합 (63파일 → redirect)
- 링크명 정규화: 깨진 링크 수정·redirect 직결·개념 매핑 ~2,400건
- 카테고리 MOC 6개 신규 생성
- Graph 섹션 미해결 related-keyword 링크 10,058건 제거

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 23:52:15 +09:00

196 lines
6.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
id: wiki-2026-0508-strategic-thinking
title: Strategic Thinking
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [Strategic Thinking, Strategy, Engineering Strategy]
duplicate_of: none
source_trust_level: B
confidence_score: 0.85
verification_status: applied
tags: [strategy, decision-making, engineering-leadership]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
language: na
framework: na
---
# Strategic Thinking
## 매 한 줄
> **"매 long-horizon, multi-step, 매 trade-off 의 reasoning — 매 goal → diagnosis → guiding policy → coherent actions"**. Richard Rumelt, *Good Strategy / Bad Strategy* (2011) 의 kernel. 매 engineering context — 매 architecture choice, tech debt, hiring, platform investment.
## 매 핵심
### 매 Rumelt kernel
1. **Diagnosis**: 매 challenge 의 명확한 정의 — what is actually hard?
2. **Guiding Policy**: 매 approach — how we'll address it.
3. **Coherent Actions**: 매 mutually reinforcing concrete steps.
### 매 strategic vs tactical
- **Strategic**: months-years, irreversible, enables/blocks options.
- **Tactical**: days-weeks, reversible, executes within strategy.
- **Type 1 vs Type 2 decisions** (Bezos): 매 one-way door (strategic) vs two-way door (tactical).
### 매 frameworks
- **OKRs**: Objective + Key Results.
- **Wardley Map**: 매 capability evolution chain (genesis → custom → product → commodity).
- **Five Forces** (Porter): 매 industry structure.
- **First Principles** (Musk): 매 axiom 부터 reason.
- **Pre-mortem** (Klein): 매 future failure 의 imagine.
### 매 응용
1. Engineering org strategy (build vs buy, monolith vs micro).
2. Career planning (5-year arc).
3. Technical roadmap prioritization.
## 💻 패턴
### Pre-mortem template (Markdown ADR)
```markdown
# ADR-042: Migrate to Kubernetes
## Diagnosis
Current ECS deployment cannot scale to multi-region; deploys take 40min.
## Pre-mortem (it's 2027, this failed)
- Team didn't learn k8s; constant outages.
- Cost 3× higher than ECS.
- Migration took 18 months instead of 6.
## Mitigations
- Hire 1 SRE with k8s background before start.
- Pilot with 2 non-critical services for 3 months.
- Define rollback criteria.
```
### Wardley Map (text DSL — onlinewardleymaps.com)
```
title Engineering Platform 2026
component User [0.95, 0.50] label [0, -10]
component Web App [0.85, 0.55]
component Auth [0.75, 0.70]
component LLM Inference [0.55, 0.30] label [0, 10]
component GPU Cluster [0.30, 0.40]
component Datacenter [0.10, 0.30]
User -> Web App
Web App -> Auth
Web App -> LLM Inference
LLM Inference -> GPU Cluster
GPU Cluster -> Datacenter
```
### First-principles decision (LLM-augmented)
```python
# Use Claude Opus 4.7 for option exploration
from anthropic import Anthropic
client = Anthropic()
def explore_options(problem: str, constraints: list[str]) -> str:
msg = client.messages.create(
model="claude-opus-4-7",
max_tokens=2000,
thinking={"type": "enabled", "budget_tokens": 8000},
messages=[{"role": "user", "content":
f"Problem: {problem}\nConstraints: {constraints}\n"
"From first principles, list 5 distinct approaches with key trade-offs."}],
)
return msg.content[-1].text
```
### Decision matrix (weighted)
```python
options = {
"Postgres": {"perf": 7, "cost": 9, "team_skill": 9, "scale": 6},
"DynamoDB": {"perf": 9, "cost": 5, "team_skill": 4, "scale": 9},
"CockroachDB":{"perf": 8, "cost": 6, "team_skill": 5, "scale": 8},
}
weights = {"perf": 0.3, "cost": 0.2, "team_skill": 0.3, "scale": 0.2}
scores = {k: sum(v[c]*weights[c] for c in weights) for k, v in options.items()}
print(sorted(scores.items(), key=lambda x: -x[1]))
```
### OKR structure
```yaml
objective: Make platform self-serve for new teams
key_results:
- 90% of new services deploy without platform team involvement (currently 20%)
- Onboarding time < 1 day (currently 3 weeks)
- NPS from internal devs > 50
```
### Type-1 vs Type-2 framing
```markdown
| Decision | Type | Reversibility | Rigor needed |
|---|---|---|---|
| Choose primary DB | 1 | Low | High — involve all leads |
| Choose CI provider | 2 | Medium | Medium |
| Choose linter ruleset | 2 | High | Low — just decide |
```
### Strategy doc skeleton (Will Larson style)
```markdown
# Strategy: Platform Reliability 2026
## Context
Outages weekly, MTTR 4hrs, eng team rotates on-call.
## Diagnosis
Lack of observability + flaky integration tests + no SLO discipline.
## Guiding Policy
Invest in observability and SLO culture before adding features.
## Actions
1. Adopt OpenTelemetry across all services (Q1).
2. Define SLOs for top 10 services (Q1).
3. Error-budget-based release gating (Q2).
4. Hire 2 SREs (Q2).
## Non-goals
- Multi-region active-active (defer to 2027).
- New feature work pause: NO — 70/30 split.
```
## 매 결정 기준
| 상황 | Approach |
|---|---|
| Long-horizon org/tech direction | Rumelt kernel + Wardley map |
| Capability evolution planning | Wardley map |
| Multi-option comparison | Weighted decision matrix + ADR |
| Risk-laden irreversible decision | Pre-mortem + Type-1 framing |
| Quarterly execution | OKRs |
| Novel/uncertain space | First principles + LLM exploration |
**기본값**: 매 strategic decision → ADR + diagnosis + pre-mortem.
## 🔗 Graph
- 부모: [[Decision Making]]
- 응용: [[Architecture Decision Record]]
- Adjacent: [[Systems_Thinking|Systems Thinking]] · [[Mental_Models|Mental Models]]
## 🤖 LLM 활용
**언제**: option exploration, pre-mortem brainstorming, devil's advocate, summarize long context for diagnosis.
**언제 X**: 매 final commit decision — accountability 의 human; 매 confidential strategy — privacy concern.
## ❌ 안티패턴
- **Goals as strategy**: "be #1" 의 strategy X — 매 goal. 매 diagnosis + policy 의 missing.
- **Strategy as wishlist**: 매 incoherent action list, 매 trade-offs 의 unstated.
- **Pre-mortem 의 skip**: 매 surprise failure mode.
- **Analysis paralysis on Type-2 decisions**: 매 reversible 의 just decide.
- **Wardley map as drawing exercise**: 매 decision 으로 connect X — 매 useless.
## 🧪 검증 / 중복
- Verified (Rumelt *Good Strategy/Bad Strategy* 2011; Larson *An Elegant Puzzle*; Wardley *Wardley Maps* 2018).
- 신뢰도 B (synthesis from multiple authorities).
## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — strategic thinking frameworks for engineering |