Skip to content
DEFINE THE CHANGE

Make the next step small enough to finish.

"Build search" is a direction, not a single iteration. A useful slice delivers one observable behavior with its own evidence. Choose a boundary that makes sense to a user or caller, then keep the implementation focused on that result.

Slice the taskNext: Write the check
  1. 01

    Name one observable outcome

    For search, a first slice might display a clear empty state when no records match. Describe the input and expected result without bundling ranking, saved searches, and filters. A reviewer should be able to determine whether this slice works independently of those later features.

  2. 02

    Include what makes it complete

    Small does not mean leaving required error handling or accessibility for later. Include the behavior, its relevant states, and the check that establishes success. Follow existing component and data patterns. If an underlying dependency blocks the slice, make that dependency explicit before implementation.

  3. 03

    Park the next idea clearly

    Capture adjacent work in a short follow-up note rather than expanding the current task midstream. Separate must-have behavior from a future improvement. After verification, choose the next slice based on what you learned. The sequence can change without weakening the current acceptance condition.

A useful finish

The change produces a complete, observable result and does not depend on an undefined future step to become useful.

A bounded task brief

Implement one behavior: [specific outcome] when [input or state]. Preserve [existing behavior]. Include relevant error and accessibility states. Inspect existing patterns first. Verify with [specific check]. Treat [adjacent feature] as a separate follow-up.
TAKE THE NEXT USEFUL STEPWrite the check