GitScrum / Docs
All Best Practices

Story Points vs Effort Points | Estimation Guide

Understand story points vs effort points for accurate estimation. GitScrum uses T-shirt sizing (XS-XL) with hour guidelines for intuitive sprint planning.

9 min read

Story points and effort points both measure work complexity, but they approach estimation differently. GitScrum uses effort points with a simplified scale (XS to XL) that includes hour guidelines, making estimation more accessible for teams while maintaining the relative sizing benefits of story points.

Comparison Overview

AspectStory PointsEffort Points (GitScrum)
ScaleFibonacci (1,2,3,5,8,13,21)T-shirt (XS,S,M,L,XL)
AbstractionHigh (relative only)Medium (with hour guides)
Learning curveSteeperGentler
Time referenceNoneOptional guidelines
VelocityPoints/sprintPoints/sprint

Understanding Story Points

TRADITIONAL STORY POINTS
════════════════════════

CONCEPT:
─────────────────────────────────────
Story points measure RELATIVE complexity
Not hours, not days - pure comparison

"How complex is Task B compared to Task A?"
If Task A = 3 points and Task B is twice as complex
Then Task B = 5 or 8 points

FIBONACCI SCALE:
─────────────────────────────────────
1  - Trivial (reference baseline)
2  - Simple
3  - Small
5  - Medium
8  - Large
13 - Very large
21 - Epic (should be broken down)

WHY FIBONACCI?
─────────────────────────────────────
β”œβ”€β”€ Uncertainty grows with size
β”œβ”€β”€ Harder to distinguish 14 vs 15
β”œβ”€β”€ Gaps force meaningful choices
└── Reflects natural estimation limits

EXAMPLE:
─────────────────────────────────────
Reference task: "Add validation to form" = 3 pts

Comparing new tasks:
β”œβ”€β”€ "Change button color" β†’ smaller β†’ 1 pt
β”œβ”€β”€ "Add date picker" β†’ similar β†’ 3 pts
β”œβ”€β”€ "Build user dashboard" β†’ much larger β†’ 13 pts
└── "Implement auth system" β†’ epic β†’ 21 pts (split!)

Understanding Effort Points

GITSCRUM EFFORT POINTS
══════════════════════

CONCEPT:
─────────────────────────────────────
Effort points combine relative sizing
with optional hour guidelines

Same relative comparison benefits
Plus practical time references

T-SHIRT SCALE WITH HOURS:
─────────────────────────────────────
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Size   β”‚ Points  β”‚ Typical Duration    β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ XS     β”‚ 1       β”‚ Under 2 hours       β”‚
β”‚ S      β”‚ 2       β”‚ 2-4 hours           β”‚
β”‚ M      β”‚ 3       β”‚ 4-8 hours (1 day)   β”‚
β”‚ L      β”‚ 5       β”‚ 1-2 days            β”‚
β”‚ XL     β”‚ 8       β”‚ 2-5 days            β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

WHY THIS WORKS:
─────────────────────────────────────
β”œβ”€β”€ Simple to understand
β”œβ”€β”€ Only 5 options to choose from
β”œβ”€β”€ Hour guides reduce debates
β”œβ”€β”€ Still enables velocity tracking
└── Works for new and experienced teams

EXAMPLE:
─────────────────────────────────────
Task: "Add user profile editing"

Breaking it down:
β”œβ”€β”€ Quick fix? Under 2 hrs? β†’ XS (1 pt)
β”œβ”€β”€ Half day work? β†’ S (2 pts)
β”œβ”€β”€ Full day effort? β†’ M (3 pts)
β”œβ”€β”€ Couple of days? β†’ L (5 pts)
└── Week of work? β†’ XL (8 pts)

Team consensus: "About 2 days" β†’ L (5 pts)

When to Use Each

CHOOSING YOUR APPROACH
══════════════════════

USE EFFORT POINTS WHEN:
─────────────────────────────────────
βœ“ Team is new to agile estimation
βœ“ Stakeholders ask "how long?"
βœ“ Need concrete planning references
βœ“ Mixed experience levels on team
βœ“ Simpler is better for your context
βœ“ Converting from hour-based estimates

USE STORY POINTS WHEN:
─────────────────────────────────────
βœ“ Team has mature estimation practice
βœ“ Abstract complexity works well
βœ“ Fibonacci granularity needed
βœ“ Team resists time associations
βœ“ Large variance in individual speeds
βœ“ Already have established velocity

HYBRID APPROACH:
─────────────────────────────────────
GitScrum effort points support both:
β”œβ”€β”€ Use T-shirt sizes (visual)
β”œβ”€β”€ Track point values (numeric)
β”œβ”€β”€ Reference hours (optional)
└── Calculate velocity (same as story points)

Estimation Techniques

HOW TO ESTIMATE
═══════════════

PLANNING POKER:
─────────────────────────────────────
1. Present the task/story
2. Discuss requirements
3. Everyone picks size simultaneously
4. Reveal choices
5. Discuss outliers
6. Re-vote if needed
7. Consensus or average

Example session:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Task: "Implement password reset"    β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Vote 1:                             β”‚
β”‚ Dev A: M    Dev B: L    Dev C: M    β”‚
β”‚                                     β”‚
β”‚ Discussion: "What about email?"     β”‚
β”‚ Dev B: "Forgot about template"      β”‚
β”‚                                     β”‚
β”‚ Vote 2:                             β”‚
β”‚ Dev A: M    Dev B: M    Dev C: M    β”‚
β”‚                                     β”‚
β”‚ Consensus: M (3 points)             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

T-SHIRT SIZING:
─────────────────────────────────────
Quick relative sizing method:

1. Sort tasks by complexity
2. Assign T-shirt sizes
3. Convert to points

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ XS β”‚ S β”‚ M β”‚ L β”‚ XL β”‚                  β”‚
β”œβ”€β”€β”€β”€β”Όβ”€β”€β”€β”Όβ”€β”€β”€β”Όβ”€β”€β”€β”Όβ”€β”€β”€β”€β”€                  β”‚
β”‚ T1 β”‚T2 β”‚T4 β”‚T6 β”‚ T8 β”‚ ← Tasks sorted   β”‚
β”‚    β”‚T3 β”‚T5 β”‚T7 β”‚    β”‚                  β”‚
β”‚    β”‚   β”‚   β”‚   β”‚    β”‚                  β”‚
β””β”€β”€β”€β”€β”΄β”€β”€β”€β”΄β”€β”€β”€β”΄β”€β”€β”€β”΄β”€β”€β”€β”€β”˜

REFERENCE COMPARISON:
─────────────────────────────────────
1. Establish reference tasks per size
2. Compare new tasks to references
3. Match to closest reference

Reference library:
β”œβ”€β”€ XS: "Update config value"
β”œβ”€β”€ S:  "Add form validation"
β”œβ”€β”€ M:  "Create new API endpoint"
β”œβ”€β”€ L:  "Build dashboard widget"
└── XL: "Implement integration"

Sprint Planning with Points

CAPACITY PLANNING
═════════════════

CALCULATING CAPACITY:
─────────────────────────────────────
Team: 4 developers
Sprint: 2 weeks (10 working days)
Historical velocity: 35-40 pts/sprint

Available capacity:
β”œβ”€β”€ Account for PTO, meetings
β”œβ”€β”€ Include buffer for unknowns
└── Don't overcommit

Example:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ SPRINT CAPACITY                     β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Historical velocity: 38 pts avg     β”‚
β”‚ This sprint:                        β”‚
β”‚ β”œβ”€β”€ Dev A: Full (10 days)           β”‚
β”‚ β”œβ”€β”€ Dev B: Full (10 days)           β”‚
β”‚ β”œβ”€β”€ Dev C: 8 days (2 PTO)           β”‚
β”‚ └── Dev D: Full (10 days)           β”‚
β”‚                                     β”‚
β”‚ Adjusted capacity: 38 Γ— 0.9 = 34 ptsβ”‚
β”‚ Buffer (10%): 3 pts                 β”‚
β”‚ Safe commitment: 31 pts             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

SPRINT BACKLOG:
─────────────────────────────────────
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Story/Task            β”‚ Effort     β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ User profile editing  β”‚ L (5 pts)  β”‚
β”‚ Password reset flow   β”‚ M (3 pts)  β”‚
β”‚ Dashboard widgets     β”‚ L (5 pts)  β”‚
β”‚ API rate limiting     β”‚ M (3 pts)  β”‚
β”‚ Bug: Login timeout    β”‚ S (2 pts)  β”‚
β”‚ Email notifications   β”‚ L (5 pts)  β”‚
β”‚ Settings page         β”‚ M (3 pts)  β”‚
β”‚ Documentation update  β”‚ S (2 pts)  β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ TOTAL COMMITTED       β”‚ 28 pts     β”‚
β”‚ Buffer remaining      β”‚ 3 pts      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Velocity Tracking

MEASURING VELOCITY
══════════════════

WHAT IS VELOCITY?
─────────────────────────────────────
Points completed per sprint
Average over time = predictable capacity

Sprint    β”‚ Committed β”‚ Completed
──────────┼───────────┼──────────
Sprint 1  β”‚ 35 pts    β”‚ 32 pts
Sprint 2  β”‚ 35 pts    β”‚ 36 pts
Sprint 3  β”‚ 38 pts    β”‚ 35 pts
Sprint 4  β”‚ 35 pts    β”‚ 38 pts
Sprint 5  β”‚ 38 pts    β”‚ 37 pts
──────────┼───────────┼──────────
Average   β”‚           β”‚ 35.6 pts

VELOCITY CHART:
─────────────────────────────────────
Points β”‚
   40  β”‚      β–          β– 
       β”‚  β–        β–          β– 
   35  │──────────────────────  Average
       β”‚
   30  β”‚  β– 
       β”‚
   25  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
       S1  S2  S3  S4  S5  S6

USING VELOCITY:
─────────────────────────────────────
β”œβ”€β”€ Plan future sprints
β”œβ”€β”€ Project completion dates
β”œβ”€β”€ Identify capacity changes
β”œβ”€β”€ Detect estimation drift
└── Communicate with stakeholders

Example projection:
Remaining work: 180 points
Velocity: 36 pts/sprint
Estimated sprints: 5 (10 weeks)

Common Mistakes

ESTIMATION ANTI-PATTERNS
════════════════════════

MISTAKE 1: CONVERTING TO HOURS
─────────────────────────────────────
❌ "1 point = 4 hours"
❌ "How many hours is an L?"
❌ Treating points as time units

βœ“ Points measure complexity, not time
βœ“ Hour guides are references, not rules
βœ“ Velocity normalizes over time

MISTAKE 2: INDIVIDUAL ESTIMATES
─────────────────────────────────────
❌ "This is 5 points for me"
❌ Adjusting for individual speed
❌ Different scales per person

βœ“ Team estimates (consensus)
βœ“ Single scale for all
βœ“ Velocity accounts for team mix

MISTAKE 3: NEVER RECALIBRATING
─────────────────────────────────────
❌ Same references forever
❌ Ignoring estimation drift
❌ Not reviewing actuals

βœ“ Revisit reference tasks quarterly
βœ“ Compare estimates to actuals
βœ“ Adjust as team changes

MISTAKE 4: OVER-PRECISION
─────────────────────────────────────
❌ "This is exactly 4.5 points"
❌ Debating XS vs S for 20 minutes
❌ Analysis paralysis

βœ“ Accept estimation uncertainty
βœ“ Round to nearest size
βœ“ Timebox discussions (2 min/item)

Best Practices

  • Estimate as a team - consensus builds shared understanding
  • Use reference tasks - compare, don't calculate
  • Track velocity - patterns emerge over 5+ sprints
  • Include everything - testing, review, documentation
  • Split large items - nothing over XL/8 points
  • Timebox estimation - 2 minutes per item max
  • Review regularly - retro on estimation accuracy
  • Trust the process - velocity normalizes variance
  • GitScrum Setup

    CONFIGURING EFFORT POINTS
    ═════════════════════════
    
    TASK ESTIMATION:
    ─────────────────────────────────────
    When creating/editing a task:
    1. Open task details
    2. Find Effort field
    3. Select size: XS, S, M, L, XL
    4. Points auto-calculated
    
    SPRINT PLANNING VIEW:
    ─────────────────────────────────────
    Sprint backlog shows:
    β”œβ”€β”€ Total committed points
    β”œβ”€β”€ Capacity threshold
    β”œβ”€β”€ Individual task efforts
    └── Progress tracking
    
    VELOCITY REPORTS:
    ─────────────────────────────────────
    Workspace β†’ Reports β†’ Sprint KPIs
    β”œβ”€β”€ Points per sprint
    β”œβ”€β”€ Completion rates
    β”œβ”€β”€ Burndown progression
    └── Trend analysis
    

    Related Solutions