Skip to content

The Change Interface / Chapter 4

Design the First Win

Build humane on-ramps from curiosity to real capability: where the on-ramp actually starts, three paths for three intents, the first-win contract, and the friction walk that shows you what your quickstart really costs.

Chapter 4 — Design the First Win

The five-minute quickstart that takes forty

Composite. Built from recurring patterns across several onboarding reviews; no identifying detail.

A backend developer with an hour between meetings opens a page titled Five-Minute Quickstart. She is evaluating an event platform for a project that starts in three weeks, and an hour is what she has.

The first command runs at minute thirty-eight. Before it she creates an account, waits for a verification email, discovers that the free tier does not include the region her team uses, picks a different region without knowing whether that choice matters later, installs a CLI that conflicts with a version another project pinned, authenticates through a browser flow that opens in the wrong profile, and reads the word workspace four times in three senses. Twice she has to decide something — a retention setting, a project naming convention — that she has no basis to decide and no indication she can change later.

At minute fifty-one the sample publishes an event and prints an ID. She has no way to tell whether the event arrived, whether the ID means what she thinks it means, or how to remove what she created. She closes the tab and writes maybe next to the platform’s name.

The quickstart’s authors were not lying. Their five minutes started at the first command, which is where they began measuring, because everything before it had long since stopped being visible to them. The question this chapter answers is where the on-ramp actually starts — and what a first success has to include before it counts as one.

Friction is everything before the part you measured

An on-ramp begins the moment someone decides your system might be worth their attention, and it ends when they have produced a result that means something to them and can tell that it is correct. Between those two points sits discovery, a judgment about whether you are worth trusting, prerequisites, account creation, permissions, a guess about what this will cost, environment setup, the vocabulary needed to read your own instructions, and some way to recover when a step goes wrong. Teams measure the last twelve minutes of that and publish the number.

Friction is any of it that consumes attention without increasing capability or safety. That qualifier matters, because some friction earns its place. A confirmation step before deleting a production resource, a consent screen, a permission scope the reader has to read and approve, the genuine effort of learning a concurrency model — those cost attention and return either capability or protection. An unexplained region choice returns neither. Neither does a term used in three senses, or a wait with no stated duration, or a decision presented without the information needed to make it.

The common failure is not laziness. It is that the people who write the on-ramp have already paid every one of these costs, permanently, and cannot see them anymore. They have the account, the credentials, the mental model, and the vocabulary. Their five minutes is a real measurement of a path that no new reader is standing on. You do not fix this by trying harder to imagine the newcomer. You fix it by watching one.

Study the artifacts: participation, funnels, and belonging

Three public bodies of work approach the on-ramp from different directions and agree on the shape of the answer.

Artifact one. Jono Bacon’s writing on community participation — The Art of Community and the frameworks he has published since — treats the on-ramp as a designed stage rather than an accident, with progression from casual to regular to core participation. The mechanics worth inspecting: each stage has a low-cost entry action, a visible next step, and a reason a person would take it. Progression is not assumed to happen because a project is interesting.

Artifact two. GitHub’s Open Source Guides describe the contributor path as a funnel with identifiable drop-off points, and the guidance is unusually concrete about what removes friction at each one — a README that states what the project does and who it is for, a CONTRIBUTING file that names the workflow, labelled good-first-issues, and a response norm. The instructive part is the framing: each stage is treated as a place where a specific, fixable thing stops people, not as a general problem of enthusiasm.

Artifact three. CodeNewbie, founded by Saron Yitbarek, built a community around people who are still learning, and made that the stated identity rather than a temporary condition to be outgrown. What it demonstrates mechanically is that belonging can be designed: a name that describes the reader accurately, formats where not knowing something is the normal state of the room, and public modelling of asking questions by people who are further along.

Transferable method. Do not ask newcomers to behave like insiders before you have given them the map, the language, the safety, and the first success that make insider behaviour possible. The map is orientation — what this system is, what parts exist, where you are. Language is the small set of terms needed to read your own instructions. Safety is the assurance that a mistake is recoverable and that asking will not cost status. First success is a result they can verify themselves.

Context and limit. Bacon’s frameworks come from large volunteer open-source communities, where contribution is the currency; a commercial platform whose users mostly want to integrate and leave should not force them up a participation path they did not ask for. GitHub’s funnel assumes contribution is the goal, which is false for the majority of your evaluators. CodeNewbie’s identity design works because the community was built around it from the start — a vendor community that announces a beginner track without changing how its experts answer questions gets the label and not the effect.

Research note. Observation of published, publicly available work: Bacon’s books and posted frameworks, the Open Source Guides as published by GitHub, and CodeNewbie’s public programming and founder interviews. The synthesis across the three is this book’s inference, not a claim any of them makes. Check current versions before citing specifics; the Open Source Guides in particular are revised.

Three intents, three paths

The single generic quickstart is the most common structural mistake in developer onboarding. It exists because it seems efficient — one path, one thing to maintain — and it fails because three different people arrive at your front door wanting three incompatible things.

The explorer wants a mental model and a cheap experiment. They are curious, not committed. They want to know what this thing is, how it thinks, and whether it is interesting, at the lowest possible cost — ideally without creating an account. What serves them is a conceptual overview, something runnable in a browser or against a sandbox, and permission to leave without having installed anything.

The evaluator is answering a question for other people. Does this fit our architecture, our compliance posture, our budget, our existing stack? They need compatibility information, security and data-handling detail, limits and quotas, pricing that can be modelled, and evidence that the claims hold — the proof pack from Chapter 3, essentially, reachable in one hop. A tutorial that walks them through a toy example wastes the twenty minutes they allocated.

The adopter or contributor has decided, or nearly. They need the production shape: real authentication, error handling, observability, deployment, the workflow for contributing a fix, and an honest account of what they are committing to over the next two years. They need to know who maintains this and what happens when it breaks at 2 a.m.

All three should meet the same core model of how the system works — one explanation, not three divergent ones, or you will maintain three drifting descriptions of the same product. What differs is the first action and the first win. The explorer’s win is understanding. The evaluator’s win is a defensible answer. The adopter’s win is a working slice of the real thing.

Route them at the door, in plain language, with an honest cost attached to each: Want to understand what this does? Ten minutes, no account. Deciding whether to adopt it? Here is architecture, limits, security, and pricing. Ready to build? Thirty to forty minutes and a test account. A reader who self-selects correctly at minute one is a reader you have not misled.

Three On-Ramps — explorer, evaluator, and adopter/contributor paths branching from one shared orientation point toward three different first wins.
Three reader intents can share one orientation and one set of guarantees without sharing a path or a definition of success.

The first-win contract

A first win is worth designing as a contract because that is how a reader experiences it. They give you their attention and some of their credibility on the assumption that you have told them the truth about what is required and what they will get.

Outcome. A result that matters to the reader, not to your installer. “The service is running” is not a win. “An event you published appeared in a consumer you wrote, and you can see it” is. The test is whether the result resembles, at small scale, something the reader would actually want the system to do.

Prerequisites. Skills, access, versions, time, and money, stated before step one. Include the three most common blockers — the account tier, the port that is usually in use, the language version that broke last month. A reader who backs out at the prerequisites list has lost two minutes. A reader who backs out at step nine has lost forty and thinks less of you.

Verification. Visible evidence at each meaningful step that the result is correct. Chapter 3 argued this for proof; it matters even more here, because a beginner cannot distinguish “this looks wrong” from “I do not yet know what right looks like.” Without stated expected output, a reader who diverged at step three discovers it at step nine, and blames themselves.

Reversibility. Cleanup, rollback, or a sandbox boundary that makes cleanup unnecessary. Tell them before they start what will exist afterwards and how to remove it. Every resource your tutorial creates and does not delete is a small ongoing tax on someone who was doing you a favour by trying.

Explanation. Enough mechanism that the reader knows why the steps worked. A path that produces a result nobody understands produces cargo-cult copies of your sample in production, which is worse than no adoption, because now your failure modes are in someone’s system with your name on them.

Next path. What the reader is now ready to do, and — stated plainly — what they are not. The quickstart’s authentication shortcut is not the production one. Say so at the point where it happens, and link the guide that covers the real version.

Help. A named route with a stated norm: where to ask, who reads it, and roughly how long a reply takes. “Our community forum, monitored on weekdays, usually answered within a day” is useful. A link to a Discord with eleven thousand members and no orientation is not a help route.

On the fifteen-minute target: treat it as a design constraint, not a promise to publish. It is a good discipline for deciding what to cut. It becomes a lie the moment you print it without having measured. Report the distribution you actually observed — median, range, and what the slow tail had in common — and let the reader locate themselves in it.

The friction walk

Everything above is a design. The friction walk is how you find out what you built.

Recruit someone who matches the audience you claim to serve and who has not used the system. Ask them to work through the path while narrating what they are thinking, including the parts that feel too small to mention. You observe and write. You do not help.

Record eight things: every decision point, each term they encounter that they cannot define, every context switch out of the page (to email, to a dashboard, to a search engine), permissions and waits with their real durations, copy errors and output they cannot interpret, moments of hesitation or visible embarrassment, what they try when something fails, and — the most valuable observation available to you — the point at which they would have quit if you were not sitting there.

Not helping is the hard part and the whole method. Every rescue converts a finding into a courtesy. When you say “oh, you need to enable that in settings first,” you have learned nothing that survives the session, because the next reader will not have you. Sit with the silence. Write down how long it lasts. Intervene only for safety, for real money, or for something irreversible; outside those, let the path fail so you can see where.

Two practical notes. Run it with someone from outside your organization when you can — colleagues share your vocabulary and unconsciously supply the parts you left out. And write up findings as steps with owners, not as sentiment. “Onboarding felt confusing” schedules nothing. “Four of five participants stopped at the region selector because nothing indicated the choice was reversible; owner @dev-ex; fix before the March release” does.

A friction trace of one onboarding session, plotting decisions, waits, unknown terms, failures, and recovery against elapsed time.
The friction that determines adoption accumulates before the short interval most teams measure.

Beginner dignity

Unfamiliarity is not the same as inability, and the words that blur them do measurable damage to adoption.

Just, simply, obviously, basic, and of course all encode the same message: a competent person would not be stuck here. When a reader is stuck at a step described as simple, the sentence tells them something about themselves. Most people respond by going quiet rather than by asking, and a reader who goes quiet is a reader you will never hear from again and never learn from. RTFM and its politer cousins — a bare documentation link with no orientation — do the same job with less ambiguity.

The alternative costs nothing. State prerequisites as facts about the path rather than as facts about the reader: “this assumes you can use a terminal and edit a text file” instead of “this is for beginners.” When someone asks a question the current page does not cover, name where it belongs and take them there. Depth is not the enemy of accessibility — the enemy is unmarked depth, arriving without warning at a point where the reader has no way to tell whether they are missing a prerequisite or hitting a real edge of the system.

Words that move

Situation. A quickstart landing page needs a welcome paragraph. The current draft opens with reassurance.

Weak welcome:

This is easy. Just install the CLI and follow the docs.

Stronger welcome:

This path assumes you can use a terminal, edit a text file, and create a test account. You do not need prior experience with containers. Most people in our test completed the first verified deployment in 20–35 minutes. The three most common blockers are listed before step one, and every created resource can be removed with the cleanup command at the end.

Four sentences, and every one of them is checkable. The prerequisites are stated as properties of the path. The exclusion — no container experience needed — removes a fear rather than adding a requirement. The timing is a measured range instead of an aspirational point. Blockers appear before the reader can hit them, and the ending is accounted for before the beginning.

When redirecting a question that belongs deeper:

Your question is valid, and it belongs one level deeper than this quickstart covers. This page gets you to a local result; the production guide explains identity, retries, and observability. I am linking the exact section rather than asking you to search for it.

The move here is refusing to make the reader’s question into the reader’s error. It is located, not dismissed, and the last sentence does the work that a bare link does not.

Change smells

  • “Beginner-friendly” turns out to mean technically incomplete rather than well-sequenced.
  • The guide hides cost, permission scope, or state that cannot be undone.
  • Experienced readers must scroll through tutorial narration to reach reference material.
  • Newcomers get links with no orientation, from insiders who read that as helpfulness.
  • Time to first success is measured from the first command, so the published number describes a starting point no reader occupies.
  • The quickstart produces a toy result with no resemblance to what anyone would use the system for.
  • The only help channel is a public room where a newcomer’s first act would be to look inexperienced in front of strangers.
  • Nobody on the team has watched an outsider attempt the path in the last two release cycles.

Field tool: the friction walk scorecard

One row per step of the path, scored by the observer immediately after the session while the notes are fresh. Score each dimension 0–3.

Dimension Question Score 0–3
Findability Could the person identify the right starting path?
Prerequisites Were skills, access, versions, cost, and time clear?
Cognitive load How many new concepts or decisions appeared at once?
Action clarity Was the next action unambiguous?
Verification Could the person tell whether the action worked?
Recovery Could they diagnose and reverse failure safely?
Dignity Did the language make uncertainty safe?
Relevance Did the result resemble a meaningful user outcome?
Continuity Was the next path clear?

Scoring:

  • 0 — absent or actively harmful.
  • 1 — present but unreliable.
  • 2 — workable, with friction that could be removed.
  • 3 — clear, tested, and appropriate for this audience.

Read the results by column position, not by average. A total score is not actionable; a zero in Verification at step four is. Two patterns deserve immediate attention regardless of the total: any zero in Recovery, because it means a reader who fails is stranded, and any step where every participant scored the same dimension low, because that is a structural defect rather than a personal difference.

Run the walk with three to five participants per audience path, which is enough to see the repeated failures without pretending the exercise is statistics. Re-run after any change to authentication, pricing tiers, installation, or the first three steps. Attach each finding to an owner and a release, and publish the fixed version of the scorecard alongside the path so the next team can see what was already tested.

Measure it

Four signals show whether on-ramps are working. Completion by audience segment, tracked separately for explorer, evaluator, and adopter paths, because a single blended number hides which path is broken. Time to verified first outcome measured from arrival — including account creation, waits, and setup — reported as a distribution. Abandonment and help requests located by step, which converts a vague sense that onboarding is rough into a specific step with an owner. And the share of first-time participants who return or take the next action within a set window, which is the only one of the four that says the win meant something.

Countermetric: sign-ups without verified progress. A rising sign-up curve with a flat first-verified-result curve means your on-ramp is converting curiosity into accounts and accounts into nothing. It looks like growth on a dashboard and reads, to the people in it, like a wasted afternoon.

Next

A first win gives someone capability. It also puts them, briefly, in a relationship with you — they have your vocabulary, a result they produced, and a question about what comes after. Most onboarding treats that moment as the end of the funnel. It is closer to the start of something else. The next chapter is about what happens when people who can use the capability start using it with and for one another, and what has to be true structurally for that to be participation rather than an audience with a nicer name.