Agile Product Owner
Backlog management and sprint execution toolkit for product owners, including user story generation, acceptance criteria patterns, sprint planning, and velocity tracking.
Table of Contents
- [User Story Generation Workflow](#user-story-generation-workflow)
- [Acceptance Criteria Patterns](#acceptance-criteria-patterns)
- [Epic Breakdown Workflow](#epic-breakdown-workflow)
- [Sprint Planning Workflow](#sprint-planning-workflow)
- [Backlog Prioritization](#backlog-prioritization)
- [Reference Documentation](#reference-documentation)
- [Tools](#tools)
User Story Generation Workflow
Create INVEST-compliant user stories from requirements:
- Identify the persona (who benefits from this feature)
- Define the action or capability needed
- Articulate the benefit or value delivered
- Write acceptance criteria using Given-When-Then
- Estimate story points using Fibonacci scale
- Validate against INVEST criteria
- Add to backlog with priority
- Validation: Story passes all INVEST criteria; acceptance criteria are testable
User Story Template
As a [persona],
I want to [action/capability],
So that [benefit/value].
Example:
As a marketing manager,
I want to export campaign reports to PDF,
So that I can share results with stakeholders who don't have system access.
Story Types
| Type | Template | Example | |------|----------|---------| | Feature | As a [persona], I want to [action] so that [benefit] | As a user, I want to filter search results so that I find items faster | | Improvement | As a [persona], I need [capability] to [goal] | As a user, I need faster page loads to complete tasks without frustration | | Bug Fix | As a [persona], I expect [behavior] when [condition] | As a user, I expect my cart to persist when I refresh the page | | Enabler | As a developer, I need to [technical task] to enable [capability] | As a developer, I need to implement caching to enable instant search |
Persona Reference
| Persona | Typical Needs | Context | |---------|--------------|---------| | End User | Efficiency, simplicity, reliability | Daily feature usage | | Administrator | Control, visibility, security | System management | | Power User | Automation, customization, shortcuts | Expert workflows | | New User | Guidance, learning, safety | Onboarding |
Acceptance Criteria Patterns
Write testable acceptance criteria using Given-When-Then format.
Given-When-Then Template
Given [precondition/context],
When [action/trigger],
Then [expected outcome].
Examples:
Given the user is logged in with valid credentials,
When they click the "Export" button,
Then a PDF download starts within 2 seconds.
Given the user has entered an invalid email format,
When they submit the registration form,
Then an inline error message displays "Please enter a valid email address."
Given the shopping cart contains items,
When the user refreshes the browser,
Then the cart contents remain unchanged.
Acceptance Criteria Checklist
Each story should include criteria for:
| Category | Example | |----------|---------| | Happy Path | Given valid input, When submitted, Then success message displayed | | Validation | Should reject input when required field is empty | | Error Handling | Must show user-friendly message when API fails | | Performance | Should complete operation within 2 seconds | | Accessibility | Must be navigable via keyboard only |
Minimum Criteria by Story Size
| Story Points | Minimum AC Count | |--------------|------------------| | 1-2 | 3-4 criteria | | 3-5 | 4-6 criteria | | 8 | 5-8 criteria | | 13+ | Split the story |
See references/user-story-templates.md for complete template library.
Epic Breakdown Workflow
Break epics into deliverable sprint-sized stories:
- Define epic scope and success criteria
- Identify all personas affected by the epic
- List all capabilities needed for each persona
- Group capabilities into logical stories
- Validate each story is ≤8 points
- Identify dependencies between stories
- Sequence stories for incremental delivery
- Validation: Each story delivers standalone value; total stories cover epic scope
Story Splitting Decision Logic
Apply these rules in order. Use the first rule that fits the story:
| # | Split Rule | When It Applies | How to Split | |---|---|---|---| | 1 | Workflow Steps | Story contains multiple sequential steps | Each step becomes its own story | | 2 | Business Rule Variations | Story introduces rule variations (e.g., pricing tiers, user roles) | Each rule variation becomes its own story | | 3 | Data Variations | Story handles different data types or formats | Each data type becomes its own story | | 4 | Complex Acceptance Criteria | Story has 8+ acceptance criteria covering distinct behaviors | Each distinct behavior cluster becomes its own story | | 5 | Major Effort | Story requires significant build effort (13+ points) | Split along effort milestones (foundation → feature → polish) | | 6 | External Dependencies | Story depends on external APIs, teams, or approvals | Split dependent and independent work into separate stories | | 7 | DevOps Effort | Story requires significant infrastructure work | Split infrastructure setup from feature implementation | | 8 | None Apply | Story is already small but unclear | Use Tiny Acts of Discovery (TADs) -- small spikes to reduce uncertainty |
Split Output Format
For each split, document:
## Original Story
As a [persona], I want to [action] so that [benefit].
Points: 13 | Status: Too large for sprint
## Suggested Splits
### Split 1: By Workflow Steps
- **Story A:** As a [persona], I want to [step 1] so that [partial benefit].
Points: 5 | Independently valuable: Yes
- **Story B:** As a [persona], I want to [step 2] so that [remaining benefit].
Points: 5 | Independently valuable: Yes
### Risks & Tradeoffs
- [What coupling exists between the split stories]
- [What is lost by delivering them separately]
### Implementation Order
1. Story A (foundation) → 2. Story B (builds on A)
Splitting Techniques (Quick Reference)
| Technique | When to Use | Example | |-----------|-------------|---------| | By workflow step | Linear process | "Checkout" → "Add to cart" + "Enter payment" + "Confirm order" | | By persona | Multiple user types | "Dashboard" → "Admin dashboard" + "User dashboard" | | By data type | Multiple inputs | "Import" → "Import CSV" + "Import Excel" | | By operation | CRUD functionality | "Manage users" → "Create" + "Edit" + "Delete" | | By business rule | Rule variations | "Discount" → "% discount" + "Fixed discount" + "BOGO" | | Happy path first | Risk reduction | "Feature" → "Basic flow" + "Error handling" + "Edge cases" | | By dependency | External blockers | "Integration" → "Mock integration" + "Live integration" | | Tiny Acts of Discovery | High uncertainty | "AI feature" → "Spike: feasibility" + "MVP implementation" |
Epic Example
Epic: User Dashboard
Breakdown:
Epic: User Dashboard (34 points total)
├── US-001: View key metrics (5 pts) - End User
├── US-002: Customize layout (5 pts) - Power User
├── US-003: Export data to CSV (3 pts) - End User
├── US-004: Share with team (5 pts) - End User
├── US-005: Set up alerts (5 pts) - Power User
├── US-006: Filter by date range (3 pts) - End User
├── US-007: Admin overview (5 pts) - Admin
└── US-008: Enable caching (3 pts) - Enabler
Sprint Planning Workflow
Plan sprint capacity and select stories:
- Calculate team capacity (velocity × availability)
- Review sprint goal with stakeholders
- Select stories from prioritized backlog
- Fill to 80-85% of capacity (committed)
- Add stretch goals (10-15% additional)
- Identify dependencies and risks
- Break complex stories into tasks
- Validation: Committed points ≤85% capacity; all stories have acceptance criteria