jonnifyagile agents
jonnify / Agile Agent Workflow / A2 · Decomposition / A2.01 / A2.01.2 · Who benefits

A2.01 · Value, not tasks · dive 2

Who benefits

Every slice names a role and the value to that role. If you cannot name who is better off, you have a chore, not a story.

Once value is named, it — not effort — is what orders the backlog. Inspect each Portal item on the right: a story names a role and a value; a chore names neither, and is placed by the story it serves.

Name the role, or it is a chore · pick an item

ROLE a learner VERDICT a story a learner browses the catalogue of courses VALUE TO THAT ROLE the courses on offer become visible and findable
A learner browses the catalogue of courses. Role: a learner. Value: the courses on offer become visible and findable. Names a role and a value → a story.

A slice with no beneficiary is a chore

A story names two things: a role — the someone it serves — and the value to that role, what they can do after the slice that they could not before. On the Portal the role is a learner; later, an author or an admin. Naming the role is the difference between “wire the enrolment form” (a chore, no role) and “a learner enrols in a course” (a story, a learner is better off).

Once value is named, it becomes the ordering key. The backlog is ordered by value under dependency, not by how much work a slice is. Effort still matters — it bounds whether a slice fits one rung — but cheap-but-pointless never beats valuable-and-buildable. A chore names no role, so it cannot be placed by value at all; it is placed by the story it serves.

role
The someone a slice serves — a learner, an author, an admin. A slice with no role is a chore.
value to the role
What the role can do after the slice that it could not before. Naming it turns work into a story.
ordering key
Value under dependency, not effort. The most valuable buildable slice goes first.
effort
Bounds the size of a rung; it does not order the backlog. A small slice is not promoted for being small.

“Who benefits, and how?” is the question that turns a line of work into a story — and the same answer, the value, is what later decides where the slice sits in the order.

Order by value, not by effort

With value named for every slice, the backlog can be ordered. The right key is value under dependency: build the most valuable slice that nothing else is waiting on. The wrong key is effort — sorting by what is cheapest first promotes small slices that may deliver little or depend on work not yet done.

Switch the toggle to re-rank the four Portal learner stories by value or by effort, and read the resulting order and its top slice. By value, the foundation slice with the highest payoff leads; by effort, the cheapest leads, which need not be the one worth building next.

Four Portal stories, re-ranked · switch the key

1 a learner browses the catalogue of courses 2 a learner enrols in a course 3 a learner opens a lesson in an enrolled course 4 a learner tracks progress through a course
Ordered by value: browse → enrol → open → track. Top slice: browse the catalogue — highest value and depends on nothing, so it is built first.

Value, under dependency, is the ordering key: the most valuable buildable slice goes first — effort only bounds how big a rung may be.

Who benefits, on the Portal

The Portal’s four learner stories each name the role and its value. Ordered by value under dependency, browse leads — nothing depends on it being preceded, and without it nothing else is reachable — then enrol, then open, then track. A chore like “add the courses table” names no role, so it cannot be ranked by value; it is sequenced by the story it serves.

# Each story names a role and the value to that role:
a learner browses the catalogue of courses     # value: courses become findable
a learner enrols in a course from the catalogue  # value: the course is now theirs
a learner opens a lesson in an enrolled course   # value: the content is reachable
a learner tracks progress through a course       # value: they see where they are

# A chore names no role → cannot be ranked by value; placed by the story it serves:
add the courses DB table                       # role: none · serves "browse the catalogue"

The role is the same here — a learner — but naming it is what makes each line a story rather than a chore, and the value beside it is what fixes its place in the order.

The principle

A slice without a named beneficiary is a chore; value to a role, not effort, orders the backlog — the most valuable buildable slice first.

On the Portal

“A learner enrols in a course” leads on value; “add the courses table” names no role, so it is sequenced by the story it serves, never ranked against it.

Name the role and its value, and you have a story you can both build and place — the same answer is what the slice is for and where it sits in the order.

Recap — name the role, order by value

A story names a role and the value to that role; a slice that names neither is a chore, placed by the story it serves. With value named, the backlog orders by value under dependency — the most valuable buildable slice first — and effort only bounds the size of a rung. The closing dive asks what shape a valuable slice takes in the code: a thin thread through the layers, not a finished layer.

Next in A2.01: A2.01.3 · The vertical slice — value cuts through the layers as a usable end-to-end thread, against a horizontal technical chore no role can demo.

References

Sources for the role-and-value story form and ordering by business value, and where this dive connects in the course.

Sources

Related in this course