Skip to content

What substitution looks like

Pattern 1 — The Epic loses the activity

"POP-POS Operations and Pickup" — an Epic with seven sub-Epics, each named for a system area.

"Volunteer finds a family's order in under five seconds while the pickup line waits."

From a real food-bank project. The first lets any feature pass that touches the POS. The second constrains every feature to serve the volunteer at the moment of the pickup line — the person is named in the description, grounding the activity in the witnessed moment. The first produced fifteen months of work and recurring volunteer complaints.

Pattern 2 — The story loses the person

"Section locking — student should not access locked sections."

"Yoav, on his second attempt at the adaptive course, opens the next section before completing the prerequisite — the system shows him why and what he must finish first."

Four production bugs over two months, all variants of the same gap: students reaching locked content via direct URL, via adaptive edge traversal, via build-order vs section-order mismatches. None considered, because no specific student situation was named.

Pattern 3 — The decision evaporates

"@Esti should we update the DB?" — answered in Slack, never recorded.

A Product Decision Record naming the question, the chosen answer, what was rejected and why.

Six weeks later, a different developer needed the same answer, didn't find it, rebuilt the reasoning from scratch, reached a different conclusion. The schema now had two contradictory rules.

Next — Resolution increases by phase →

200apps · How We Work · NWIRE