重要な技術的決定は、意図的で透明性があり、記録されるべきであり、誰かの頭の中で行われて忘れられてはいけません。優れたプロセスはトレードオフを浮き彫りにし、合意を構築し、将来のエンジニアが何をだけでなくなぜを理解できるようにします。
意思決定フレームワーク
text
1. FRAME the problem and the constraints (cost, time, team skill, scale)
2. LIST the realistic options — usually 2-4, including "do nothing"
3. EVALUATE each against the constraints and trade-offs
4. DECIDE, and state the reasoning explicitly
5. RECORD it (ADR) and communicate it
6. REVISIT if assumptions change
ADRで記録する
Architecture Decision Recordは短く、永続的なノートです:
markdown
We need a primary datastore. Team knows SQL; data is relational; scale is moderate.
Use PostgreSQL.
Strong consistency, team familiarity, rich querying.
Vertical scaling limits later; revisit if write volume 10x's.
DynamoDB (rejected: relational data, team unfamiliar).
