Project Time Estimation | Velocity & Effort Points
Estimate projects accurately with effort points, team velocity, and time tracking. GitScrum provides burndown charts and historical data for forecasting.
9 min read
Accurate time estimation separates successful projects from failed ones. By combining effort points for complexity, historical velocity for capacity, and time tracking for validation, development teams can move from guesswork to data-driven project planning that stakeholders can trust.
Estimation Components
| Component | Purpose | GitScrum Feature |
|---|---|---|
| Effort Points | Task complexity sizing | XS, S, M, L, XL scale |
| Velocity | Team capacity per sprint | Sprint KPIs |
| Time Tracking | Actual hours spent | Timer, manual entries |
| Burndown | Progress visualization | Sprint charts |
| Historical Data | Estimate calibration | Reports |
The Estimation Process
PROJECT ESTIMATION WORKFLOW
βββββββββββββββββββββββββββ
PHASE 1: REQUIREMENTS BREAKDOWN
βββββββββββββββββββββββββββββββββββββ
Epic β User Stories β Tasks
Project: "User Authentication System"
β
βββ Epic: Authentication
β βββ Story: Login flow
β β βββ Task: Login UI
β β βββ Task: API endpoint
β β βββ Task: Session management
β βββ Story: Registration
β β βββ Task: Registration form
β β βββ Task: Email verification
β β βββ Task: User storage
β βββ Story: Password reset
β βββ Task: Reset request UI
β βββ Task: Email service
β βββ Task: Token handling
β
βββ Total: 3 stories, 9 tasks
PHASE 2: EFFORT ESTIMATION
βββββββββββββββββββββββββββββββββββββ
Assign effort points to each task:
ββββββββββββββββββββββββββββββββββββββββββ
β Task β Effort β
βββββββββββββββββββββββββββΌβββββββββββββββ€
β Login UI β M (3 pts) β
β Login API endpoint β M (3 pts) β
β Session management β L (5 pts) β
β Registration form β M (3 pts) β
β Email verification β L (5 pts) β
β User storage β S (2 pts) β
β Reset request UI β S (2 pts) β
β Email service β M (3 pts) β
β Token handling β M (3 pts) β
βββββββββββββββββββββββββββΌβββββββββββββββ€
β TOTAL β 29 points β
βββββββββββββββββββββββββββ΄βββββββββββββββ
PHASE 3: VELOCITY CALCULATION
βββββββββββββββββββββββββββββββββββββ
Team velocity: 35 pts/sprint (2 weeks)
Project points: 29 pts
Sprints needed: 29 Γ· 35 = 0.83 sprints
With buffer (20%): ~1 sprint
Estimated duration: 2 weeks
Velocity-Based Forecasting
USING VELOCITY FOR ESTIMATES
ββββββββββββββββββββββββββββ
CALCULATING VELOCITY:
βββββββββββββββββββββββββββββββββββββ
Average points completed per sprint
Sprint History:
βββ Sprint 1: 32 pts completed
βββ Sprint 2: 36 pts completed
βββ Sprint 3: 35 pts completed
βββ Sprint 4: 38 pts completed
βββ Sprint 5: 34 pts completed
Average velocity: 35 pts/sprint
Range: 32-38 pts (for confidence intervals)
PROJECT FORECAST:
βββββββββββββββββββββββββββββββββββββ
Total backlog: 180 points
Optimistic (38 pts/sprint):
180 Γ· 38 = 4.7 sprints = 5 sprints = 10 weeks
Expected (35 pts/sprint):
180 Γ· 35 = 5.1 sprints = 6 sprints = 12 weeks
Conservative (32 pts/sprint):
180 Γ· 32 = 5.6 sprints = 6 sprints = 12 weeks
PRESENT AS RANGE:
βββββββββββββββββββββββββββββββββββββ
"The project will take 10-12 weeks,
with 12 weeks being more likely."
This is more honest than a single date.
Time Tracking Integration
VALIDATING ESTIMATES WITH TIME DATA
βββββββββββββββββββββββββββββββββββ
TRACKING ACTUAL TIME:
βββββββββββββββββββββββββββββββββββββ
For each task, track:
βββ Estimated effort (points)
βββ Estimated hours (optional guide)
βββ Actual hours (time tracking)
βββ Variance (estimated vs actual)
Example:
ββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Task β Effort β Est Hrs β Act Hrs β
βββββββββββββββββββββΌβββββββββΌββββββββββΌβββββββββββββ€
β Login UI β M (3) β 4-8 β 6 β
β Login API β M (3) β 4-8 β 5 β
β Session mgmt β L (5) β 8-16 β 14 β
β Registration form β M (3) β 4-8 β 7 β
β Email verify β L (5) β 8-16 β 18 β οΈ β
βββββββββββββββββββββ΄βββββββββ΄ββββββββββ΄βββββββββββββ
β οΈ Email verification took longer than expected
β Record why for future estimates
CALIBRATION:
βββββββββββββββββββββββββββββββββββββ
After several sprints, patterns emerge:
βββ "L tasks average 12 hours"
βββ "Integration tasks take +30%"
βββ "New technology adds +50%"
βββ "Complex UI needs +20%"
Use these insights to improve estimates.
Estimation Techniques
METHODS FOR ACCURATE ESTIMATES
ββββββββββββββββββββββββββββββ
TECHNIQUE 1: REFERENCE COMPARISON
βββββββββββββββββββββββββββββββββββββ
Compare new work to completed work
Reference library:
βββ XS: "Config change" (1-2 hrs)
βββ S: "Add validation" (2-4 hrs)
βββ M: "New API endpoint" (4-8 hrs)
βββ L: "Dashboard widget" (1-2 days)
βββ XL: "Integration" (2-5 days)
New task: "Create user list API"
β Similar to "New API endpoint" = M (3 pts)
TECHNIQUE 2: THREE-POINT ESTIMATION
βββββββββββββββββββββββββββββββββββββ
Best case + Most likely + Worst case
Task: "Implement OAuth login"
Optimistic (O): 8 hours (everything smooth)
Most likely (M): 16 hours (normal issues)
Pessimistic (P): 32 hours (major problems)
PERT estimate: (O + 4M + P) Γ· 6
= (8 + 64 + 32) Γ· 6 = 17.3 hours
TECHNIQUE 3: DECOMPOSITION
βββββββββββββββββββββββββββββββββββββ
Break large items into smaller pieces
"Build reporting dashboard" (too big)
β
βββ Design report layout (S)
βββ Create data queries (M)
βββ Build chart components (L)
βββ Add export function (M)
βββ Implement filters (M)
Total: 2+3+5+3+3 = 16 points
Much more accurate than guessing "XL"
Buffer Management
PLANNING FOR UNCERTAINTY
ββββββββββββββββββββββββ
WHY BUFFERS ARE ESSENTIAL:
βββββββββββββββββββββββββββββββββββββ
βββ Unknown requirements emerge
βββ Technical challenges appear
βββ Dependencies cause delays
βββ Team capacity varies
βββ Bugs need fixing
βββ Scope changes happen
BUFFER CALCULATION:
βββββββββββββββββββββββββββββββββββββ
Base estimate: 100 points
Risk level: Medium
Buffer percentages:
βββ Low risk (known tech, clear reqs): 10%
βββ Medium risk (some unknowns): 20%
βββ High risk (new tech, unclear reqs): 30-50%
For medium risk:
100 pts Γ 1.20 = 120 points to plan
APPLYING BUFFERS:
βββββββββββββββββββββββββββββββββββββ
Method 1: Add to total
βββ Estimate: 100 pts
βββ Buffer: 20 pts
βββ Plan for: 120 pts
Method 2: Reduce velocity assumption
βββ Velocity: 35 pts/sprint
βββ Plan with: 28 pts/sprint (80%)
βββ Same effect, cleaner tracking
Method 3: Add buffer sprint
βββ 3 sprints of work
βββ 1 buffer sprint
βββ Promise 4 sprints
Communicating Estimates
PRESENTING TO STAKEHOLDERS
ββββββββββββββββββββββββββ
DO: USE RANGES
βββββββββββββββββββββββββββββββββββββ
"The project will take 8-10 weeks"
"We estimate 10 weeks with 80% confidence"
"Best case: 8 weeks, likely: 10 weeks"
DON'T: SINGLE DATES
βββββββββββββββββββββββββββββββββββββ
"It will be done May 15th"
β Creates false precision
β Ignores uncertainty
β Sets up for failure
CONFIDENCE LEVELS:
βββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββ
β Estimate β Confidence β Use Case β
ββββββββββββββΌβββββββββββββΌββββββββββββ€
β 8 weeks β 50% β Target β
β 10 weeks β 80% β Promise β
β 12 weeks β 95% β Deadline β
ββββββββββββββ΄βββββββββββββ΄ββββββββββββ
Promise at 80%, deadline at 95%.
UPDATING ESTIMATES:
βββββββββββββββββββββββββββββββββββββ
As project progresses:
βββ Sprint 1 complete: Estimate unchanged
βββ Sprint 2: Velocity lower β Update estimate
βββ Sprint 3: Scope added β Update estimate
βββ Sprint 4: On track β Confirm estimate
Communicate changes early.
"Based on new data, we need 2 more weeks."
GitScrum Implementation
SETTING UP ESTIMATION IN GITSCRUM
βββββββββββββββββββββββββββββββββ
STEP 1: ENABLE TIME TRACKING
βββββββββββββββββββββββββββββββββββββ
Project Settings β Time Tracking β Enable
βββ Timer for real-time tracking
βββ Manual entries allowed
βββ Reports accessible
STEP 2: CREATE TASK STRUCTURE
βββββββββββββββββββββββββββββββββββββ
Projects β Tasks
βββ Create tasks with clear scope
βββ Assign effort points (XS-XL)
βββ Group into sprints
βββ Set due dates
STEP 3: TRACK VELOCITY
βββββββββββββββββββββββββββββββββββββ
After each sprint:
βββ Workspace β Reports β Sprint KPIs
βββ Review points completed
βββ Compare to commitment
βββ Calculate average velocity
STEP 4: RUN FORECASTS
βββββββββββββββββββββββββββββββββββββ
Backlog points: 180
Team velocity: 35 pts/sprint
180 Γ· 35 = 5.1 sprints
Round up: 6 sprints = 12 weeks
With buffer: 6 Γ 1.2 = 7.2 β 8 sprints
Conservative estimate: 16 weeks
Common Estimation Mistakes
ANTI-PATTERNS TO AVOID
ββββββββββββββββββββββ
MISTAKE 1: OPTIMISM BIAS
βββββββββββββββββββββββββββββββββββββ
β "If everything goes perfectly..."
β Best case as the estimate
β Ignoring past project delays
β Use historical velocity
β Include buffer for unknowns
β Plan for realistic scenarios
MISTAKE 2: HOUR-BASED ESTIMATES
βββββββββββββββββββββββββββββββββββββ
β "This will take 40 hours"
β Precise hours for uncertain work
β Treating all developers equally
β Use relative sizing (points)
β Let velocity normalize time
β Focus on complexity, not duration
MISTAKE 3: NO SCOPE MANAGEMENT
βββββββββββββββββββββββββββββββββββββ
β Accepting all changes
β Not tracking additions
β Same deadline despite growth
β Track scope changes
β Re-estimate when scope grows
β Communicate impact of changes
MISTAKE 4: IGNORING HISTORY
βββββββββββββββββββββββββββββββββββββ
β "This project is different"
β Not using past data
β Repeating estimation errors
β Track actual vs estimated
β Learn from past projects
β Calibrate estimates over time
Best Practices
Estimation Checklist
BEFORE COMMITTING TO A TIMELINE
βββββββββββββββββββββββββββββββ
REQUIREMENTS:
β‘ All features documented
β‘ Stories broken into tasks
β‘ Acceptance criteria defined
β‘ Dependencies identified
ESTIMATION:
β‘ Effort points assigned
β‘ Team reviewed estimates
β‘ Historical velocity used
β‘ Buffer included
COMMUNICATION:
β‘ Range provided (not single date)
β‘ Assumptions documented
β‘ Risks identified
β‘ Update schedule agreed