--- 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 |