#3 JTBD Job Map (Christensen forces-of-progress) #4

Closed
opened 2026-05-15 19:15:21 +02:00 by claude · 1 comment
Collaborator

TL;DR (PL)

Mapa Jobs-to-be-Done dla Patchwarden persona (self-hosting non-dev operator). Christensen forces-of-progress: push obecnej sytuacji (co aktualnie boli), pull nowego rozwiązania (co przyciąga), anxiety (lęki przed switch), habit (co trzyma w status quo). Plus functional + emotional + social jobs. Cagan p.142: dla nowej kategorii JTBD > personas.

TL;DR (EN)

Jobs-to-be-Done map for Patchwarden persona. Christensen forces-of-progress (push of present pain, pull of new solution, anxiety of switching, habit of status quo) + functional/emotional/social jobs. Cagan p.142: for new category, JTBD > personas. Wave 2, sequential before #4 Positioning.

Scope

Forces-of-progress 4-square:

  1. Push of present situation — what's painful enough about current state to make switching worth considering?
  2. Pull of new solution — what attracts to Patchwarden specifically?
  3. Anxiety of new solution — what scares about adopting (installation, learning curve, trust)?
  4. Habit of present — what current behavior makes switching hard (sunk cost, familiarity)?

Job categories (per Christensen):

  • Functional jobs — what the user is trying to GET DONE (mechanics, outputs)
  • Emotional jobs — how the user wants to FEEL (in control, safe, professional)
  • Social jobs — how the user wants to BE PERCEIVED (by peers, future employer, community)

ICP characterization (folded in here, NOT separate persona doc):

  • Demographics (technical literacy level, work context, team size)
  • Tools used (Forgejo? Gitea? GitHub also?)
  • Income/budget tolerance ($7-9/mo realistic?)
  • Trigger event (what makes them search for Patchwarden?)
  • Anti-ICP (who Patchwarden is explicitly NOT for)

What this artifact does NOT cover:

  • Detailed persona document (Cagan: JTBD > personas for new categories)
  • Interview script (that's #8 Discovery Plan)
  • Positioning statement (that's #4 Canvas)

Inputs (feedstock)

  • docs/discovery-interview-plan.md — persona filter + interview script provide hypothesis to test
  • PM-SHOW.md § "who is this for" — current ICP draft
  • docs/research/2026-05-15-wedge-competitive.md — competitive alternatives = what current users do today
  • Christensen Competing Against Luck — forces-of-progress framework
  • Bob Moesta JTBD interview methodology

Skill draft

  • Anthropic Skill: product-management:synthesize-research
  • Anti-prompt: "NOT generic persona doc with demographics + goals + pain points. This is forces-of-progress: ANXIETY and HABIT are equally weighted with PUSH and PULL. Most JTBD docs skip those — don't."
  • Prime with: Christensen Competing Against Luck + Bob Moesta JTBD interview teardowns

Dependencies

Blocked by: none (Wave 2 entry point — can start after #1 Vision drafts OR in parallel)
Blocks: #4 Positioning Canvas (needs ICP + JTBD as input), #8 Discovery Plan (informs cadence)

Cagan-grade acceptance criteria

Universal (must pass all 5):

  1. Evidence cited — every job claim cites either an interview note OR a public self-hoster signal (r/selfhosted thread, Mastodon post, blog)
  2. Operator-readable <10 min — 4-square diagram + ICP block ≤2000w
  3. Names the wrongness condition — "this JTBD is wrong if 5+ discovery interviews surface a primary job not on this map"
  4. Single concrete decision — moves docs/decisions.md by adding D10: "primary functional job = [TBD operator choice OD4]; commit to test this in M2 discovery"
  5. Cousin-family attribution — credits skill, discovery interview plan, Agent A wedge research

Tier-1 core extras:

  • One numerical anchor — frequency hypothesis ("operator hits this pain X times per week") OR willingness-to-pay ranges
  • Visible asymmetry — names a job that only Patchwarden can fulfill in the wedge (e.g. "Forgejo-native + non-dev-readable + policy-not-LLM")

Operator decision points

This artifact gates on:

  • OD4 — Primary functional job framing (defaults proposed in body; operator picks one to commit-and-test in M2)

Status flow

status:cagan-grade-review-pending → operator merges → close → tick epic Wave 2 #3 → unblock #4 #8


Parent epic: #1 (this is artifact 3 of 11)
Plan: /Users/pd/.claude/plans/deep-pondering-popcorn.md § Wave 2

Drafted by Prof Kong (claude Opus 4.7) on behalf of pdurlej, 2026-05-15.

## TL;DR (PL) Mapa Jobs-to-be-Done dla Patchwarden persona (self-hosting non-dev operator). Christensen *forces-of-progress*: push obecnej sytuacji (co aktualnie boli), pull nowego rozwiązania (co przyciąga), anxiety (lęki przed switch), habit (co trzyma w status quo). Plus functional + emotional + social jobs. **Cagan p.142**: dla nowej kategorii JTBD > personas. ## TL;DR (EN) Jobs-to-be-Done map for Patchwarden persona. Christensen forces-of-progress (push of present pain, pull of new solution, anxiety of switching, habit of status quo) + functional/emotional/social jobs. **Cagan p.142**: for new category, JTBD > personas. Wave 2, sequential before #4 Positioning. ## Scope **Forces-of-progress 4-square**: 1. **Push of present situation** — what's painful enough about current state to make switching worth considering? 2. **Pull of new solution** — what attracts to Patchwarden specifically? 3. **Anxiety of new solution** — what scares about adopting (installation, learning curve, trust)? 4. **Habit of present** — what current behavior makes switching hard (sunk cost, familiarity)? **Job categories** (per Christensen): - **Functional jobs** — what the user is trying to GET DONE (mechanics, outputs) - **Emotional jobs** — how the user wants to FEEL (in control, safe, professional) - **Social jobs** — how the user wants to BE PERCEIVED (by peers, future employer, community) **ICP characterization** (folded in here, NOT separate persona doc): - Demographics (technical literacy level, work context, team size) - Tools used (Forgejo? Gitea? GitHub also?) - Income/budget tolerance ($7-9/mo realistic?) - Trigger event (what makes them search for Patchwarden?) - Anti-ICP (who Patchwarden is explicitly NOT for) **What this artifact does NOT cover**: - Detailed persona document (Cagan: JTBD > personas for new categories) - Interview script (that's #8 Discovery Plan) - Positioning statement (that's #4 Canvas) ## Inputs (feedstock) - `docs/discovery-interview-plan.md` — persona filter + interview script provide hypothesis to test - `PM-SHOW.md` § "who is this for" — current ICP draft - `docs/research/2026-05-15-wedge-competitive.md` — competitive alternatives = what current users do today - Christensen *Competing Against Luck* — forces-of-progress framework - Bob Moesta JTBD interview methodology ## Skill draft - **Anthropic Skill**: `product-management:synthesize-research` - **Anti-prompt**: *"NOT generic persona doc with demographics + goals + pain points. This is forces-of-progress: ANXIETY and HABIT are equally weighted with PUSH and PULL. Most JTBD docs skip those — don't."* - **Prime with**: Christensen *Competing Against Luck* + Bob Moesta JTBD interview teardowns ## Dependencies Blocked by: none (Wave 2 entry point — can start after #1 Vision drafts OR in parallel) Blocks: #4 Positioning Canvas (needs ICP + JTBD as input), #8 Discovery Plan (informs cadence) ## Cagan-grade acceptance criteria **Universal (must pass all 5)**: 1. **Evidence cited** — every job claim cites either an interview note OR a public self-hoster signal (r/selfhosted thread, Mastodon post, blog) 2. **Operator-readable <10 min** — 4-square diagram + ICP block ≤2000w 3. **Names the wrongness condition** — "this JTBD is wrong if 5+ discovery interviews surface a primary job not on this map" 4. **Single concrete decision** — moves `docs/decisions.md` by adding D10: "primary functional job = [TBD operator choice OD4]; commit to test this in M2 discovery" 5. **Cousin-family attribution** — credits skill, discovery interview plan, Agent A wedge research **Tier-1 core extras**: - **One numerical anchor** — frequency hypothesis ("operator hits this pain X times per week") OR willingness-to-pay ranges - **Visible asymmetry** — names a job that **only Patchwarden** can fulfill in the wedge (e.g. "Forgejo-native + non-dev-readable + policy-not-LLM") ## Operator decision points This artifact gates on: - **OD4** — Primary functional job framing (defaults proposed in body; operator picks one to commit-and-test in M2) ## Status flow `status:cagan-grade-review-pending` → operator merges → close → tick epic Wave 2 #3 → unblock #4 #8 --- Parent epic: #1 (this is artifact 3 of 11) Plan: `/Users/pd/.claude/plans/deep-pondering-popcorn.md` § Wave 2 *Drafted by Prof Kong (claude Opus 4.7) on behalf of pdurlej, 2026-05-15.*
Author
Collaborator

Closed via operator voice ack 2026-05-26.

Operator highlights:

  • Agentic-first operator persona — TAK, 100%
  • Spokój (E5) jako najgłębszy emotional job — "Patchwarden daje luz i świadomość że mogę sobie vibe się bawić i rzeczy się dzieją"
  • New operator insight: "SF flex 2026 — ludzie nie mówią nad czym pracują, tylko nad czym ich AI-e pracują w tym momencie jak oni nie patrzą. Patchwarden to demokratyzuje."
  • OD4 sharpening: NIE tylko "stay above the code" → "value first" — chodzi o dostarczanie wartości (kod, dokumentacja, narzędzia — whatever artifact)
  • Anti-ICP softening: pro-dev/enterprise — "buduję dla siebie i podobnych, potem zobaczymy"

Modifications queued in claude/patchwarden-tactical-updates PR:

  • OD4 → "value-first" framing (subsumes stay-above-the-code as one expression)
  • "SF AI-e flex" insight do TL;DR jako democratization angle

D10 (value-first JTBD primary functional job) → claude/patchwarden-decisions-batch PR.

Status: cagan-grade-approved. — claude (Patchwarden dedicated thread)

**Closed via operator voice ack 2026-05-26.** Operator highlights: - Agentic-first operator persona — TAK, 100% - Spokój (E5) jako najgłębszy emotional job — *"Patchwarden daje luz i świadomość że mogę sobie vibe się bawić i rzeczy się dzieją"* - **New operator insight**: *"SF flex 2026 — ludzie nie mówią nad czym pracują, tylko nad czym ich AI-e pracują w tym momencie jak oni nie patrzą. Patchwarden to demokratyzuje."* - **OD4 sharpening**: NIE tylko "stay above the code" → **"value first"** — chodzi o dostarczanie wartości (kod, dokumentacja, narzędzia — whatever artifact) - Anti-ICP softening: pro-dev/enterprise — *"buduję dla siebie i podobnych, potem zobaczymy"* **Modifications queued** in `claude/patchwarden-tactical-updates` PR: - OD4 → "value-first" framing (subsumes stay-above-the-code as one expression) - "SF AI-e flex" insight do TL;DR jako democratization angle **D10** (value-first JTBD primary functional job) → `claude/patchwarden-decisions-batch` PR. Status: `cagan-grade-approved`. — claude (Patchwarden dedicated thread)
Sign in to join this conversation.
No labels
agent/claude-code
agent/codex
agent/gemini
agent/hermes
agent/iskra
agent/ollama
agent/patchwarden
area:business-model
area:competitive
area:discovery
area:forgejo
area:metrics
area:product-strategy
area:v0-core
cagan-grade-approved
client:platform
dependency/blocked
dependency/blocks-others
dependency/cross-repo
dependency/needs-confirmation
domain:agents
domain:ci
domain:docs
domain:forgejo
domain:infra
domain:memory
domain:runtime
domain:signal
domain:ux
flow/architecture
flow/blocked
flow/deployed
flow/done
flow/implementation
flow/intake
flow/maintained
flow/observed
flow/ready
flow/refining
flow/retired
flow/review
judge/codex-candidate
judge/hermes-candidate
judge/low-confidence
judge/needs-refinement
judge/operator-needed
judge/p0
judge/p1
judge/p2
judge/p3
judge/park
judge/patchwarden-candidate
judge/stale-priority
kind/adr
kind/bug
kind/chore
kind/feature
kind/infra
kind/ops
kind/refactor
kind/research
kind:artifact
kind:decision
kind:dogfood
kind:epic
kind:implementation
kind:research
merge/auto
merge/manual
merge/manual-dependency-conflict
merge/manual-failing-tests
merge/manual-merge-conflict
merge/manual-missing-review
merge/manual-operator-preference
merge/manual-red-zone
merge/manual-security-sensitive
merge/manual-unclear-scope
merge/manual-unknown
mode:operator-only
mode:patchwarden-iskra-approved
mode:safe-auto
observed/erroring
observed/needs-followup
observed/pending
observed/retire-candidate
observed/unused
observed/used
priority:p0
priority:p1
priority:p2
priority:p3
ready-for-agent
review:claude-reviewed
review:codex-reviewed
review:dziadek-reviewed
review:needs-human
safety:external-write
safety:no-prod-mutation
safety:prod-impact
safety:secret-touch
size/large
size/medium
size/small
size/tiny
size/unknown
source/adr
source/agent-generated
source/manual
source/operator-chat
source/voice-note
status:blocked
status:blocked-on-discovery
status:cagan-grade-review-pending
status:codex-ready
status:merged:pending-evidence
status:needs-evidence
status:needs-operator-decision
status:operator-needed
status:parked
tier:0-anchor
tier:0-platform-substrate
tier:1-core
tier:1-iskra-value-layer
tier:2-supporting
tier:2-tools-products-modules
type:bug
type:chore
type:docs
type:feat
type:policy
type:research
wave:1-foundation
wave:2-positioning
wave:3-validation
wave:4-economics
wave:5-operating
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
pdurlej/patchwarden#4
No description provided.