Task Estimation
When to use this skill
-
Sprint Planning: Decide what work to include in the sprint
-
Roadmap creation: Build long-term plans
-
Resource planning: Estimate team size and schedule
Instructions
Step 1: Story Points (relative estimation)
Fibonacci sequence: 1, 2, 3, 5, 8, 13, 21
Story Point guidelines
1 Point (Very Small)
- Example: text change, constant value update
- Time: 1-2 hours
- Complexity: very low
- Risk: none
2 Points (Small)
- Example: simple bug fix, add logging
- Time: 2-4 hours
- Complexity: low
- Risk: low
3 Points (Medium)
- Example: simple CRUD API endpoint
- Time: 4-8 hours
- Complexity: medium
- Risk: low
5 Points (Medium-Large)
- Example: complex form implementation, auth middleware
- Time: 1-2 days
- Complexity: medium
- Risk: medium
8 Points (Large)
- Example: new feature (frontend + backend)
- Time: 2-3 days
- Complexity: high
- Risk: medium
13 Points (Very Large)
- Example: payment system integration
- Time: 1 week
- Complexity: very high
- Risk: high
- Recommended: Split into smaller tasks
21+ Points (Epic)
- Required: Must be split into smaller stories
Step 2: Planning Poker
Process:
-
Product Owner explains the story
-
Team asks questions
-
Everyone picks a card (1, 2, 3, 5, 8, 13)
-
Reveal simultaneously
-
Explain highest/lowest scores
-
Re-vote
-
Reach consensus
Example:
Story: "Users can upload a profile photo"
Member A: 3 points (simple frontend) Member B: 5 points (image resizing needed) Member C: 8 points (S3 upload, security considerations)
Discussion:
- Use an image processing library
- S3 is already set up
- File size validation needed
Re-vote → consensus on 5 points
Step 3: T-Shirt Sizing (quick estimation)
T-Shirt sizes
- XS: 1-2 Story Points (within 1 hour)
- S: 2-3 Story Points (half day)
- M: 5 Story Points (1-2 days)
- L: 8 Story Points (1 week)
- XL: 13+ Story Points (needs splitting)
When to use:
- Initial backlog grooming
- Rough roadmap planning
- Quick prioritization
Step 4: Consider risk and uncertainty
Estimation adjustment:
interface TaskEstimate { baseEstimate: number; // base estimate risk: 'low' | 'medium' | 'high'; uncertainty: number; // 0-1 finalEstimate: number; // adjusted estimate }
function adjustEstimate(estimate: TaskEstimate): number { let buffer = 1.0;
// risk buffer if (estimate.risk === 'medium') buffer *= 1.3; if (estimate.risk === 'high') buffer *= 1.5;
// uncertainty buffer buffer *= (1 + estimate.uncertainty);
return Math.ceil(estimate.baseEstimate * buffer); }
// Example const task = { baseEstimate: 5, risk: 'medium', uncertainty: 0.2 // 20% uncertainty };
const final = adjustEstimate(task); // 5 * 1.3 * 1.2 = 7.8 → 8 points
Output format
Estimation document template
Task: [Task Name]
Description
[work description]
Acceptance Criteria
- Criterion 1
- Criterion 2
- Criterion 3
Estimation
- Story Points: 5
- T-Shirt Size: M
- Estimated Time: 1-2 days
Breakdown
- Frontend UI: 2 points
- API Endpoint: 2 points
- Testing: 1 point
Risks
- Uncertain API response time (medium risk)
- External library dependency (low risk)
Dependencies
- User authentication must be completed first
Notes
- Need to discuss design with UX team
Constraints
Required rules (MUST)
-
Relative estimation: Relative complexity instead of absolute time
-
Team consensus: Agreement from the whole team, not individuals
-
Use historical data: Plan based on velocity
Prohibited (MUST NOT)
-
Pressuring individuals: Estimates are not promises
-
Overly granular estimation: Split anything 13+ points
-
Turning estimates into deadlines: estimate ≠ commitment
Best practices
-
Break Down: Split big work into smaller pieces
-
Reference Stories: Reference similar past work
-
Include buffer: Prepare for the unexpected
References
-
Scrum Guide
-
Planning Poker
-
Story Points
Metadata
Version
-
Current version: 1.0.0
-
Last updated: 2025-01-01
-
Compatible platforms: Claude, ChatGPT, Gemini
Tags
#estimation #agile #story-points #planning-poker #sprint-planning #project-management
Examples
Example 1: Basic usage
Example 2: Advanced usage