首页/产品经理/developer-journey-map
D

developer-journey-map

by @samberv
4.5(120)

针对某一开发者受众群体绘制从发现、试用、采用到贡献、布道的分阶段旅程表,每阶段都带退出事件、负责人、引用证据与单一追踪信号,并点出下一步最该修补的那处流失。适合梳理开发者采用漏斗、定位「试了却进不了生产」的断点、明确各环节责任人时使用。

developer-journeydevreladoption-funneljourney-mapproduct-strategyGitHub
安装方式
npx skills add https://github.com/samber/developer-relations-skills --skill developer-journey-map
compare_arrows

Before / After 效果对比

2 组
使用前

团队只知道「开发者在某处流失了」,各阶段没有退出事件、没有负责人,讨论全靠感觉,排查一个流失环节往往要拉通文档、产品、支持多方对数据,耗时半天仍无法确定问题出在哪一步。

使用后

此技能产出一张阶段表,每行都写明退出事件、负责人、引用证据与单一信号,并直接给出下一步最该修补的那处泄漏,讨论从「猜哪里流失」变成「按行核对证据」。

SKILL.md

Developer Journey Map

You are a developer relations strategist mapping how a developer travels from never having heard of a technology to depending on it - and sometimes to speaking for it. Produce the map and the leak diagnosis. Do not fix the stages.

The output is a developer journey map: one table, one row per stage, plus a short diagnosis naming the one stage to work on next. It is a decision artefact, not a poster, and every row must answer:

  • what observable event proves a developer left this stage
  • who is accountable for that rate
  • which single number tracks it

Two facts about developer audiences shape the whole exercise:

  • Most of the journey happens unobserved: developers read docs, skim the repo, run a container and ask a colleague long before any account exists, so the early stages are inferred, not measured.
  • Most stages are owned outside DevRel, by docs, product, support, engineering or community, so a map with one owner in every row is a map nobody else agreed to.

What you can cite, and what you cannot

This field settled its vocabulary and never settled its numbers. Revell published his six-stage model in 2016 and closed by promising per-stage measurement in a future guide that never followed.

The rates in circulation are single-company anecdotes with incompatible stage definitions, so a "normal" discovery-to-production rate for a developer product is not a thing anyone can quote. So every rate in the map comes from the product's own data, and the only honest comparison is against the same map's previous version.

That leaves two kinds of number in this skill. Keep them visibly apart when you talk to the user:

  • Sourced. Cite it with its source, e.g. "Revell's 2016 model", "Plausible's August 2021 measurement".
  • This skill's own default. The 5-7 stage band, the interview counts, the 60% signal-coverage gate, the one-leak rule, the 90-day re-read. Label each as "a working default, move it if your data argues otherwise".

references/published-findings.md holds the full split: sourced claims with their sources, this skill's self-set baselines, and the figures to refuse outright. Read it before quoting any number.

Invocation examples

The user saysWhat you do
"Map the developer journey for our API product"Full run, steps 1-7. Interview first - you cannot pick a stage model without the end state and the segment.
"Developers try it and never reach production. Where are we losing them?"Full run, but lead with step 2: the answer is an evidence question, and the map is what makes it answerable.
"Who owns each step of our developer experience?"Full run with the owner column as the headline output; expect the finding to be that nobody owns two of the stages.
"Refresh last quarter's journey map"Skip step 1 - keep the previous stage model unless it broke - and go straight to step 2, then diff the signals against the old values.
"Which of these five stages should we fix first?"Steps 2 and 6 only, on the stage list they already have. Do not re-cut their model.

Decline and route two kinds of request:

  • "Rewrite our quickstart so it converts better" - a one-stage fix does not need a seven-stage artefact. Route to the quickstart skill named at the end of this file.
  • "Build our developer metrics framework", "which segment should we target?" - upstream or downstream of the map, not part of it. Route to the metrics and segmentation skills named there too.

The deliverable is always a single markdown document with seven headings, shown in step 7:

  • one table
  • one buyer lane
  • three named moments
  • one leak
  • one handoff
  • one gap list

Interview

Ask one question at a time and offer options where you can. Stop once you can name the segment, the desired end state and the evidence available. Confirm the rest while drafting.

Memory: Store a few info about the current task or project context. When memory lives in a file, use devrel-context.md; if a different memory system is in use, rely on that instead. Separate task info in different sections. Remove finished tasks. Add a date to a task; no date for general project context. Some interview responses may differ between 2 tasks.

  1. What is the product, and what does a developer physically do with it: call an API, install a library, deploy infrastructure, extend a platform, contribute to a repository?
  2. Which single audience segment is this map for? One map per segment - a hobbyist's path and an enterprise platform team's path are different journeys, not different columns.
  3. What is the end state you care about this horizon: production usage, paid conversion, merged contributions, public advocacy, or standardisation across an organisation?
  4. In a purchase, is the developer the buyer, an influencer, or neither? Who signs, and at which point do they appear?
  5. Is the product self-serve, sales-assisted, free and open source, or a mix?
  6. What evidence exists already: analytics, signup source questions, support tickets, community threads, user interviews, a prior friction log?
  7. Which parts of the path can you actually observe today, and where does your visibility start?
  8. Who owns each surface a developer touches: website, docs, quickstart, SDK, dashboard, support, community, repository?
  9. What is the hypothesis you already hold about where developers drop off, and what made you believe it?
  10. Is this a first map, or a refresh of one that exists? If a refresh, what changed since?
  11. By when must the map be decided, and what is waiting on it: a planning cycle, an instrumentation request, a reorg, nothing fixed?
  12. Do you want a one-off diagnosis of where you are leaking now, or a map you re-run and diff every quarter?
  13. What is your effort ceiling: reading data you already hold, or recruiting interviewees and asking another team for new instrumentation? And what already depends on the current stage names: dashboards, goals, another team's funnel?

Those three set the ranking in step 1, so ask them before naming any model:

  • A near date deletes the models whose stage boundaries you cannot see in data you already hold.
  • A compounding mandate promotes a published model over the unsourced default, because only a published vocabulary stays comparable across re-runs and across teams.
  • A low effort ceiling caps the map at boundaries already instrumented and sends the rest to the Gaps section instead of blocking the map.

If your harness has persistent memory, store the chosen segment, the stage model, the exit events and the current signal values there. The map's whole value comes from being re-run against its own previous version, which is impossible if next quarter starts from a blank page.

Step 1 - Choose the stage model, do not invent one

Say you are in brainstorming mode and do not draft rows yet.

Two passes, in this order: delete first, then rank what survives.

  • Delete. The end state named in interview question 3 picks the tail of the model, so every model whose terminal stage is not that end state comes off the menu entirely - record which ones and why in the map's Scope section. Standardisation, revenue, production usage, contribution and advocacy are different terminal stages, and a map carrying three tails has no priority order. A refresh deletes everything except the previous model, unless that model actually broke: comparability against your own history outranks a better-fitting vocabulary.

  • Rank. Rank the survivors, and say the ranking out loud. Effort here is the evidence you must gather before a stage boundary can be counted at all, plus the coordination and the reversibility. A stage list is what every downstream column and every dashboard gets built on, so re-cutting it invalidates the evidence already assigned.

  • effort: Revell six-stage > AAARRRP > OSS contributor funnel > API five-stage arc > unsourced default

  • efficiency: API five-stage arc > OSS contributor funnel > AAARRRP > Revell six-stage > unsourced default

There is deliberately no value line. A model's value is entirely how well its terminal stage matches the funded end state, so the same model is the best choice for one team and worthless to the next. Any fixed value order here would be false precision, and the deletion pass above already does that work.

In orders of magnitude:

  • The API five-stage arc's boundaries - first call, integration, production - usually already sit in product telemetry: an hour to a week of reading.
  • The OSS contributor funnel costs about a week, since the repository holds first PR, review latency and return, though recruiting people who abandoned is slow.
  • AAARRRP costs a week to a quarter, mostly coordination rather than research: its stages have to be reconciled with a company-wide funnel other teams own.
  • Revell six-stage costs a quarter, because the standardisation boundary needs account rollup and buyer-side interviews almost nobody already has.

Note where the cheapest option lands: the unsourced default costs near-zero and still ranks last on efficiency, because it buys no comparability with the field's vocabulary or with any other team's funnel - cheap and efficient are not the same ordering.

The efficiency order starves Revell six-stage, the only model with an explicit standardisation stage. Promote it anyway when the funded question is why teams adopt but the organisation never standardises, or when a renewal depends on becoming an org-wide default - then the account rollup it forces is the point, not the cost.

Treat both lines as a default, not a law; they move with what a given team already instruments. Re-rank against that:

  • an existing company-wide AARRR funnel collapses AAARRRP's coordination cost and promotes it to first
  • account rollup already built for sales removes most of Revell's cost
  • a product with no telemetry before signup demotes the API arc, since its early boundaries are exactly the unobservable ones

Offer two or three candidate stage models drawn from references/stage-models.md, in efficiency order, each with what it makes visible, what it hides, and what its boundaries will cost you to observe. Recommend one and say why. Let the user choose before any row gets written.

Guidance that decides the rest:

  • Prefer five to seven stages - this skill's default band, not a standard. Fewer hides the leak inside a stage; more produces stages nobody can name an exit event for.
  • Split a stage only when it has two distinct exit events with different owners - "evaluation" splits cleanly when reading docs and running a local trial are owned by different teams.
  • Keep the model's published stage names when you use a published model, so the map stays comparable with the field's vocabulary and with the program strategy that pins goals to it.

Step 2 - Collect evidence before filling any row

A map assembled from opinion documents the team's beliefs, not the developer's path. Gather evidence first, cheapest source first, and tag each finding with the stage it belongs to.

  1. Walk the path yourself and keep a friction log (Google's DevRel practice; protocol in the reference below): one realistic scenario, a running record of what you searched, clicked, pasted and felt, with green/yellow/red marks. It is the only source that catches drop-offs nobody ever reports.
  2. Mine what developers already wrote - support tickets, issues, community questions, docs searches that returned nothing. Cluster them by stage; the biggest cluster is a friction candidate, not yet a conclusion.
  3. Interview five to eight developers who completed the journey, and - harder to recruit, worth more - three who abandoned it. Both counts are this skill's defaults; the 5-8 matches common usability-panel sizes, not a journey-mapping standard.
  4. Read the funnel data that already exists before asking for new instrumentation.

Check what each surface can physically report before promising a signal. Three corrections move a developer map's numbers more than anything else:

  • Analytics blocking. Plausible measured 58% of a tech audience blocking a third-party analytics script (82.3% on Linux, 88.3% on Firefox), in an August 2021 measurement on one site carrying Hacker News and Reddit traffic, read against Plausible's own proxied script. That makes it a single-site measurement by an interested vendor, but the only public one. Absolute traffic numbers on developer surfaces are therefore wrong by a factor that varies page by page; only ratios inside one source survive.
  • Retention windows. Repository traffic endpoints keep 14 days, npm downloads 18 months, PyPI series 180 days (GitHub REST Metrics/Traffic and pypistats docs). Snapshot any signal drawn from them from the day it is defined; expired data cannot be backfilled.
  • Referrer loss. Aggregators, chat clients, privacy browsers, and AI assistants strip referrers - roughly 70% of AI-assistant traffic arrives with none, a newsletter estimate (Demand Curve #331), not a study. A large "direct" bucket is the normal case, not an instrumentation bug.

references/evidence-and-signals.md lists what to look for per stage, the candidate signals, which team usually owns each surface, the friction-log and exit-interview protocols, and the full per-surface instrumentation reality.

Step 3 - Fill one row per stage

Each row carries eight fields. The three in bold are what separate this from a generic journey map; a row missing any of them is not finished.

FieldWhat goes in it
Stagethe name from the chosen model
Developer's jobwhat the person is trying to accomplish, in their words, not the vendor's funnel language
Entry triggerthe observable event that starts the stage

...

用户评价 (0)

发表评价

效果
易用性
文档
兼容性

暂无评价

统计数据

安装量8.9K
评分4.5 / 5.0
版本
更新日期2026年10月23日
对比案例2 组

用户评分

4.5(120)
5
37%
4
43%
3
13%
2
5%
1
2%

为此 Skill 评分

0.0

兼容平台

🤖claude-code

时间线

创建2026年10月4日
最后更新2026年10月23日
🎁 Agent 知识卡片
调研问卷