---
id: wiki-2026-0508-ethnographic-research
title: Ethnographic Research
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [Ethnography, Field Research, Participant Observation, Contextual Inquiry]
duplicate_of: none
source_trust_level: A
confidence_score: 0.88
verification_status: applied
tags: [research, qualitative, hci, ux, anthropology]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
  language: Python
  framework: Dovetail, Otter.ai, NVivo, ATLAS.ti
---

# Ethnographic Research

## 매 한 줄
> **"매 people-in-context 의 deep, in-situ, often-long observational study"**. Malinowski (Trobriand 1922), Geertz "thick description" (1973) → 매 industry: Xerox PARC (Suchman 1980s) → 매 modern UX/HCI/Product 의 staple. 매 "what people **say** vs what people **do**" 의 gap 의 reveal 의 가장 강력한 method.

## 매 핵심

### 매 vs neighbors
- **Survey/usability test**: 매 controlled / artificial / "say".
- **Interview**: 매 retrospective / "say".
- **Ethnography**: 매 in-situ / longitudinal / "do" + meaning.
- **Contextual Inquiry** (Beyer & Holtzblatt 1998): 매 industry-condensed ethnography (1–2 hr in real workplace).
- **Diary study**: 매 self-report longitudinal.
- **Auto-ethnography**: 매 researcher = subject.

### 매 process (Spradley DRS / 12-step adapted)
1. **Locate setting** (gatekeeper, access, ethics/IRB).
2. **Participant observation** (4 modes: complete observer → complete participant).
3. **Field notes** (jottings → expanded → analytic memos).
4. **Domain analysis** (cultural categories).
5. **Taxonomic analysis** (relations within domain).
6. **Componential analysis** (attributes / contrasts).
7. **Theme synthesis** (cross-domain patterns).
8. **Member checks** (validate with participants).
9. **Thick description write-up**.

### 매 typical artifacts
- Field notes (jotted + expanded), photo / video / audio (with consent), artifacts collected, journey maps, persona-from-data, JTBD jobs.

## 💻 패턴

### Field-note template (Markdown)
```markdown
# Field Note — 2026-05-10 — site:Hospital ER, observer:RP
## Setting
- 14:00–17:00, Triage desk, 3 nurses, ~40 patients.
## Activities (chronological)
- 14:03 nurse A swivels between EHR (slow) + paper backup …
## Verbatim quotes
- "I never trust the system after a shift change." — Nurse A, 14:22
## Surprises / breakdowns
- EHR auto-logout at 5 min idle → workaround = mouse jiggler.
## Analytic memo
- Domain: trust in tools. Hypothesis: short timeout drives shadow IT.
## Next steps
- Interview Nurse B; check audit logs for jiggler signatures.
```

### Coding qualitative data (open + axial, in Python)
```python
import pandas as pd
notes = pd.read_csv("interviews.csv")  # cols: pid, turn, text
codes = {
    "trust-tool":   ["never trust", "doesn't work", "I just write it down"],
    "workaround":   ["mouse jiggler", "shared password", "screenshot"],
    "time-pressure":["no time", "rushing", "back-to-back"],
}
def code(t):
    return [c for c, kws in codes.items() if any(k in t.lower() for k in kws)]
notes["codes"] = notes.text.apply(code)
notes.explode("codes").groupby("codes").size().sort_values(ascending=False)
```

### Affinity diagram digitization (Miro-style → DataFrame)
```python
import pandas as pd
stickies = pd.DataFrame({
    "note": ["EHR logout 5 min", "Paper backup chart", "Phone snapshots", ...],
    "cluster": ["timeouts", "shadow records", "shadow records", ...]
})
clusters = stickies.groupby("cluster")["note"].apply(list)
```

### Journey-map dataclass
```python
from dataclasses import dataclass
from typing import List
@dataclass
class Step:
    actor: str; action: str; tool: str; emotion: str; pain: str
journey: List[Step] = [
    Step("nurse", "log in", "EHR", "neutral",  "5-min timeout"),
    Step("nurse", "triage", "paper+EHR", "stress", "duplicate entry"),
]
```

### LLM-assisted thematic analysis (with caching)
```python
import anthropic
client = anthropic.Anthropic()
def themes(transcript: str) -> str:
    return client.messages.create(
        model="claude-opus-4-7",
        max_tokens=1500,
        system=[{"type":"text","text":"You are a senior qualitative researcher."
                ,"cache_control":{"type":"ephemeral"}}],
        messages=[{"role":"user","content":
            f"Identify 3-7 emergent themes (open-coding style) with quote evidence.\n\n{transcript}"}]
    ).content[0].text
```

### Dovetail-style consent + redaction
```python
import re
def redact_pii(s: str) -> str:
    s = re.sub(r"\b\d{3}-\d{2}-\d{4}\b", "[SSN]", s)
    s = re.sub(r"\b[\w.+-]+@[\w-]+\.[\w.-]+\b", "[EMAIL]", s)
    return s
```

## 매 결정 기준
| 상황 | Approach |
|---|---|
| Need rich context, hidden practice | **Full ethnography (weeks–months)** |
| Industry, tight timeline | **Rapid / focused ethnography (days)** |
| Workplace tool design | **Contextual Inquiry** |
| Distributed / remote users | **Diary study + remote shadowing** |
| Sensitive populations | **Auto-ethnography or co-design** |
| Quantify after | **Mixed methods: ethnography → survey → A/B** |

**기본값**: 매 product discovery 의 **5-7 contextual inquiries (90 min each)** + open coding + affinity diagram.

## 🔗 Graph
- 부모: [[HCI]]
- 변형: [[Contextual-Inquiry]] · [[Autoethnography]]
- Adjacent: [[Grounded-Theory]]

## 🤖 LLM 활용
**언제**: 매 transcript 의 first-pass open coding, 매 affinity cluster 의 candidate, 매 quote retrieval, 매 persona drafting.
**언제 X**: 매 final theme 의 sole arbiter (매 researcher judgment 필수), 매 sensitive raw data 의 unconsented external API call.

## ❌ 안티패턴
- **"Asking" 만 하기**: 매 ethnography 의 essence = observing, not interviewing alone.
- **One-shot 1-hour visit + claim "ethnography"**: 매 contextual inquiry 라고 부르는 의 정직.
- **No reflexivity**: 매 observer effect / bias 의 acknowledged 없으면 매 weak.
- **Confirmation bias coding**: 매 second coder + inter-rater reliability (Cohen's κ) 의 add.
- **Thin description**: 매 "users were frustrated" — 매 thick description 의 absent (no actor, action, meaning).
- **Skip consent / IRB**: 매 ethical 의 mandatory.

## 🧪 검증 / 중복
- Verified (Malinowski 1922; Geertz 1973; Spradley 1979/1980; Beyer & Holtzblatt *Contextual Design* 1998; Kuniavsky *Observing the User Experience* 2nd ed.).
- 신뢰도 A.

## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 placeholder |
| 2026-05-10 | Manual cleanup — Spradley process + 6 patterns + LLM coding |
