[G1-Sync] Manual knowledge update

This commit is contained in:
Antigravity Agent
2026-05-09 22:47:42 +09:00
parent 93ec7e9056
commit 21ac3ed255
56 changed files with 22043 additions and 43 deletions
@@ -0,0 +1,338 @@
---
id: productivity-knowledge-sharing
title: Knowledge Sharing — wiki / RFC / brown bag / pairing
category: Coding
status: draft
source_trust_level: B
verification_status: conceptual
created_at: 2026-05-09
updated_at: 2026-05-09
tags: [productivity, knowledge, vibe-coding]
tech_stack: { language: "process", applicable_to: ["Engineering"] }
applied_in: []
aliases: [knowledge sharing, RFC, brown bag, lunch and learn, mob programming, internal blog]
---
# Knowledge Sharing
> 한 사람의 머리 = bus factor 1. **Wiki, RFC, brown bag, pair, mob, doc-as-code**. LLM 가 individual onboarding 의 속도 ↑ — 하지만 institutional knowledge 는 여전히 사람.
## 📖 핵심 개념
- Bus factor: 핵심 정보 가 한 사람만 알 = 위험.
- Tacit vs explicit: 머리 vs 문서.
- Push (publish) vs Pull (search).
- Decay: 안 쓰면 stale.
## 💻 코드 패턴
### 채널 종류
```
- Synchronous: meeting, call, pair
- Async: doc, RFC, comment, PR
- Push: announcement, brown bag
- Pull: wiki, search, RAG
→ Async + pull 가 scale.
```
### RFC (Request for Comments)
```markdown
# RFC-042: Migrate to Postgres pgvector
Author: @alice
Status: Draft / Review / Accepted / Rejected
Date: 2026-05-09
Reviewers: @bob, @carol
## Summary
1-2 sentences.
## Motivation
왜 이 변경 — pain, opportunity.
## Proposal
Detail of the design.
## Alternatives considered
1. ...
2. ...
## Risks / unknowns
- ...
- ...
## Migration / rollout
1. Phase 1
2. Phase 2
## Open questions
- ?
```
→ 결정 이전. 큰 변경 = RFC. ADR 가 결정 후.
### RFC vs ADR
```
RFC: "어떻게 할까" (open)
ADR: "X 했음" (closed)
RFC → 합의 → ADR + 구현.
```
### Brown bag / lunch & learn
```
주 / 격주 1회.
- 30 min 발표
- 점심 / 저녁 식사
- 기록 (slide / video)
- 제목: "X 의 inside", "Y 가 어떻게 동작"
기여:
- 내가 한 신기한 것
- 외부 conference 후기
- 새 도구 / 기술
```
### Pair programming
```
- Driver / Navigator
- 30 min - 90 min
- 새 가능 / 어려움 / 학습 OK
- 둘 다 머리 → bus factor ↑
도구: Tuple / VS Code Live Share / tmate.
```
### Mob programming
```
3+ 사람 한 화면.
- Driver 가 키보드, 나머지 navigate
- 5-10 min 마다 rotate
- 어려운 / 새 task 에 좋음
함정: 4명 = scalability 없음 (사람 수 만큼 시간 비용).
```
### Code review = 학습
```
Reviewer 도 배움.
- "왜 이 패턴?" 질문
- "다른 곳에 X 가 비슷한데" 연결
- 안 hot fix → 의도 가르치기
PR description 가 long-form context = doc.
```
### Internal blog / engineering blog
```
Public 보다 internal 만.
- 큰 architecture 결정
- Incident postmortem (sanitized)
- Migration 기록
- "I learned X this week"
→ 검색 가능 + tag.
```
### Onboarding doc
```markdown
# Engineering Onboarding
## Day 1
- 계정 / access
- 환경 setup
- 첫 PR (typo)
## Week 1
- 작은 feature task
- 1:1 with manager / TL
- Read top 5 ADR / RFC
## Month 1
- 큰 task ownership
- Brown bag 에 1회
- 새 사람 onboard 에 buddy
```
→ Buddy 가 물음표 1순위.
### Buddy system
```
새 사람 = buddy 1명 배정.
- 첫 2 주 매일 30 min 1:1
- "헛질문 OK"
- 코드 첫 PR review
→ Onboarding 기간 ↓ + 사회화.
```
### Documentation 다음 levels
```
Level 1: code + comment
Level 2: README per repo
Level 3: ADR / RFC
Level 4: Architecture overview
Level 5: System diagram + on-call playbook
Level 6: Public engineering blog
```
→ 작은 → 큰. Level 3 까지가 baseline.
### Wiki vs Notion vs git
```
Wiki (Confluence): WYSIWYG, 비engineer 친화
Notion: 모던, DB 기능
Git markdown: docs-as-code, version, review
→ 한 곳만. 둘 = drift.
Engineering 가 큰 = git.
Mixed team = Notion.
```
### Knowledge graph (LLM-friendly)
```
Wiki + tag + link → graph.
LLM RAG 가 question → 관련 doc 5 개 retrieve.
도구:
- Notion AI
- ChatGPT 가 enterprise
- Self-host: chatGPT + embeddings
```
→ "X 는 어떻게?" → instant answer.
### Tacit → explicit
```
"내가 매번 X 하는데" = doc.
"또 같은 질문" = FAQ.
"Slack 에서 검색" = doc 안 됨.
→ 매번 hot question → 한 번 doc 으로.
```
### DevRel / community engineer
```
큰 팀 (>50) = dedicated:
- Doc 가독성 / 일관성
- Onboarding 체계
- Brown bag 일정
- Engineering blog
→ Productivity 의 multiplier.
```
### Slack / Discord 검색
```
Channel 정리:
- #general — 사람
- #engineering — tech 토의
- #incidents — incident 만
- #help-{repo} — 질문
- #adrs — ADR 알림
→ 검색 가능 + bot index.
```
→ Slack 의 message 가 "doc" 의 절반. Search 친화 정리.
### Decision log
```markdown
## 2026-05-09 — DB 선정
- Postgres pgvector 결정
- Reasoning: ...
- Alternatives considered: Pinecone, Qdrant
- Owner: @alice
- ADR: 0042
```
→ 작은 결정 의 trail. 큰 결정 = ADR.
### Stale doc detection
```
- 6 month+ 안 변경 = review tag
- Code 가 변경 + doc 안 = PR comment
- 매년 doc audit (1 day)
자동:
- Linkrot bot (broken link)
- Outdated tag (last update > N month)
```
### LLM 활용
```
- README 자동 생성 (코드 → text)
- ADR 의 context 자동 (PR 변경 → why)
- Onboarding bot (RAG)
- Code → architecture diagram
→ LLM 가 explicit 의 가속기. Tacit → explicit 도 도움.
```
### "Don't repeat yourself" (knowledge)
```
같은 정보 두 곳 = drift.
- Schema in DB + duplicate in doc → schema.json 자동
- API + duplicate doc → OpenAPI spec
- README setup + Dockerfile → 실제 Dockerfile + link
→ Source of truth 1.
```
### Engineering Manager / TL 역할
```
- 1:1 weekly
- Knowledge gap 식별
- Pair / mob 권장
- Brown bag schedule
- Onboarding owner
- ADR / RFC review
→ Knowledge sharing 가 EM job.
```
### Bus factor 측정
```
"X 가 사라지면 Y 못함" 표:
| 영역 | bus factor |
|---|---|
| Auth system | 1 (Alice 만 알아) — RISK |
| Search | 3 (well shared) |
| Payment | 2 |
| Frontend | 4 |
→ bus factor 1 = pair / mob / doc.
```
## 🤔 의사결정 기준
| 상황 | 추천 |
|---|---|
| 큰 결정 | RFC → ADR |
| 새 사람 | Onboarding + buddy |
| 어려운 task | Pair / mob |
| Repeat 질문 | FAQ / wiki |
| Architecture | System diagram + ADR |
| Hot tip | Brown bag |
| Process | Wiki |
| Code | Comment + README |
## ❌ 안티패턴
- **Knowledge in head**: bus factor 1.
- **Doc 없이 회의**: 회의 끝 = 잃음.
- **Wiki + git + notion 모두 일부**: drift.
- **Stale doc**: 잘못된 정보 > 없음.
- **Onboarding 없음**: 새 사람 헛수고.
- **No code review**: 한 사람 만 알아.
- **"Search Slack"**: 검색 안 됨.
## 🤖 LLM 활용 힌트
- RFC + ADR + onboarding 3 종 baseline.
- Pair / mob 가 tacit 이전.
- LLM RAG 가 explicit 의 multiplier.
- Bus factor 항상 측정.
## 🔗 관련 문서
- [[Productivity_Documentation]]
- [[Productivity_Code_Review]]
- [[Quality_Mentoring]]