Architecture Decision Matrix
Module 7 silent write — print one handout per trainee
Use in: Module 7 silent reflection (2 min) → Round 1 share
Purpose: Force trainees to commit a structured tool recommendation before open debate, so Round 1 shares are concrete and Round 2 challenges have real positions to stress-test.
Related docs:
- open-discussion-guide.qmd — full Module 7 facilitation
- reflection-prompts.qmd § Module 7
- TRAINING_MATERIAL_MIGRATION_PLAN.md §1 refinement #1 — dbt is not a third warehouse
When to use it
| Time in Module 7 | Activity | Matrix role |
|---|---|---|
| After animation | Silent write (2 min) | Trainees fill My pick column individually |
| Round 1 — Share | 3–4 volunteers defend their row | Speakers point to their matrix |
| Round 2 — Challenge | Facilitator plays constraint cards | Ask: “Does row X still hold?” |
| Round 3 — Synthesis | Whiteboard table from group | Compare to individual matrices |
| Round 4 — Story revisit | Story sketch ↔︎ matrix | What changed? |
If time is tight (single round only): keep the silent fill + Round 1 + close.
The matrix
Trainees fill one copy each — pen on paper, printed handout, or fillable PDF.
| # | Dimension | Databricks | Snowflake | dbt | My pick for YellowLine NYC |
|---|---|---|---|---|---|
| 1 | Skillset fit (Marcus’s SQL-heavy team) | ||||
| 2 | Time-to-first-KPI (Priya’s Overview page) | ||||
| 3 | Cost (compute + storage + licensing) | ||||
| 4 | Governance / lineage (audit in Q3) | ||||
| 5 | Streaming readiness (Module 8 — live dispatch) | ||||
| 6 | ML readiness (Module 9 — tip prediction) | ||||
| 7 | 5-year maintenance risk (after MHP leaves) | ||||
| Trainee’s recommended stack | — | — | — | ||
| One-sentence justification | — | — | — |
Scoring guidance (announce verbally, do not print on the matrix):
- Cells are trainee opinions — not graded. Short notes / scores / icons all fine.
- The My pick column may combine tools (e.g. Snowflake + dbt) — that is the point of rows 4, 5, 7.
- The justification must reference at least two row numbers.
Facilitator instructions
Before the session
- Print one A4 / Letter handout per trainee (or share a fillable PDF).
- Have Story design worksheets accessible — trainees compare in Round 4.
During silent fill (2 min)
- Project the matrix on screen with My pick column blank.
- No talking. No laptop research. Pens only.
- Start a visible 2-minute timer.
During Round 2 — Challenge
When playing a constraint card from open-discussion-guide.qmd, ask:
- “Which row does this card change?”
- “If row 3 (cost) drops to one license — does your pick from row 1 still win?”
- “Card C (real-time in 6 months) — re-score row 5 in your head. Does your stack change?”
During Round 3 — Synthesis
Use the group’s average answers to fill the whiteboard table — not the matrix template. The matrix is the input; the synthesis table is the output.
During Round 4 — Story revisit
“Compare your matrix to your Story design sketch. What does the matrix make obvious that the sketch missed?”
Pre-filled reference matrix (TRAINER ONLY — do not project)
Use only if discussion stalls or for trainer self-prep. Do not hand to trainees.
| Dimension | Databricks | Snowflake | dbt |
|---|---|---|---|
| Skillset fit (SQL team) | Lower — notebooks, PySpark | Higher — worksheets, SQL-first | High — SQL + YAML; analytics-engineer role |
| Time-to-first-KPI | Medium — cluster warmup + notebooks | Fast — warehouse resumes in 2–5 s | Adds project setup; fastest after Bronze exists |
| Cost | DBU per VM-hour; idle clusters bill | Credit-per-second; auto-suspend default 10 min | No compute cost; rides on backend |
| Governance / lineage | Unity Catalog (3-level namespace, lineage, tags) | Horizon (RBAC, masking, tags) | Built-in docs + column lineage + tests |
| Streaming readiness | Structured Streaming, Auto Loader, LSDP | Snowpipe Streaming + Dynamic Tables (insert-only) | dynamic_table materialization (Snowflake) |
| ML readiness | sklearn, XGBoost, MLflow, AutoML — full OSS | Cortex ML (SQL), Snowpark ML (Python) | Feature table + tests; no model training |
| 5-year maintenance risk (SQL team) | Higher — Spark / PySpark skills required | Lower — SQL maintainable; vendor managed | Low — version-controlled SQL; CI/CD friendly |
Trainer talking points (deploy if room is silent ≥30 s):
- “Snowflake + dbt + Power BI” is a common consultant default for SQL-heavy clients. It is not the only valid answer.
- Databricks wins outright when Module 9 ML or Module 8 sub-second streaming is on the roadmap.
- Combining all three is rare in production — extra integration cost. Discuss when it would be worth it.
Printable handout (one A4 / Letter page)
Suggested layout — the matrix above plus the following footer:
Three decisions, three layers:
[ PLATFORM ] → [ TRANSFORM ] → [ CONSUMPTION ]
Three constraints to weigh (revisit in Module 7 close):
1. COST — affordable to run and license long-term?
2. PERFORMANCE — fast enough today and for Module 8 streaming?
3. COMPLIANCE — audit-ready lineage and tests by Q3?
Closing line — Elena:
"Technology is a decision. Architecture is responsibility."
Success signals
The matrix worked if Round 1 speakers:
Document history
| Date | Change |
|---|---|
| 2026-05-24 | Initial — Module 7 structured decision matrix workshop exercise |