Skip to content

Story Point Estimation Guide

CMS Planner uses Fibonacci sequence-based story point estimation to account for increasing uncertainty with larger tasks. This guide explains the framework and how to apply it effectively.

Fibonacci Sequence

Story points follow the Fibonacci sequence: 1, 2, 3, 5, 8, 13, 21, 34+

Why Fibonacci?

  • Uncertainty increases non-linearly - Larger tasks have more unknowns
  • Prevents false precision - Gap between numbers acknowledges uncertainty
  • Forces decomposition - Very large numbers indicate tasks need breaking down
  • Industry standard - Widely used in Agile/Scrum methodologies

Story Point Scale

Points Time Estimate Complexity Examples
1 <2 hours Trivial Update footer text, change button color, fix typo
2 2-4 hours Simple Add form validation, create basic component, simple bug fix
3 4-8 hours (1 day) Standard Implement search filter, CRUD API endpoint, standard feature with tests
5 2-3 days Complex Auth flow, payment gateway, multi-component feature
8 3-5 days Major Real-time notifications, complex dashboard, architecture decisions
13 1-2 weeks Epic User management system, e-commerce checkout, should be broken down
21 2-3 weeks Large Epic Complete theme, full content model, must be broken down
34+ >3 weeks Too Large Must be decomposed into smaller epics before planning

What Story Points Measure

Story points measure complexity and effort, not just time:

Factors Considered

  1. Complexity - How difficult is the work?
  2. Uncertainty - How well understood is the requirement?
  3. Effort - How much work is involved?
  4. Dependencies - What else must be complete first?
  5. Risk - What could go wrong?

NOT Time Estimates

While we provide time ranges for reference, story points are relative measures of effort.

  • 5 points for Developer A might take 2 days
  • 5 points for Developer B might take 3 days
  • Both are still 5 points of complexity

Estimation Best Practices

Include Everything

Story points should include time for:

  • Implementation - Writing the code
  • Testing - Unit, integration, manual testing
  • Code review - Review cycle and revisions
  • Documentation - Code comments, README updates
  • Deployment - Configuration, deployment steps
  • Bug fixes - Addressing issues found in testing

Consider Complexity Factors

  • Technical complexity - Algorithm difficulty, architecture decisions
  • Integration complexity - Number of systems/components to integrate
  • Unknown requirements - Ambiguity or research needed
  • Team experience - Familiarity with technology
  • Dependencies - Blocking or parallel work

Add Uncertainty Buffer

  • Higher points = more buffer - 21 points has more uncertainty than 3 points
  • Unknown tech = higher points - New framework? Add buffer
  • Vague requirements = higher points - Unclear acceptance criteria? Add buffer
  • External dependencies = higher points - Waiting on third parties? Add buffer

Recipe-Based Projects

For Drupal recipes and similar architectures, estimate separately:

  1. Recipe creation (8-13 points)
  2. Define configuration entities
  3. Export configuration
  4. Organize structure
  5. Test clean installation

  6. Configuration export (2-3 points per entity)

  7. Content type configuration
  8. View configuration
  9. Field configuration

  10. Testing (3-5 points per recipe)

  11. Clean installation test
  12. Dependency testing
  13. Field storage verification

  14. Documentation (2-3 points per recipe)

  15. README file
  16. Installation instructions
  17. Dependency documentation

  18. Demo content (5-8 points per recipe)

  19. Create sample content
  20. Export with Default Content
  21. Verify import works

Velocity Calculation

Team velocity is the average story points completed per sprint.

Formula

Velocity = (Team Size × Hours/Sprint × Productive %) / Hours per Point

Example Calculation

Team: - 3 developers - 2-week sprints (80 hours/developer) - 70% productive time (30% for meetings, admin, etc.) - 6 hours per story point (team average)

Calculation:

3 developers × 80 hours × 0.70 / 6 hours per point = 28 points per sprint

Calibrating Velocity

After a few sprints, use historical data:

  1. Track completed points per sprint
  2. Calculate average over 3-5 sprints
  3. Adjust estimates if consistently over/under
  4. Re-calibrate when team changes

Breaking Down Large Items

13 Points: Should Break Down

13-point items should typically be broken into smaller stories:

Example: User Management System [13 points]

Break into: - User Registration Flow [5 points] - User Login Flow [3 points] - Password Reset [2 points] - Profile Management [3 points]

Total: 13 points (same estimate, but broken down)

21 Points: Must Break Down

21-point items are too large for a single sprint and must be decomposed:

Example: Complete Theme Development [21 points]

Break into: - Base Theme Setup [5 points] - Component Library [8 points] - Page Templates [5 points] - Responsive Styles [3 points]

Total: 21 points (spread across multiple sprints)

34+ Points: Decompose First

Items over 34 points should be broken into multiple epics:

Example: E-commerce Platform [89 points]

Break into epics: - Product Management [21 points] - Shopping Cart [13 points] - Checkout Flow [21 points] - Payment Processing [13 points] - Order Management [21 points]

Total: 89 points (5 epics)

Estimation Workshop

Planning Poker

  1. Present user story - Product owner explains requirement
  2. Ask questions - Team clarifies understanding
  3. Individual estimates - Each person picks a card (1, 2, 3, 5, 8, 13, 21)
  4. Reveal simultaneously - Everyone shows their card
  5. Discuss differences - Highest and lowest explain reasoning
  6. Re-estimate - Repeat until consensus

Relative Estimation

Compare to known tasks:

  • "This is about the same as the login form we built" → 5 points
  • "This is more complex than search but simpler than checkout" → between 8 and 13
  • "This is twice as complex as the user profile" → double the points

T-Shirt Sizing (Initial Estimates)

For rough initial estimates, use T-shirt sizes:

  • XS → 1-2 points
  • S → 3-5 points
  • M → 8 points
  • L → 13 points
  • XL → 21 points
  • XXL → Must decompose

Convert to Fibonacci numbers for sprint planning.

Common Estimation Mistakes

❌ Too Precise

Wrong: "This is 4.5 story points" Right: "This is between 3 and 5, let's call it 5"

Story points are relative, not precise time measurements.

❌ Time-Based Thinking

Wrong: "8 hours = 1 day = 8 points" Right: "This is more complex than a 5-pointer but less than a 13"

Think complexity, not time.

❌ Individual Capacity

Wrong: "I can do 40 points this sprint" Right: "Our team velocity is 28 points per sprint"

Story points are team-based, not individual.

❌ Ignoring Uncertainty

Wrong: "We've done this before, it's still 5 points even with new tech" Right: "New tech adds uncertainty, this is 8 points"

Higher uncertainty = higher points.

❌ Not Including Everything

Wrong: "5 points for coding" (forgetting testing, review, documentation) Right: "5 points for full implementation including tests and review"

Include all work in the estimate.

Re-estimation

When to Re-estimate

  • Requirements change significantly
  • Technical approach changes
  • New information discovered
  • Team composition changes
  • Velocity consistently off

How to Re-estimate

  1. Review original estimate and reasoning
  2. Identify what changed - new requirements? tech change?
  3. Estimate new work separately if possible
  4. Adjust total - add points for new complexity
  5. Document change - note why re-estimated

Example

Original: API Integration [5 points] - Simple REST API - JSON response - Standard authentication

Re-estimated: API Integration [13 points] - Discovered: SOAP API (not REST) - XML parsing required - OAuth 2.0 with refresh tokens - Rate limiting to handle

Reasoning: Complexity increased significantly with legacy SOAP API and OAuth requirements.

Story Points in FRDs

CMS Planner includes story points throughout the FRD:

In Requirements Section

## FR-001: saplings_person Recipe [MUST HAVE]

**Story Points:** 34 points

- Recipe creation and config export: 13 points
- Field definitions (including shared storage): 8 points
- Views and Pathauto configuration: 5 points
- Testing and documentation: 5 points
- Demo content creation: 3 points

In Implementation Plan

## Phase 2: Core Recipes [168 points]

### Epic 1: saplings_person Recipe [34 points]
- Story 1: Content type and fields [13 points]
- Story 2: Taxonomies and views [8 points]
- Story 3: Pathauto and metatag [5 points]
- Story 4: Demo content [3 points]
- Story 5: Testing and documentation [5 points]

In CSV Backlog

Tasklist,Task,Tags
"Phase 2","[EPIC] saplings_person [34 points]","SP-34,Phase-2"
"Phase 2","- [STORY] Content type [13 points]","SP-13,Phase-2"
"Phase 2","-- [TASK] Field definitions [5 points]","SP-5,Phase-2"

Resources

Getting Help


Next: Teamwork Import | Recipe Projects