If Engineering Can't Use It, You Don't Have Organizational JTBD Adoption

A lot of orgs say they've adopted when what they really mean is that a few people in product use the language.

The PM references in roadmap conversations. The designer frames flows around the . The researcher presents forces diagrams. And then the work crosses the handoff to engineering, and disappears.

The ticket says "add export to PDF." The acceptance criteria describe functional requirements. The engineer builds what the ticket says, because the ticket doesn't say anything about , the stakes, the anxiety, or the moment the user is in when they reach for this feature.

That's not organizational adoption. That's a product team that learned talking to an engineering team that didn't learn it, and the gap shows up in every tradeoff, every edge case decision, and every "is this good enough?" judgment the engineer makes alone at their desk.

Engineering makes job-relevant decisions every day — without knowing it

Engineering isn't downstream . Engineering is where job-level decisions get made constantly, in ways that never show up in a planning meeting.

How should this error message read? That depends on whether the user is in a high-stakes moment where a generic "something went wrong" will destroy their confidence, or a low-stakes moment where it barely matters.

How fast does this need to load? That depends on whether the user is under time pressure — checking status before a meeting in five minutes — or browsing at their own pace.

How gracefully does this need to fail? That depends on whether the the user just entered is replaceable (they can redo it in thirty seconds) or irreplaceable (they spent twenty minutes on it and losing it would make them abandon the product).

Should we handle this edge case or punt it? That depends on whether the edge case hits during the core job moment — where failure is catastrophic — or during a peripheral workflow where a rough experience is tolerable.

Every one of those is a job-level decision. And every one of them gets made by an engineer who, in most organizations, has never heard described in terms they can use.

The problem isn't that engineers don't care. It's that they haven't been given the lens in their language.

, as it typically gets communicated, sounds like empathy language. "The user is frustrated." "They want to feel confident." "They're trying to make ." Those statements are true. They're also too abstract for an engineer to do anything with.

An engineer who hears "the user wants to feel confident" can't translate that into a technical decision. An engineer who hears "this is the moment where the user is about to send a report to their VP, and if the numbers look wrong, the user's credibility is on the line — so the output needs to show where the came from and which filters are active" can absolutely translate that into a technical decision.

They know what to surface, what to verify, and what error handling matters.

The difference isn't intelligence or willingness. It's specificity. Engineers work in specifics. If insight stays at the theme level — "users need confidence," "reduce friction," "build trust" — it's useless to the person writing the code. If it gets translated into concrete moments, stakes, and consequences, it becomes the most useful input engineering has ever received.

What JTBD looks like when engineering can use it

When an engineer understands — not the theory, the specific job their product serves — their decisions get better in ways that are immediately measurable.

Error handling gets calibrated to the stakes. Instead of one-size-fits-all error messages, the engineer knows which flows are high-stakes (where a vague error creates panic) and which are low-stakes (where a generic message is fine). "Something went wrong" in a payment flow is a trust disaster. "Something went wrong" in a settings page is mildly annoying. The engineer who knows handles those differently without being told.

Performance gets prioritized where it matters. Not everything needs to be fast. The status dashboard that a manager checks before their morning standup needs to load in under two seconds. The settings page they visit once a quarter doesn't. When engineering knows , they allocate performance optimization to the moments where speed is and deprioritize the moments where it's nice-to-have.

Edge cases get triaged by job impact. Every product has more edge cases than engineering hours to handle them. gives engineers a way to triage: if this edge case hits during the core job moment, handle it gracefully. If it hits during setup or configuration, a rougher experience is acceptable. That's a faster, better prioritization than "handle them in order of frequency."

integrity gets protected where trust depends on it. If the user's job involves producing output they have to defend to others — a report, a recommendation, a decision — the engineer knows that accuracy and transparency aren't nice-to-haves. They're the product's core value proposition. That changes how carefully the engineer validates calculations, displays sources, and surfaces caveats.

Engineers don't need a JTBD workshop.

They need three things.

described in concrete terms, not themes. Not "users want confidence." Instead: "The user is a project manager who checks this dashboard every morning before standup. They need to know what's at risk in under thirty seconds. If the is stale or the filters are wrong and they report bad information to their skip-level, they look incompetent." That's a job description an engineer can build against.

The stakes named for each flow. Engineering makes tradeoff decisions on every ticket. Those tradeoffs are better when the engineer knows: is this a high-stakes moment (the user is committing, sending, publishing, ) or a low-stakes moment (browsing, configuring, exploring)?

A one-sentence annotation on the ticket — "this is the moment where the user sends the report to their client" — changes how the engineer approaches the work.

Permission to make judgment calls. If engineering understands , they don't need to escalate every UX micro-decision to the designer or PM. "Should I show the user what changed since their last visit?" — an engineer who knows can answer that. "Should this action be reversible?" — an engineer who knows the stakes can answer that.

Job knowledge doesn't just make engineering more informed. It makes engineering faster, because fewer decisions require a meeting.

JTBDUX is what makes the job legible to engineering

— which brings and UX together into a shared decision language — is what closes the gap between job insight and engineering execution.

Plain produces statements like "the user wants to reduce risk." That's true but not buildable. translates that into questions an engineer can act on: does this flow need reversibility? Does the output need to show its sources? Does the error state need to offer recovery or just acknowledgment? Does load time matter here because the user is under time pressure, or is it acceptable because they're in setup mode?

Those are engineering questions with job-informed answers. And when engineering has access to those answers, the product gets better in ways that no amount of design polish can replicate — because the decisions that determine whether a product feels trustworthy, reliable, and worth defending are made in the code, not in the mockup

Ask the engineer

If you want to know whether your organization has really adopted , ask an engineer on the team two questions:

What job does our product help users do? And: how does that change the way you build?

If they can answer both, you have organizational adoption. If they can answer the first but not the second, you have awareness without operationalization — is known but it's not shaping technical decisions. If they can't answer either, the adoption hasn't left the product team's corner of the building.

that only product managers, researchers, and designers can use isn't a shared lens. It's a specialty. And specialties don't change organizations. Shared languages do.

Was this page helpful?