wiki › Scoping

Stack

A stack is the nested chain of activities a user is engaged in at a given moment: what they're literally doing sits inside a larger thing they're doing, which sits inside something larger still. Slicing an onion is part of making dinner, which is part of feeding the family tonight; each level is a complete activity in its own right and also a piece of the one above. The stack changes moment to moment as the user's immediate activity changes, and people typically have several running at once: someone boarding a flight might be doing so as part of both a vacation trip and getting to a sister's wedding simultaneously.

Definition

A nested chain of in-progress transitions belonging to a single intent, where each level is a transition that contains the levels beneath it as sub-transitions and is itself contained by the levels above.

Russian nesting dolls

Each level in a stack is a complete transition in its own right — it has its own starting state, resulting state, and completion criteria — and at the same time is a sub-transition of the level above. Nesting depth and timeline span are coupled: larger levels span longer timelines because their timelines must contain their sub-transitions'. "Get paid" sits in a longer timeline than "send the invoice" because it has to contain the invoice-sending plus everything that follows — payment receipt, reconciliation, follow-up.

Stack is the structural object transition-scoping operates on. Choosing a scope-level to name a transition at is choosing a level of the stack.

The bottom of the stack moves

Stack is moment-bound. At any given moment, a stack extends upward from the deepest sub-transition currently in progress through all the containing parents above it. As the user's deepest in-progress activity shifts, the bottom of the stack shifts with it. The same underlying nested structure produces different stacks at different moments — same scaffolding, different active slice.

One stack per pursuit

A user typically has several concurrent stacks active at once, one per pursuit they're operating. The Russian-nesting-dolls property holds within each individual stack, not across them. The same low-level action can sit inside multiple stacks simultaneously when it serves multiple concurrent pursuits — at the airport, "boarding the flight" sits inside the tourist-trip stack and inside the family-reconnection stack at the same moment, with neither pursuit nested inside the other.

Multi-parent actions surface as multi-stack rather than as a lattice within one stack. Each pursuit produces its own coherent derivation. The framework analyst typically operates on one stack at a time — the one corresponding to the offering's served pursuit — while the user's experience is multi-stack throughout.

Example

A user clicks "place order" at REI on a pair of hiking boots. At this moment, the deepest sub-transition in progress is "submit the order." It sits inside "buy these boots," which sits inside "gear up for the Mt. Hood trip," which sits inside "make the trip happen." Four levels, each a transition with its own starting state, resulting state, and completion criteria, each containing the levels beneath it as sub-transitions.

An hour later, the same user is browsing trail-mix options. "Gear up for the Mt. Hood trip" is still in progress as a transition, but it's no longer at the bottom of the stack — the bottom is now "pick a trail mix," which sits inside "stock food for the trip," which sits inside "gear up for the trip," still inside "make the trip happen." Same underlying nested structure of the user's pursuit; different stack at this moment because a different sub-transition is the deepest one in progress.

See also