estimate-stories

Estimate Stories Skill

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "estimate-stories" with this command: npx skills add adolfoaranaes12/bmad-enhanced/adolfoaranaes12-bmad-enhanced-estimate-stories

Estimate Stories Skill

Purpose

Estimate story points for user stories using a structured, evidence-based formula: Story Points = (Complexity × Effort) + Risk

This provides consistent estimations that help with sprint planning, velocity tracking, and story comparison.

Core Principle: Estimation is not guessing—it's structured analysis of complexity, effort, and risk based on acceptance criteria and technical context.

Prerequisites

  • Story file exists in .claude/stories/ directory

  • Story has clear acceptance criteria

  • Understanding of project tech stack

  • Access to historical velocity data (optional)

Workflow

  1. Load Story Context

Read story file to understand:

  • User story narrative (As a... I want... So that...)

  • Acceptance criteria (what needs to be implemented)

  • Dependencies and technical notes

  • Current priority level

Load project context:

  • Team velocity baseline (from .claude/config.yaml )

  • Tech stack and known patterns

  • Historical estimation data (if available)

Example story:

User Story: As a new user, I want to create an account with email/password

Acceptance Criteria:

  • AC-1: User can enter email and password on signup form
  • AC-2: Email validated with Zod
  • AC-3: Password hashed with bcrypt
  • AC-4: Duplicate emails rejected with 409
  • AC-5: Success returns JWT token
  • AC-6: User record saved to PostgreSQL
  1. Analyze Complexity (1-5 Scale)

Complexity measures technical difficulty and cognitive load (NOT time/effort).

Quick Guide:

  • 1 (Trivial): Single file, copy-paste from existing, no edge cases

  • 2 (Simple): 2-3 files, existing patterns, minimal edge cases

  • 3 (Moderate): 4-6 files, may need new library, multiple edge cases

  • 4 (Complex): 7-12 files, multiple patterns, many error paths

  • 5 (Very Complex): 12+ files, new architecture, extensive edge cases

Consider:

  • Number of integration points (APIs, databases, services)

  • Error handling paths required

  • State management complexity

  • Data transformation complexity

For example story:

Complexity: 3 (Moderate)

  • 6 files affected (form, validation, controller, service, model, tests)
  • Multiple integration points (DB, JWT, bcrypt)
  • Several error paths (validation, duplicates, DB errors)
  • Moderate state management

See: references/complexity-scale.md for detailed scale with examples

  1. Analyze Effort (1-5 Scale)

Effort measures the volume of work regardless of difficulty.

Quick Guide:

  • 1 (Minimal): <1 hour, <50 LOC, 2-3 tests

  • 2 (Small): 1-2 hours, 50-150 LOC, 4-6 tests

  • 3 (Medium): 3-4 hours, 150-300 LOC, 7-10 tests

  • 4 (Large): 5-6 hours, 300-500 LOC, 11-15 tests

  • 5 (Very Large): >6 hours, >500 LOC, 15+ tests

Consider:

  • Number of acceptance criteria (more AC = more work)

  • Lines of code to write

  • Number of tests required

  • Documentation needs

For example story:

Effort: 3 (Medium)

  • 6 acceptance criteria
  • ~250 LOC (controller, service, validation, model)
  • ~10 tests (unit + integration)
  • 3-4 hours estimated work

See: references/effort-scale.md for detailed scale with examples

  1. Analyze Risk (0-3 Adjustment)

Risk is an adjustment factor for unknowns and potential issues.

Quick Guide:

  • 0: No significant risks

  • +1: Minor risks (unfamiliar library, some unknowns)

  • +2: Moderate risks (new pattern, integration uncertainty)

  • +3: High risks (new architecture, external dependencies, R&D needed)

Consider:

  • Team familiarity with required tech

  • External dependencies (third-party APIs)

  • Requirements clarity (vague requirements = higher risk)

  • Performance/security concerns

For example story:

Risk: +1

  • Team familiar with all tech (Zod, bcrypt, JWT, PostgreSQL)
  • Requirements clear and testable
  • Minor risk: ensuring proper bcrypt cost and JWT security

See: references/risk-factors.md for detailed risk analysis

  1. Calculate Story Points

Formula: Story Points = (Complexity × Effort) + Risk

For example story:

Complexity: 3 Effort: 3 Risk: +1

Story Points = (3 × 3) + 1 = 10 points

Story Point Scale Interpretation:

  • 1-2 points: Trivial, can complete in < 1 hour

  • 3-5 points: Small, can complete in 1-3 hours

  • 6-10 points: Medium, can complete in half day

  • 11-15 points: Large, can complete in 1 day

  • 16-20 points: Very large, consider splitting

  • 21+ points: Too large, MUST split into smaller stories

If story > 13 points: Consider splitting into smaller stories.

See: references/calculation-guide.md for examples and edge cases

  1. Provide Estimation Rationale

Document WHY this estimate:

Estimation Rationale

Story Points: 10

Complexity (3/5): Moderate

  • 6 files to modify/create
  • Multiple integration points (validation, hashing, DB, JWT)
  • Multiple error paths to handle

Effort (3/5): Medium

  • 6 acceptance criteria
  • ~250 lines of code
  • ~10 tests required
  • Estimated 3-4 hours

Risk (+1/3): Minor

  • Team familiar with tech stack
  • Requirements clear and testable
  • Minor security considerations for bcrypt/JWT

Confidence: High (80%)

  • Clear requirements
  • Standard patterns
  • No unknowns
  1. Update Story File

Add estimation block to story file:

Estimation

Story Points: 10 Estimated By: Alex (Planner) Date: 2025-01-15 Confidence: High (80%)

Breakdown:

  • Complexity: 3/5 (Moderate - 6 files, multiple integrations)
  • Effort: 3/5 (Medium - 6 AC, ~250 LOC, ~10 tests, 3-4 hours)
  • Risk: +1/3 (Minor - familiar tech, clear requirements)

Formula: (3 × 3) + 1 = 10 points

Assumptions:

  • Team familiar with Zod, bcrypt, JWT, PostgreSQL
  • Clear acceptance criteria remain stable
  • No major architectural changes needed
  1. Generate Estimation Report (Optional)

For formal estimation reviews or audits, generate comprehensive report:

Story Estimation Report

Executive Summary

  • Story: User Signup with Email/Password
  • Story Points: 10
  • Confidence: High (80%)
  • Recommendation: Ready for sprint planning

Detailed Analysis

[Complexity, Effort, Risk breakdown]

Comparable Stories

  • story-auth-002-login: 8 points (similar complexity, slightly less effort)
  • story-auth-003-password-reset: 13 points (more complex flow)

Assumptions & Risks

[List key assumptions]

Sprint Planning Notes

  • Can be completed in 1 sprint (assuming 2-week sprint)
  • No blocking dependencies
  • Suitable for mid-level developer

See: references/report-templates.md for full report format

Batch Estimation

For multiple stories:

  • Load all stories

  • Estimate each using same process

  • Compare estimates for consistency

  • Adjust if similar stories have very different estimates

  • Generate summary report

Tips for consistency:

  • Use same reference points

  • Compare with recently estimated similar stories

  • Document rationale for each estimate

  • Flag outliers for review

Calibration and Adjustment

After sprint completes:

  • Compare estimated vs actual story points

  • Identify patterns in over/under-estimation

  • Adjust future estimates based on learnings

  • Update complexity/effort/risk scales if needed

Example:

Story estimated: 10 points Actual velocity: 13 points (30% under-estimated)

Reason: Underestimated integration complexity

Learning: Increase complexity score for multi-API integrations

Common Scenarios

Story Seems Too Large (>13 points)

Approach:

  • Identify if complexity, effort, or both are high

  • Look for natural split points in acceptance criteria

  • Split into multiple smaller stories

  • Re-estimate each smaller story

Example:

Original: User Profile (21 points) Split into:

  • User Profile - Basic Info (8 points)
  • User Profile - Avatar Upload (8 points)
  • User Profile - Preferences (5 points)

Uncertainty in Estimation

If confidence < 60%:

  • Identify sources of uncertainty

  • Add risk adjustment

  • Consider spike story for research

  • Document assumptions clearly

Team Disagreement on Estimate

Approach:

  • Each person explains their reasoning

  • Identify where views differ (complexity/effort/risk)

  • Discuss until consensus or average estimates

  • Document the final rationale

See: references/estimation-scenarios.md for complex cases

Best Practices

  • Be consistent - Use same criteria for all stories

  • Compare similar stories - Check recent similar estimates

  • Document rationale - Explain WHY, not just WHAT

  • Calibrate regularly - Adjust based on actual velocity

  • Split large stories - > 13 points should be split

  • Include the team - Discuss estimates with implementers

  • Track confidence - Low confidence = higher risk adjustment

Reference Files

  • references/complexity-scale.md

  • Detailed 1-5 complexity scale with examples

  • references/effort-scale.md

  • Detailed 1-5 effort scale with examples

  • references/risk-factors.md

  • Risk analysis framework (0-3)

  • references/calculation-guide.md

  • Formula examples and edge cases

  • references/report-templates.md

  • Comprehensive report formats

  • references/estimation-scenarios.md

  • Complex scenarios and solutions

When to Escalate

  • Story is very large (>20 points) and can't be split

  • High uncertainty even after analysis (confidence < 40%)

  • Team has no experience with required technology

  • Requires significant architectural changes

  • Story depends on many external factors

Part of BMAD Enhanced Planning Suite

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

analyze-architecture

No summary provided by upstream source.

Repository SourceNeeds Review
General

document-project

No summary provided by upstream source.

Repository SourceNeeds Review
General

quality-gate

No summary provided by upstream source.

Repository SourceNeeds Review
General

run-tests

No summary provided by upstream source.

Repository SourceNeeds Review