Sprint planning

Table of Contents

Summary

In agile practice, sprint planning is the ceremony that opens an iteration: the team agrees what the sprint is for, selects the work that serves that goal from the backlog, and breaks it down far enough that execution can start. Good planning is goal-led — the sprint goal filters the backlog, not the other way around.

In ORE Studio, sprint planning is the moment a new sprint acquires its identity. The sprint mission is written first and acts as the filter for everything else: captures are pulled from the next bucket only if they fit the mission and the sprint's size budget, promoted into stories, and decomposed into one-PR tasks. Planning ends when the sprint is ready: mission filled and at least one story BACKLOG-ready.

Detail

Ownership

Owned by System 3. System 5 vets each candidate against the product vision; System 4 sanity-checks the sprint mission against the version mission; System 2 decomposes each promoted story into tasks.

Opening a sprint

A sprint exists when its folder exists. To open sprint N+1:

  1. Define the sprint mission. One sentence: what this sprint exists to achieve. The mission is the filter that decides whether borderline captures make it in. Write it before looking at the backlog so the choice of stories is led by the mission, not the other way round. See sprint mission.
  2. Choose stories. Look at the next bucket; pick captures whose combined size fits one sprint's budget and whose theme matches the mission. Captures that don't fit the mission stay in the bucket. Sprints are time-boxed at roughly one mission's worth of work; the budget is empirical (past sprints' task counts and elapsed days under doc/agile/versions/v0/), not a fixed hour-count.
  3. Create the sprint folder. Use compass: compass add sprint --parent-dir doc/agile/versions/<version>. Slug is sprint_NN.
  4. Promote each chosen capture. For each:
    • git mv the capture file from its bucket into doc/agile/versions/<version>/<sprint_NN>/<slug>/story.org.
    • Flip #+type: from capture to story. The :ID: is preserved.
    • Apply the v2 story shape: blurb, * Goal, * Status (table, state BACKLOG), * Acceptance, * Tasks (empty), * Decisions, * Out of scope.
    • Re-run regenerate_backlog_indexes.py; the entry disappears from the bucket index automatically.
  5. Decompose stories into tasks. Each task is one PR; see the sizing rules in Tasks. Generate task files with compass add task --parent-dir <story-dir>. Order them in the story's * Tasks table by execution order. Tasks start BACKLOG.
  6. Regenerate the version's sprint table on the version page.

When planning is done

The sprint is ready when its Mission is filled and at least one story is BACKLOG-ready (see Stories for story readiness). Execution can begin; planning does not need every story fully decomposed up front.

See also

Emacs 29.1 (Org mode 9.6.6)