aidentity / index

abrahamFerga/scrum-skills · MIT

sm-capacity-planning

Calculates team capacity for the upcoming Sprint by accounting for team size, Sprint length, planned time off, ceremony overhead, and individual focus factors. Outputs total developer-days available and a recommended story point commitment range. Use when a Scrum Master or team says things like "plan our capacity", "how many points can we commit to", "capacity for next sprint", "how much can we take on", or "account for holidays in the sprint". Do not use for sprint planning facilitation — use sprint-planning for that. Do not use for velocity analysis — use sm-velocity-review for that.

planning stable

Contents

Sprint Capacity Planning

Purpose

Committing more than the team can actually deliver erodes trust, demoralises Developers, and makes velocity data meaningless. Committing too little wastes Sprint potential and frustrates the Product Owner. This skill does the arithmetic so the team can make an honest commitment.


Tool detection

  1. Check for active mcp__azure-devops__* tools → $PM_TOOL = ado
  2. Check for active mcp__jira__* tools → $PM_TOOL = jira
  3. If neither → $PM_TOOL = manual

Step 1 — Get Sprint parameters

Collect or detect the following:

Sprint dates

  • ADO: use work_list_team_iterations or work_list_iterations to find the next iteration and its start/end dates
  • Jira: use the sprint listing tool to find the upcoming sprint
  • Manual: ask "What are the start and end dates for the next Sprint?"

Calculate $WORKING_DAYS — the number of working days between start and end (exclude weekends by default; ask about public holidays in the team's locale).

Focus factor

The percentage of working time a developer realistically spends on sprint work (excluding email, meetings outside Scrum, interruptions). Default: 70%. Ask if the team has a known different value.


Step 2 — Get team members

  • ADO: use work_get_team_capacity or work_get_iteration_capacities for the upcoming iteration; read each team member and their planned days off
  • Jira: use the team/member listing tool or ask manually
  • Manual: ask "Who is on the team this Sprint? List each person."

For each team member, ask (or read from the tool):

  • Days off during the Sprint (vacation, sick, training, public holidays)
  • Reduced availability (part-time, shared with another team, on-call rotation)

Step 3 — Calculate capacity

For each team member:

Available days = $WORKING_DAYS − days_off − reduced_availability_days
Focus hours = available_days × hours_per_day × focus_factor

Default: hours_per_day = 8, focus_factor = 0.70

Ceremony overhead — subtract the time the team spends in Scrum ceremonies:

CeremonyTypical duration
Sprint Planning2–4 hours (scale with Sprint length)
Daily Scrums15 min × working days
Sprint Review1–2 hours
Retrospective1–2 hours

Subtract ceremony hours from total focus hours to get net development hours per person.

Team total:

Total developer-hours = sum of net development hours across all team members
Total developer-days  = total developer-hours ÷ hours_per_day


Step 4 — Derive the story point range

Use the team's recent velocity to convert developer-days into story points.

Ask: "What is the team's average velocity over the last 3 Sprints?" (or fetch from sm-velocity-review if available).

Reference velocity = average story points completed per Sprint
Reference capacity = average developer-days in those Sprints

Points per developer-day = reference_velocity ÷ reference_capacity

Recommended commitment = total_developer_days × points_per_developer_day

Present as a range: recommended × 0.85 to recommended × 1.00 — the lower end accounts for uncertainty; the upper end is the ceiling.

If velocity data is not available, skip the point conversion and output developer-days only. Note that the team should track velocity for 2–3 Sprints before committing to point-based planning.


Step 5 — Present the capacity summary

Sprint Capacity — [SPRINT NAME] — [DATE RANGE]

Team: [N] developers
Working days: [N]
Focus factor: [X]%

┌─────────────────────┬───────────┬──────────┬──────────────┐
│ Developer           │ Days off  │ Net days │ Net hours    │
├─────────────────────┼───────────┼──────────┼──────────────┤
│ [Name]              │ [N]       │ [N]      │ [N]          │
│ [Name]              │ [N]       │ [N]      │ [N]          │
│ [Name]              │ [N]       │ [N]      │ [N]          │
└─────────────────────┴───────────┴──────────┴──────────────┘

Ceremony overhead: [N] hours
Total team capacity: [N] developer-days / [N] hours

Recommended commitment: [N–N] story points
(based on [N]-point average velocity over last [N] Sprints)

⚠ Flags:
  - [Any individual with < 50% availability — flag for PO awareness]
  - [Any Sprint significantly shorter than normal due to holidays]


Step 6 — Offer to save to ADO

Ask: "Should I save this capacity plan to ADO for the team's iteration?"

If yes, use work_update_team_capacity or equivalent to record each team member's days off and capacity in the iteration. This feeds burn-down charts automatically.


Guardrails

  • Never use 100% capacity as the commitment ceiling — humans are not machines and Scrum accounts for uncertainty.
  • Never assume every team member works the same hours — ask about part-time, shared, or on-call arrangements.
  • If a team member has more than 40% of the Sprint as days off, flag it to the Product Owner — the committed scope may need to shrink.
  • Capacity is an input to Sprint Planning, not the Sprint Goal. The team commits to the Sprint Goal; capacity just bounds what is achievable.

Provenance

Authored by abrahamFerga in abrahamFerga/scrum-skills. The content is mirrored here under its upstream license.

Related

audit-backlog-ado Audits the Azure DevOps product backlog for hygiene, story quality, and refinement readiness — identifying items that are too large, missing acceptance criteria, stale, unestimated, or out of priority order. Use when a Scrum Master or Product Owner says things like "audit the backlog", "is the backlog healthy", "review the backlog before refinement", "clean up the backlog", "check backlog hygiene", or "prepare the backlog for planning". Do not use for individual story audits — use audit-user-story for that. Do not use for sprint planning or velocity review. abrahamFerga/scrum-skills MIT audit-sprint-ado Audits a completed or in-progress Azure DevOps sprint against Scrum and ADO best practices — checks Sprint Goal presence, work item hygiene, state transitions, field completeness, capacity tracking, and Definition of Done compliance. Surfaces findings with severity levels and offers to post a summary to the ADO wiki or add comments to specific work items. Use when anyone says things like "audit our sprint in ADO", "review the sprint in Azure DevOps", "check our ADO sprint health", "are our work items following best practices", or "sprint health check". Don't use for Jira, Sprint Planning, Daily Scrum, or Retrospective. Requires an Azure DevOps MCP connection. abrahamFerga/scrum-skills MIT audit-sprint-jira Audits a completed or in-progress Jira sprint against Scrum and Jira best practices — checks Sprint Goal presence, issue hygiene, workflow transitions, field completeness, story point coverage, and sub-task consistency. Surfaces findings with severity levels and offers to add comments to specific issues or export a summary report. Use when anyone says things like "audit our sprint in Jira", "review the Jira sprint", "check our Jira sprint health", "are our issues following best practices", or "sprint health check in Jira". Don't use for Azure DevOps — use audit-sprint-ado instead. Don't use for Sprint Planning, Daily Scrum, or Retrospective. Requires a Jira MCP connection. abrahamFerga/scrum-skills MIT audit-sprint-retrospective-ado Reads an Azure DevOps retrospective — from the ADO Retrospectives extension board, a wiki page, or retro-tagged work items — and produces a structured summary of what the team said, identifies patterns and recurring themes, audits whether action items are properly tracked as work items with owners, and generates concrete suggestions. Use when anyone says things like "summarize our retro", "audit the retrospective in ADO", "what were the action items from the retro", "review the team's retrospective board", "check our retro follow-up", or "did we capture everything from the retro". Don't use for facilitating a retrospective in real time, Jira projects, or general Scrum questions. abrahamFerga/scrum-skills MIT audit-user-story Audits an existing user story against Scrum best practices — checks INVEST criteria, story format, acceptance criteria quality, and Definition of Ready compliance. Raises findings with clear severity levels and offers to post the audit as a comment on the work item for the Product Owner or PM to act on. Use when anyone says things like "audit this story", "review this user story", "is this story ready", "check this PBI", "does this story meet best practices", or pastes a story and asks for feedback. Don't use for creating new stories, sprint planning, or general Scrum questions. Works with ADO, Jira, or a pasted story. abrahamFerga/scrum-skills MIT