project-management
Sprint Planning Guide
Run effective sprint planning sessions — from backlog refinement through capacity allocation, commitment, and sprint goal definition with clear acceptance criteria.
sprint-planningagilebacklogcapacitycommitment
Works well with agents
Works well with skills
sprint-planning-guide/
payments-team-sprint-8.md
Markdown| 1 | # Sprint Planning: Payments Team — Sprint 8 |
| 2 | |
| 3 | - **Sprint dates**: March 16 – March 27, 2026 (2-week sprint) |
| 4 | - **Team**: @alex (tech lead), @maria (backend), @chris (backend), @priya (QA), @lin (devops) |
| 5 | - **Previous sprint velocity**: 34 points (3-sprint average: 31 points) |
| 6 | |
| 7 | --- |
| 8 | |
| 9 | ## Capacity Calculation |
| 10 | |
| 11 | | Team Member | Available Days | Focus Factor | Effective Days | |
| 12 | |-------------|---------------|-------------|----------------| |
| 13 | | @alex | 10 | 0.7 (hiring interviews) | 7.0 | |
| 14 | | @maria | 10 | 0.8 | 8.0 | |
| 15 | | @chris | 8 (PTO Mar 26-27) | 0.8 | 6.4 | |
| 16 | | @priya | 10 | 0.8 | 8.0 | |
| 17 | | @lin | 10 | 0.6 (on-call + infra migration support) | 6.0 | |
| 18 | | **Total** | **48** | | **35.4** | |
| 19 | |
| 20 | Effective capacity is ~88% of typical. Against a 31-point average velocity, plan for **27 points**. |
| 21 | |
| 22 | --- |
| 23 | |
| 24 | ## Sprint Goal |
| 25 | |
| 26 | **Merchants can view and export their payout history for the last 12 months.** |
| 27 | |
| 28 | This is achieved when: |
| 29 | 1. The payout history API returns paginated results filtered by date range |
| 30 | 2. The dashboard displays payout history with status, amount, and date |
| 31 | 3. Merchants can export payout history as CSV |
| 32 | 4. Error states (no payouts, failed exports) are handled gracefully |
| 33 | |
| 34 | --- |
| 35 | |
| 36 | ## Committed Stories |
| 37 | |
| 38 | | ID | Title | Points | Owner | Dependencies | |
| 39 | |----|-------|--------|-------|-------------| |
| 40 | | PAY-401 | Build payout history API endpoint with date range filtering | 5 | @maria | None | |
| 41 | | PAY-402 | Add payout history table to merchant dashboard | 5 | @chris | PAY-401 (API contract only — can stub) | |
| 42 | | PAY-403 | Implement CSV export for payout history | 3 | @maria | PAY-401 | |
| 43 | | PAY-404 | Add pagination to payout history API and UI | 3 | @chris | PAY-401, PAY-402 | |
| 44 | | PAY-405 | Write integration tests for payout history flow | 3 | @priya | PAY-401, PAY-402 | |
| 45 | | PAY-390 | *Carryover*: Fix settlement rounding error on multi-currency payouts | 2 | @alex | None | |
| 46 | | PAY-398 | *Tech debt*: Migrate payment webhook handler from Express callback to async/await | 3 | @alex | None | |
| 47 | | PAY-399 | *Bug*: Payout status webhook not retrying on 5xx from merchant endpoint | 3 | @lin | None | |
| 48 | |
| 49 | **Total committed: 27 points** | Capacity: 27 points | 3-sprint velocity avg: 31 points |
| 50 | |
| 51 | **Maintenance allocation**: 8 points (30%) — PAY-390, PAY-398, PAY-399. Above the 15-20% guideline due to the carryover bug and a high-severity webhook issue reported by a merchant last week. |
| 52 | |
| 53 | --- |
| 54 | |
| 55 | ## Sprint Backlog Notes |
| 56 | |
| 57 | - PAY-401 and PAY-402 can start in parallel: @chris will develop against the agreed API contract (documented in PAY-401 ticket) while @maria builds the actual endpoint |
| 58 | - PAY-403 (CSV export) starts after PAY-401 is merged — estimated day 4 |
| 59 | - PAY-390 is a carryover from sprint 7. @alex has the fix ready; it needs a code review and a test for the JPY/USD edge case |
| 60 | - PAY-399 was escalated by the Acme Corp merchant. @lin will prioritize this in the first 2 days |
| 61 | |
| 62 | --- |
| 63 | |
| 64 | ## Risks |
| 65 | |
| 66 | | Risk | Impact on Sprint Goal | Mitigation | Owner | |
| 67 | |------|----------------------|------------|-------| |
| 68 | | Payout data model may need a migration for the date range index | Delays PAY-401 by 1-2 days if index backfill is slow on the 4M-row table | Run `EXPLAIN ANALYZE` on day 1; if full scan, add index concurrently and accept day 2 start for API work | @maria | |
| 69 | | @alex's hiring interviews may consume more than 30% capacity | Carryover bug (PAY-390) slips again | If interviews exceed 3 hours/day, @maria picks up PAY-390 review | @alex | |
| 70 | | Acme Corp may escalate the webhook issue (PAY-399) with additional requirements | Scope creep on the bug fix | @lin will fix the retry logic only; any new webhook features go to a separate ticket | @lin | |
| 71 | |
| 72 | --- |
| 73 | |
| 74 | ## What We're NOT Doing This Sprint |
| 75 | |
| 76 | - Payout history filtering by status (planned for sprint 9) |
| 77 | - PDF export — CSV only for now |
| 78 | - Real-time payout notifications (separate epic, not started) |
| 79 | - Dashboard redesign — we're adding the table to the existing layout |
| 80 |