jonnifyagile agents
jonnify / Agile Agent Workflow / A2 · Decomposition / A2.02 / A2.02.1 · Role, want, reason

A2.02 · Connextra · dive 1

Role, want, reason

The template is one sentence with three slots, and each slot has a job: name the role, the capability, and the reason — for whom, what they can do, and why it matters.

When each slot does its job the story stays small and testable. When a slot is filled wrong it falls into one of three anti-patterns: the system as the role, a solution smuggled into the want, or a missing reason. Switch the view on the right to read one Portal story slot by slot.

One sentence, three slots · switch the story

As a…, I want…, so that… ROLE learner for whom? CAPABILITY browse the catalogue what they can do? BENEFIT choose a course why it matters? behaviour and value, never mechanism
As a learner, I want to browse the catalogue, so that I can choose a course. Three slots, three questions: for whom · what they can do · why it matters.

Three slots, three jobs

The Connextra template is “As a role, I want a capability, so that a benefit.” Each slot answers one question and only one. The role names the actor who gains the value — a human, or another system the work serves. The capability names what that actor can now do, stated as an observable behaviour rather than a mechanism. The benefit names why the capability matters: the outcome that makes the work worth doing, and the test of whether the capability is the right one.

The discipline is to keep each slot in its lane. The role is an actor, not a component. The capability is a behaviour, not an implementation. The benefit is an outcome, not a restatement of the capability. A story whose three slots each do their job is small, demonstrable, and orderable against other stories — exactly what the rest of decomposition needs.

role
The actor who gains the value — a human or another system the capability serves. On the Portal: learner, instructor, admin.
capability
What the actor can now do, stated as an observable behaviour, not an implementation. “Browse the catalogue”, not “add an index”.
benefit
Why the capability matters to the role: the outcome that justifies the work, and the test of whether the capability is the right one.

The role is the audience for the value; the capability is the behaviour delivered; the benefit is the reason. Drop or distort any one and the story stops being a unit of value.

The three anti-patterns

A story fails in three recognisable ways, one per slot. The system as the role puts an implementation in the role slot — “as the system, I want to cache the catalogue” — so no human gains value and there is no story. A solution smuggled into the want names a mechanism in the capability slot — “I want a Redis cache” — over-specifying the how and foreclosing the conversation. A missing reason drops the benefit slot, so there is no test of value: the story cannot be ordered against others, and there is no signal for when it is worth stopping.

Switch the card below to render each anti-pattern. The malformed slot is marked, and the readout names the anti-pattern and its repair. The repair is always the same shape: return the slot to its job — an actor, a behaviour, an outcome.

The anti-pattern detector · switch the card

ROLE learner CAPABILITY browse the catalogue BENEFIT choose a course green = the slot does its job · red = malformed
Well-formed: an actor in the role, an observable behaviour in the capability, an outcome in the benefit. All three slots do their job — a unit of value.

Each slot has one job — an actor, a behaviour, an outcome; the three anti-patterns are one slot pulled out of its lane.

Role, want, reason on the Portal

Take the Portal rung “the catalogue”. The well-formed card names a learner, an observable behaviour, and an outcome: “As a learner, I want to browse the catalogue, so that I can choose a course.” Every slot does its job, so the Author can build the behaviour and the Operator can accept the value. Contrast the three failures — each pulls one slot out of its lane, and each repair returns it.

# well-formed — actor · behaviour · outcome
"As a learner, I want to browse the catalogue, so that I can choose a course."

# anti-pattern 1 — the system as the role (no actor gains value)
"As the system, I want to cache the catalogue, so that …"   # repair: name the human served

# anti-pattern 2 — a solution smuggled into the want (a mechanism, not a behaviour)
"As a learner, I want a Redis cache, so that pages load fast."  # repair: state the behaviour

# anti-pattern 3 — a missing reason (no test of value)
"As a learner, I want to browse the catalogue."             # repair: add the so-that benefit

The principle

State a requirement as who gains, what they can do, and why — behaviour and value, never mechanism. A slot pulled out of its lane is an anti-pattern with a known repair.

On the Portal

Every Portal card names a learner, instructor, or admin, an observable capability — browse, enrol, open, track — and a benefit, so the Author builds the behaviour and the Operator accepts the value.

A well-formed card carries an actor, a behaviour, and an outcome; the three anti-patterns are the three ways one of those slots goes wrong.

Recap — the template, slot by slot

The Connextra template is one sentence with three slots, each with one job: the role names the actor who gains value, the capability names an observable behaviour, the benefit names the outcome that justifies the work. The three anti-patterns are one slot pulled out of its lane — the system as the role, a solution smuggled into the want, a missing reason — each with a known repair. With the form in hand, the next dive turns to what surrounds it: the three Cs.

Next in A2.02: A2.02.2 · Card, Conversation, Confirmation — the three parts a story has, and why a story is a promise plus a conversation, not a contract frozen up front.

References

Primary sources for the user-story template and its slots, and where it connects in the course.

Sources

Related in this course