Skip to content

Product & Program Vocabulary — a decoder

Status: Living Date: 2026-06-22 Author: San Lee Purpose: The working language of each track, grounded in our real artifacts — the product one-pager (product) and the program view (program) — so you can read and speak both and feel which one fits. This is a learning aid for the SWE→PM/TPM exploration, not a system doc.

How to read it: each term gets a plain definition · where it showed up in our work · the lens it reveals.


1. The priority language (the "P0 stuff")

Both tracks prioritize — but they prioritize different things, with different words. That contrast is the single clearest signal of how the two crafts think.

Product prioritizes features, by user value

Term Plain meaning The test
P0 / Must-have The thing is not viable without it. The MVP floor. "If we cut this, does it still solve the core problem?" No → it's P0.
P1 / Should-have Significantly improves it, but the core works without it. A fast-follow. "Would we really not ship without this?" We'd ship → P1.
P2 / Could-have / Future Explicitly out for v1, but documented so we don't make choices that preclude it. "Architectural insurance" — guides design without being built.
  • In our spec: P0 = consume the event, reuse the classifier, idempotent writeback, no event loss, quality non-regression. P1 = dead-letter queue, low-confidence flagging. P2 = backfill, an LLM judge.
  • The discipline: be ruthless about P0. "If everything is P0, nothing is." A tight must-have list is how you ship and learn fast.
  • MoSCoW is the framework these map to: Must / Should / Could / Won't-this-time.
  • Honest caveat: the numbers (P0/P1/P2) aren't universal — some teams use P1 for "Should," others for "Could." The ranking discipline is what's real; the labels are a team convention.

Program prioritizes risk and delivery, by what could kill you and what unblocks the most

Term Plain meaning In our work
Severity (High/Med/Low) How bad a risk is if it fires. Risks are ranked, not features. R1 duplicate-processing = High; R2 accuracy ceiling = Medium.
Likelihood × Impact The two axes that produce severity. Implicit behind every severity in your register.
Blocking vs non-blocking A dependency that stops downstream work vs one that doesn't. The notes-api writeback seam is blocking; OTel is non-blocking.
Load-bearing / critical path The dependencies the whole plan rests on. Your own term: "the two load-bearing dependencies…"
Now / Next / Later Roadmap horizons — commitment decreases as you go right. The whole roadmap section of the program view.
Milestone / phase gate A checkpoint that must pass before the next phase. Phase 0 → 1 → 2 (classify-writeback loop → containers + local K8s → durable task queue).

The contrast that matters: Product asks "is it worth building?" (value). Program asks "what'll kill us, and what has to come first?" (risk + sequence). Same loop, two completely different questions.


2. Product-track terms (from the spec)

  • PRD / feature spec — the doc that says what we're building and why, at product altitude (not how).
  • Persona — a specific named user ("defense-news analyst"), not "a user." Specific enough to argue with.
  • JTBD (job-to-be-done) — the outcome the user "hires" the product for: "know what matters and where it fits, so I analyze instead of sort." Describes the need, never the solution.
  • User storyAs a [specific user], I want [capability], so that [benefit]. The "so that" is the whole point; a story without a benefit is a task.
  • INVEST — the test for a good story: Independent, Negotiable, Valuable, Estimable, Small, Testable.
  • Acceptance criteria — how you prove a requirement is met, often Given / When / Then. Covers the happy path and the error/edge cases (our R1 redelivery test is an acceptance criterion).
  • Goals vs non-goals — outcomes you're chasing vs things you're explicitly refusing to do this version. Non-goals prevent scope creep and are as important as goals.
  • Leading vs lagging indicators — metrics that move in days/weeks (adoption, completion, latency) vs ones that take weeks/months (retention, trust, revenue).
  • Success vs stretch target — the "good enough to call it a win" number vs the "great" number.

3. Program-track terms (from the program view)

  • Workstream — a parallel line of work, usually mapped to a team/repo (knowledge base, classification, agent…). Solo, your repos are the workstreams.
  • Dependency map — the graph of what needs what before it can proceed. The thing program managers live in.
  • Risk register — the tracked list of what could go wrong: each row has an id (R#), severity, mitigation / next action, and an owner / where it's tracked.
  • Status cadence — a recurring update (weekly status) "harvested from real progress." Cadence = the rhythm, not a one-off.
  • Stakeholder — anyone who needs to know or decide, even if they're not doing the work. (Solo, your stakeholder is your future self / a portfolio reviewer — name it honestly.)
  • Phasing / milestone — slicing a big delivery into gated stages so risk lands in chunks.
  • "Simulated program"your own honest term: a solo build has no real cross-team coordination, so the program layer is simulated. Naming the limit is more credible than faking it.

4. Jargon collisions to watch (you live in both worlds)

  • "RAG" — in your system, Retrieval-Augmented Generation (kb-agent). In program management, Red / Amber / Green status health. Same three letters, opposite universes. This one will bite you.
  • "Roadmap" — product means prioritized bets (what's worth doing); program means sequenced delivery (what order, given dependencies). Yours currently blends both in the program doc — you'll feel the seam.
  • "Spec" — product = the PRD (what/why); engineering = the technical design (how). Keep the altitude clear.

5. The meta-point

As you read this back: which column did you want to keep reading? The product half (value, users, the honest metric) or the program half (risk, sequence, what unblocks what)? That pull — not which one looks more impressive — is the data point this whole exercise exists to collect.