Skip to main content

Scrum Primer

A complete overview of Scrum for teams that are new to the framework — covering concepts, ceremonies, artifacts, visual tools, and the hard rules that make it work. Each section notes how Scraut automates the corresponding piece.

If you already know Scrum well, skip straight to Getting Started.


What is Scrum?

Scrum is a lightweight agile framework for delivering complex work in short, regular cycles called sprints. It was codified in the Scrum Guide (Schwaber & Sutherland) and is the most widely-used agile method in software teams worldwide.

The core idea is empiricism — you learn by doing, inspect what you built, and adapt your process. Three pillars hold it up:

PillarWhat it means in practice
TransparencyEveryone sees the same backlog, the same sprint board, the same blockers
InspectionThe team regularly checks its progress — daily in standup, end-of-sprint in review
AdaptationWhen something is off, the team changes the plan — not the goal

Scrum also names five values that healthy teams try to live by: Commitment, Focus, Openness, Respect, and Courage.


The three roles

RoleResponsibility
Product Owner (PO)Owns the product backlog. Decides what gets built and in what order. Single source of business priority.
Scrum Master (SM)Facilitates the ceremonies, removes blockers, coaches the team on Scrum. Shields the team from outside interruption.
DevelopersThe people doing the work. Self-organize to deliver the sprint goal.

Scraut maps these roles to product_owner and scrum_master in scraut.yml. Each role receives different notifications, owns different files, and has different responsibilities in each ceremony.


The sprint

A sprint is a fixed-length iteration — usually 1–4 weeks — during which the team builds a potentially releasable increment of the product. Sprints are the heartbeat of Scrum.

Key properties:

  • Fixed length. Every sprint is the same duration. Never shorten or extend a sprint — if work didn't finish, roll it over.
  • Has a goal. The sprint goal is agreed at planning. It answers why the team is doing this sprint, not just what.
  • Ends with an increment. Something usable is produced every sprint, even if not released.
  • Can be cancelled. Only the Product Owner can cancel a sprint — and only when the sprint goal has become obsolete (e.g. a pivot). This is rare and disruptive; a new sprint starts immediately after.

The sprint goal

The sprint goal is a single sentence agreed at planning that describes why the team is running this sprint. It is more durable than the list of stories — if a story turns out wrong mid-sprint, the team can substitute another story that still serves the goal.

Example: "By end of sprint, users can create an account and complete their first purchase."

A sprint without a goal is just a list of tasks. Goals give the team shared direction and make trade-off decisions obvious.

Scraut captures the sprint goal in workspace/sprint/NNN/meta.md. The sprint planning PR is titled with the goal.


The work hierarchy

Scrum work items are organised in a three-level hierarchy:

Epic
└── Story (User Story)
└── Task

Epic

An epic is a large body of work that cannot be completed in a single sprint. Epics are broken down into stories. They typically map to a major feature, capability, or milestone objective.

Example: Epic: "User authentication system"

User Story

A user story is the primary unit of work in Scrum. It describes a feature from the perspective of the person who will use it:

As a [type of user],
I want [a goal],
so that [a reason/benefit].

Example: "As a new customer, I want to create an account with my email, so that I can save my cart and order history."

Stories should be small enough to complete within a single sprint (ideally in a few days). If a story cannot fit in one sprint, split it.

Acceptance Criteria

Each story has acceptance criteria (AC) — a concrete checklist that defines when the story is done. AC is written by the PO, refined with the team during grooming.

Example AC for the story above:

  • User can register with email + password
  • Duplicate emails are rejected with a clear error message
  • Confirmation email is sent within 60 seconds
  • Account persists across sessions
Acceptance criteria must be written before sprint planning

Stories without AC should not enter the sprint. Without clear AC, developers don't know when to stop building, and the PO doesn't know what to test.

Task

A task is a technical step a developer creates during sprint planning to complete a story. Tasks are internal to the team — not visible to stakeholders. They typically take a few hours each.

Example tasks for the story above:

  • Create POST /api/register endpoint
  • Write registration form component
  • Add email validation and duplicate check
  • Set up transactional email service
  • Write integration tests for registration flow

In Scraut, epics and stories are GitHub Issues with the epic or story label. Tasks use the task label. Story points are tracked with sp:N labels.


Estimation and story points

What are story points?

Story points are a unit of measure for the complexity and effort of a story — not the number of hours. The team agrees on a relative scale (Scraut uses Fibonacci: 1, 2, 3, 5, 8, 13).

A story estimated at 8 points is roughly twice as complex as one at 3 points — but "8 points" doesn't mean "8 hours." Story points are relative, not absolute.

This matters because:

  • Hour estimates are systematically optimistic (people forget testing, code review, rework)
  • Relative sizing is more accurate and converges quickly in team discussions
  • Over time, the team's "points per sprint" stabilises into a velocity that makes planning reliable

How estimation works

The team uses Planning Poker (or emoji reactions in Scraut):

  1. The PO presents a story and answers clarifying questions
  2. Each developer privately picks an estimate
  3. All estimates are revealed simultaneously
  4. If there is wide disagreement, the highest and lowest estimators explain their reasoning
  5. The team re-estimates until convergence
  6. The agreed estimate is attached to the story

Revealing estimates simultaneously prevents anchoring bias (where the first number said influences everyone else).

The Fibonacci scale explained

PointsMeaning
1Trivial — well-understood, minimal risk
2Simple — straightforward, few unknowns
3Small — some complexity, mostly clear
5Medium — meaningful complexity or some uncertainty
8Large — significant complexity, multiple moving parts
13Very large — high uncertainty; should be split before sprint

Stories estimated at 13 points are almost always too big for one sprint. The team should split them during grooming before they enter planning.

Scraut automates emoji-reaction estimation in GitHub Issues using the estimation.yml workflow and the sp:N label system.


Velocity

Velocity is the number of story points the team completes per sprint, averaged over the last 3–6 sprints.

It is used exclusively for planning — to predict how much work the team can commit to in the next sprint. It is never used to compare teams or judge individual performance.

Sprint 1: 24 sp Sprint 2: 28 sp Sprint 3: 22 sp → Rolling average: 25 sp

Capacity planning

Raw velocity assumes a full team for the full sprint. Capacity adjusts for reality:

Available capacity = velocity × capacity_buffer × (available_days / sprint_days)

Factors that reduce capacity:

  • Team member on leave or OOO
  • Public holidays (see holidays config)
  • Planned work outside the sprint (on-call, conferences, interviews)
  • Sprint 1 of a new team (no historical velocity yet — start conservatively)

Scraut tracks capacity in workspace/team/capacity.md and applies sprint.capacity_buffer (default 0.85 = plan to 85% of velocity) to avoid over-committing.


The Definition of Ready

The Definition of Ready (DoR) is the counterpart to the Definition of Done — it defines when a backlog item is ready to be pulled into a sprint.

A typical DoR checklist:

  • User story is written in the standard format
  • Acceptance criteria are defined and agreed with PO
  • Story is estimated by the team
  • Dependencies are identified (and resolved or accepted)
  • Story fits within one sprint (≤ 8 sp recommended)
  • UI mockups or technical design attached (if applicable)
Use the DoR as a grooming exit gate

An item that doesn't pass the DoR should not enter sprint planning. It goes back to grooming. This keeps planning fast and prevents mid-sprint confusion.


Ceremonies

Scrum has six recurring ceremonies. Each exists for a specific reason — removing any one of them weakens the whole system.

1. Backlog Grooming (Refinement)

When: Mid-sprint, typically once or twice per sprint
Who: PO + Developers (SM optional)
Duration: ≤ 10% of sprint capacity (e.g. ~1 hour/week for a 2-week sprint)

The PO and team review upcoming backlog items, clarify requirements, split large stories, write acceptance criteria, and estimate. Items exit grooming ready for planning (DoR met).

Benefit: Teams that skip grooming spend half of sprint planning arguing about unclear requirements. Grooming separates the "what do we build?" conversation from the "when do we build it?" decision.

Scraut output: workspace/sprint/NNN/grooming/backlog-ideas.md — a team-maintained file for grooming notes and new story ideas.

How Scraut automates grooming


2. Estimation

When: During or just after grooming
Who: Developers (PO available for questions)
Duration: Included in grooming session

The team assigns story points to backlog items using Planning Poker (see Estimation and story points above).

Benefit: Individual estimates are optimistic. Team estimation surfaces hidden complexity, distributes knowledge, and builds shared ownership of the work.

Scraut output: GitHub Issues are labelled sp:N automatically from emoji-reaction votes.

How Scraut automates estimation


3. Sprint Planning

When: First day of the sprint
Who: Entire team
Duration: ≤ 2 hours per sprint week (e.g. 4 hours for a 2-week sprint)

The team selects items from the top of the groomed backlog and commits to a sprint goal. Developers break selected stories into tasks and collectively agree the plan is achievable within capacity.

Benefit: Planning aligns the whole team on what success looks like for this sprint. Without it, individuals optimise locally instead of toward a shared goal.

Scraut output: A sprint planning PR is opened with workspace/sprint/NNN/meta.md pre-filled with velocity data, capacity, and suggested stories.

How Scraut automates sprint planning


4. Daily Standup

When: Every working day, same time
Who: Developers (SM facilitates, PO optional)
Duration: ≤ 15 minutes (strictly)

Each person answers three questions:

  1. What did I complete since the last standup?
  2. What will I work on today?
  3. What is blocking me?

The standup is a synchronisation meeting, not a status report to management. Blockers raised here are resolved after the meeting by the SM.

Benefit: Problems surface daily instead of festering for two weeks. The team stays aligned on sprint progress without lengthy meetings.

Scraut outputs:

  • workspace/sprint/NNN/standup/YYYY-MM-DD/[login].md — template created automatically each morning
  • .scraut/sprint/NNN/standup/summary/YYYY-MM-DD.md — LLM-generated daily summary
  • Slack message posted to team channel with summary
  • Morning Slack DM to each team member with their standup link

How Scraut automates standups


5. Sprint Review

When: Last day of the sprint (or day before retrospective)
Who: Entire team + stakeholders
Duration: ≤ 1 hour per sprint week

The team demonstrates what was built. Stakeholders give feedback. The PO updates the backlog based on what was learned. This is an informal working session — not a presentation.

Benefit: Real stakeholder feedback every sprint, not once a quarter. The team builds the right thing because they validate direction regularly.

Scraut outputs:

  • .scraut/sprint/NNN/review/review.md — LLM-generated review document summarising completed work, stories closed, velocity, and stakeholder notes
  • Slack message posted with sprint summary

How Scraut automates sprint review


6. Sprint Retrospective

When: After review, before the next sprint starts
Who: Entire team (no stakeholders)
Duration: ≤ 45 min per sprint week

The team inspects its own process: what went well, what could improve, and what one or two concrete actions to take next sprint. Each action gets an owner and a due date.

Benefit: Continuous process improvement. Teams that retro consistently get measurably faster and healthier over 3–6 months.

Scraut outputs:

  • workspace/sprint/NNN/retrospective/[login].md — template created per team member
  • .scraut/sprint/NNN/retrospective/summary.md — LLM-synthesised retro summary with recurring themes and action items
  • Slack message posted with synthesis

How Scraut automates retrospectives


Artifacts

Product Backlog

The ordered list of everything that might be built — features, bugs, technical debt, spikes. The Product Owner owns and prioritises it. It is never frozen; it evolves as the team learns.

In Scraut: GitHub Issues without a sprint label. The PO prioritises by milestone and label.

Sprint Backlog

The subset of the product backlog selected for this sprint, plus the sprint goal and the tasks the team created during planning. The Developers own it and update it daily.

In Scraut: GitHub Issues labelled sprint-NNN + in-sprint. The team updates issue state as work progresses.

Increment

The sum of all completed work this sprint (and all previous sprints). Must meet the Definition of Done to count. The increment is the tangible output of every sprint — a potentially releasable product.

In Scraut: Closed GitHub Issues that passed the DoD check workflow.

Definition of Done (DoD)

A shared checklist that defines what "Done" actually means for your team. Every story must pass all criteria before it can be marked complete.

Typical DoD items:

  • Tests written for new functionality
  • PR reviewed by at least one team member
  • Acceptance criteria mentioned in PR description
  • No open review comments
  • CI passing

In Scraut: Defined in definition_of_done in scraut.yml. The dod-check.yml workflow automatically verifies PRs against this list.

Definition of Ready (DoR)

The entry gate for sprint planning — see The Definition of Ready above.


Visual tracking artifacts

These tools give the team and stakeholders a quick picture of sprint health without reading every issue.

Burndown Chart

A burndown chart tracks the amount of work remaining in the sprint over time. The X-axis is calendar days; the Y-axis is story points remaining.

SP remaining
30 │╲ ← ideal line (linear burn)
│ ╲
20 │ ╲____ ← actual line
│ ╲__
10 │ ╲
│ ╲
0 └─────────────────── days
Day 1 Day 14

Two lines are plotted:

  • Ideal line — straight line from total committed SP on day 1 to zero on the last day. Accounts for weekends, public holidays, and work_days config.
  • Actual line — story points remaining as issues are closed. If the actual line is above the ideal, the sprint is at risk.

What it tells you:

  • Actual above ideal line → team is behind; may not finish sprint
  • Actual below ideal line → team is ahead; PO may pull in extra stories
  • Flat actual line mid-sprint → team is blocked or not closing issues promptly
  • Steep drop then flat → work is being completed in batches (waterfall smell)

Scraut generates the burndown PNG with the burndown-chart.yml workflow. Ideal line automatically excludes weekends, public holidays, and non-work days configured in sprint.work_days. Saved to .scraut/sprint/NNN/review/burndown.png.

Velocity Chart

A velocity chart shows story points completed per sprint over the last N sprints. It is the primary input to capacity planning.

SP completed
34 │ ██
30 │ ██ ██ ██
│ ██ ██ ██ ██
20 │ ██ ██ ██ ██
└────────────────────────
Sp1 Sp2 Sp3 Sp4

Use it to:

  • Set realistic sprint commitments (commit to average, not max)
  • Spot trends — is the team speeding up, slowing down, or erratic?
  • Flag abnormal sprints (onboarding, holidays, incidents)

Scraut calculates rolling velocity with scraut velocity (CLI) or calculate_velocity.py. Available in .scraut/sprint/NNN/review/review.md.

Milestone Health Report

A forecast of whether an upcoming product milestone will be delivered on time, based on current velocity and remaining work.

Inputs: remaining story points in the milestone, current velocity, team capacity, sprint end date
Output: estimated delivery sprint/date, confidence level, risk flags

Scraut generates milestone health reports in .scraut/milestones/{name}/health/ on each sprint close. The visibility portal shows a live forecast for each milestone.


Scraut-generated outputs — complete map

Every Scrum artifact and ceremony produces a file, a label change, or a Slack message in Scraut:

Scrum conceptScraut outputWhere
Product BacklogGitHub Issues (open, no sprint label)GitHub Issues tab
Sprint BacklogIssues labelled sprint-NNN + in-sprintGitHub Issues / Projects board
Sprint Goalsprint/NNN/meta.md → planning PR titleworkspace/sprint/NNN/meta.md
Story estimationsp:N label on each issueGitHub Issue labels
Standup templatePer-member .md file created each morningworkspace/sprint/NNN/standup/DATE/
Standup summaryLLM digest of all standups.scraut/sprint/NNN/standup/summary/DATE.md
Standup Slack postTeam channel messageSlack
Morning DMPersonal standup link per memberSlack DM
Sprint planning PRPre-filled meta.md with velocity + capacityGitHub PR
Sprint reviewCompleted stories + velocity summary.scraut/sprint/NNN/review/review.md
Retrospective synthesisThemes + action items from all retro files.scraut/sprint/NNN/retrospective/summary.md
Burndown chartSprint progress PNG.scraut/sprint/NNN/review/burndown.png
Velocity reportRolling average + trend.scraut/sprint/NNN/review/review.md
Milestone healthDelivery forecast + risk flags.scraut/milestones/{name}/health/
Definition of Done checkPer-PR compliance reportGitHub PR comment
SuggestionsProcess improvement proposals from pattern detection.scraut/suggestions/active/
InsightsCross-sprint patterns and team health metrics.scraut/insights/
Weekly digestEmail or Slack summary across all sprintsEmail / Slack
Visibility portalHTML dashboard for stakeholdersapps/portal/ (GitHub Pages)
GitHub Projects boardAuto-synced sprint boardGitHub Projects

Hard rules

These are the non-negotiable constraints that make Scrum work. Violating them produces a process that looks like Scrum but loses its benefits — sometimes called "ScrumBut" ("We do Scrum, but we…").

No new scope mid-sprint

Once sprint planning is complete, the sprint backlog is locked. New requests go on the product backlog for the next sprint. The only exception is a genuine emergency that changes the sprint goal — in which case the sprint may be cancelled and replanned.

Why it matters: Mid-sprint additions destroy focus, blow the sprint goal, and make velocity measurements meaningless.

Definition of Done is not negotiable

An item is not "Done" unless it meets every criterion in the DoD. "Done but not tested" or "Done but not deployed" does not count. Undone work accumulates as technical debt and surprises the team in future sprints.

Stories without acceptance criteria don't enter the sprint

If a story doesn't have clear, agreed acceptance criteria at the start of planning, it goes back to grooming. Without AC, developers don't know when to stop and QA can't verify the work.

The sprint length is fixed

You cannot shorten a sprint because "we finished early" or extend one because "we need more time." Unfinished items roll to the next sprint. The fixed cadence is what makes planning, velocity, and ceremonies predictable.

Only the PO reprioritises the backlog

Developers, stakeholders, and managers do not unilaterally move items to the top of the backlog. They request it from the PO. This keeps the team from being pulled in multiple directions by competing stakeholders.

Blockers are raised daily — not at the end of the sprint

If you are blocked, it goes in today's standup. Not in a private Slack message. Not in the review. The Scrum Master's job is to clear blockers within 24 hours.

Velocity is not a performance metric

Never use velocity to compare teams, set targets, or evaluate individuals. It is a planning input for one team only. Teams that are evaluated on velocity inflate estimates and game the system.

Estimation is a team sport

No single person estimates a story. The whole development team estimates together because they will do the work and each person may see a different risk. Estimates made by one person and accepted silently are not commitments — they're guesses.

Retrospective actions need an owner and a sprint

An action item without an owner is a wish. Write each retro action as: "[Owner] will [specific change] by sprint [N]." Open every retro by reviewing last sprint's actions.

The standup is for the team, not for management

Developers should talk to each other in standup, not report upward. If a manager attends, they listen — they do not ask questions or redirect work. Turning standup into a status report kills psychological safety and causes people to hide problems.

Split stories larger than 8 points before sprint planning

13-point stories almost always contain hidden complexity that will blow the sprint. Force the split in grooming. Smaller stories produce faster feedback, earlier integration, and less merge conflict.


Common Scrum mistakes

MistakeWhat goes wrongThe fix
Grooming is skippedPlanning takes all day; stories are unclearSchedule grooming as a recurring calendar event
Sprint goal is vague or absentThe team has no shared direction; any work feels "on track"Write one sentence: "By end of sprint, users can do X"
Stories have no acceptance criteriaDevelopers build the wrong thing; PO rejects work at reviewAC is written before grooming ends; DoR enforces this
Velocity is used to compare teamsTeams game estimates; psychological safety dropsVelocity is a planning tool for one team only
Retro actions are never revisitedNothing improves; team stops believing in retrosOpen every retro by reviewing last sprint's actions
Standup runs 45 minutesPeople stop comingPark detailed discussions — resolve them after standup
PO is unavailable during sprintDevelopers make assumptions; wrong things get builtPO must be reachable within a few hours for questions
Burndown is never looked atSprint failures are a surprise on the last dayReview the burndown at each standup; act when actual diverges from ideal
13-point stories enter the sprintStory gets stuck; nothing is "Done" by FridayEnforce split-before-planning as a team norm
DoD is ignored under deadline pressureTechnical debt accumulates; quality degradesDoD is non-negotiable — close the sprint with less scope instead

How Scraut fits in

Scraut automates the mechanical parts of Scrum so your team can focus on the human parts:

Scraut does automaticallyYou still need to do
Create standup templates each morningFill them in (takes ~2 min/day)
Generate LLM standup summary + Slack postRead the summary, act on blockers
Calculate velocity and capacityInterpret the numbers, adjust the plan
Open the sprint planning PR with data pre-filledHave the planning conversation
Generate burndown chart (ideal vs actual)Review it daily, pull in work if ahead
Run DoD checks on PRsFix the gaps before merging
Synthesise retrospective themesDecide on actions, commit to owners
Detect process patterns (late closures, blocker clusters)Evaluate and vote on suggestions
Forecast milestone healthMake strategic decisions on scope
Post sprint review notesPresent to stakeholders, gather feedback

Scrum is a framework for human collaboration. Scraut removes the friction — it doesn't replace the thinking.