---
id: wiki-2026-0508-pros-cons-table
title: Pros Cons Table
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [Pros-Cons Analysis, Decision Matrix, Weighted Scoring]
duplicate_of: none
source_trust_level: A
confidence_score: 0.9
verification_status: applied
tags: [decision-making, frameworks, analysis, prompt-pattern]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
  language: Markdown
  framework: Decision-Frameworks
---

# Pros Cons Table

## 매 한 줄
> **"매 column = option, 매 row = criterion, 매 cell = signed weight"**. 18C Benjamin Franklin 의 "Moral Algebra" 의 modern 의 weighted decision matrix. 매 LLM era 에서 매 "let's enumerate pros/cons" 의 prompt pattern 으로 popular.

## 매 핵심

### 매 형태
- **Simple 2-col**: Pros | Cons. 매 quick gut-check.
- **Weighted scoring**: Criterion × Weight × Score per option.
- **Decision matrix (Pugh)**: Baseline + relative ±.
- **WSJF (SAFe)**: Cost of Delay / Job Size — agile prioritization.
- **MoSCoW**: Must / Should / Could / Won't.

### 매 components
1. **Options**: 매 mutually-exclusive choice.
2. **Criteria**: 매 weighted dimension (cost, risk, impact).
3. **Scores**: 매 1–5 or -2..+2.
4. **Total**: Σ(weight × score).
5. **Tiebreaker rule**: 매 explicit, 매 not vibes.

### 매 응용
1. Tech selection (Postgres vs MySQL).
2. Hire/no-hire scorecard.
3. Architecture ADR.
4. Product feature prioritization.
5. LLM-assisted decision drafting.

## 💻 패턴

### Simple Markdown
```markdown
| Option   | Pros                          | Cons                       |
|----------|-------------------------------|----------------------------|
| Postgres | Mature, JSON, extensions      | Heavier ops                |
| SQLite   | Zero ops, file-based          | No concurrency at scale    |
| DuckDB   | Analytical, columnar          | Not OLTP                   |
```

### Weighted scoring (Markdown)
```markdown
| Criterion       | W | Postgres | SQLite | DuckDB |
|-----------------|---|----------|--------|--------|
| Ops simplicity  | 3 | 2        | 5      | 4      |
| Concurrency     | 4 | 5        | 1      | 2      |
| Analytics speed | 2 | 3        | 2      | 5      |
| Ecosystem       | 2 | 5        | 4      | 3      |
| **Weighted**    |   | **38**   | **30** | **31** |
```

### Python decision matrix
```python
import pandas as pd

criteria = {
    "ops": (3, {"postgres": 2, "sqlite": 5, "duckdb": 4}),
    "concurrency": (4, {"postgres": 5, "sqlite": 1, "duckdb": 2}),
    "analytics": (2, {"postgres": 3, "sqlite": 2, "duckdb": 5}),
}

options = ["postgres", "sqlite", "duckdb"]
scores = {opt: sum(w * s[opt] for w, s in criteria.values())
          for opt in options}
print(pd.Series(scores).sort_values(ascending=False))
```

### LLM prompt template
```
Compare {{options}} for {{decision}}.

For each, list:
- 3 pros (specific, measurable)
- 3 cons (specific, measurable)

Then weighted scoring:
- Criteria: {{criteria_with_weights}}
- Score 1-5

Output Markdown table + recommendation paragraph + key tradeoff.
```

### Pugh matrix (vs baseline)
```markdown
Baseline = Postgres (current)

| Criterion       | SQLite | DuckDB | Mongo |
|-----------------|--------|--------|-------|
| Ops simplicity  | +      | +      | -     |
| Concurrency     | --     | -      | +     |
| Analytics       | -      | ++     | 0     |
| **Net**         | -2     | +2     | 0     |
```

### ADR template (decision record)
```markdown
# ADR-007: Choose DuckDB for analytics layer

## Context
OLTP on Postgres. Analytics queries timing out.

## Options
1. Materialized views in Postgres
2. ClickHouse
3. DuckDB embedded

## Decision
DuckDB — embedded, zero ops, columnar.

## Consequences
+ 50x query speedup
- New skill, immature operator tooling
```

### Weighted MCDA (numpy)
```python
import numpy as np
weights = np.array([0.3, 0.4, 0.2, 0.1])
scores = np.array([
    [2, 5, 3, 5],   # postgres
    [5, 1, 2, 4],   # sqlite
    [4, 2, 5, 3],   # duckdb
])
totals = scores @ weights
ranked = np.argsort(-totals)
```

## 매 결정 기준
| 상황 | Approach |
|---|---|
| 2-3 options, gut check | **Simple pros/cons** |
| 4+ options, need defense | Weighted scoring |
| Iterating on baseline | Pugh matrix |
| Architecture / team-wide | ADR |
| Backlog ordering | WSJF / RICE |

**기본값**: Weighted scoring 5 criteria × 3 options.

## 🔗 Graph
- 부모: [[Decision-Making]]
- 변형: [[Pugh-Matrix]] · [[ADR]]
- Adjacent: [[OKR]]

## 🤖 LLM 활용
**언제**: 매 broad option 의 enumerate, 매 missing criterion 의 surface, 매 first-pass draft.
**언제 X**: 매 final weight 결정 — 매 stakeholder context 의 LLM 의 X. 매 numeric score 의 false precision 의 위험.

## ❌ 안티패턴
- **No weights**: 매 critical criterion 의 trivial criterion 과 same. 매 rigging.
- **Score after deciding**: 매 confirmation bias. 매 weight 의 score 전에 lock.
- **Too many criteria**: 매 7+ 의 noise. 매 top 3-5.
- **Symmetric scoring**: 매 모든 option 의 비슷한 total — 매 differentiator 의 부재.
- **Hidden disqualifier**: 매 "must" 가 weighted 의 안에 묻힘. 매 hard filter 의 pre-screen.

## 🧪 검증 / 중복
- Verified (Franklin's letter to Priestley 1772, Pugh 1991, MCDA literature).
- 신뢰도 A.

## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — pros/cons + weighted decision frameworks. |
