agile / agile-metrics · v1.0

Agile Metrics & Estimation Reference

Every metric your team needs — defined, formulated, and honestly critiqued. No fluff. No vendor bias. Just clear engineering knowledge.

14
Metrics documented
6
Estimation techniques
8
Anti-patterns
MIT
Open license

Flow Metrics

These metrics describe how work moves through your system.

Velocity
Story points completed per sprint. Used for sprint planning and release forecasting.
Flow
Cycle Time
Start → Done. The team's controllable speed. Use 85th percentile, not average.
Flow
📬
Lead Time
Request → Done. The customer's experience of wait = queue + cycle time.
Flow
📦
Throughput
Items completed per unit time. Use instead of velocity for #NoEstimates teams.
Flow
📊
Cumulative Flow
Stacked area chart revealing bottlenecks. Little's Law lives inside.
Flow
🐛
Escaped Defects
Bugs that reach customers after release. Target <10% escape rate.
Quality
📉
Sprint Burndown
Remaining work vs. time in-sprint. Flat lines = blockers.
Planning
📈
Release Burnup
Progress toward release scope. Scope changes are visible — better than burndown for releases.
Planning

Velocity

The sum of story points for all completed stories in a sprint. Use a rolling average of the last 3–6 sprints for planning.

Avg Velocity = Σ(sprint points, last N sprints) / N
Velocity is team-specific. Comparing velocity across teams incentivises inflation and is meaningless. Never use it for individual performance review.

Cycle Time

Time elapsed from when a work item moves to "In Progress" until it reaches "Done".

Cycle Time = Done Date − Start Date
Use 85th percentile for SLAs. Plot as histogram, not average. Don't average with outliers — one 30-day item destroys the mean.

Lead Time

Total time from when a request is made to when it is delivered. Includes queue time before work begins.

Lead Time = Done Date − Request Date
          = Queue Time + Cycle Time
Lead time is the customer's experience. Cycle time is the team's experience. Both matter — for different audiences.

Throughput

The number of work items completed per unit time (week or sprint). Use alongside or instead of velocity for teams not using story points.

Throughput = Items Completed / Time Period

Little's Law:
WIP = Throughput × Cycle Time
Little's Law means: if you want lower cycle time, reduce WIP. Throughput is your delivery rate; WIP is the lever.

Sprint Burndown

A chart showing remaining work (story points or tasks) versus time remaining in the sprint. Flat lines reveal blockers; lines that rise mid-sprint indicate scope creep.

Burndowns are diagnostic, not predictive. A perfect burndown means nothing if the Sprint Goal wasn't meaningful. Focus on the goal, not the line.

Release Burnup

A chart showing completed work versus total scope over time. Unlike burndown, burnup makes scope changes visible — the total line moves up when scope is added.

Prefer burnup over burndown for release tracking. Scope creep is visible. Progress is unambiguous. Stakeholders can see exactly what changed and why the date moved.

Escaped Defects

Bugs that reach customers after a release — not caught by the team's own testing. The lower this number, the stronger the Definition of Done and test coverage.

Escaped Defect % = Post-release Bugs / Total Bugs × 100

Target: <10% escape rate
Zero escaped defects is not the goal — zero P1 escaped defects is. Some defects are minor. Track by severity, not just count.

Estimation Techniques

Choose based on your team's maturity, data availability, and forecasting needs.

🃏
Story Points
Relative effort on a Fibonacci scale. Measures complexity, not hours.
Estimation
Planning Poker
Simultaneous card reveal to prevent anchoring. Best for team consensus.
Estimation
👕
T-Shirt Sizing
XS/S/M/L/XL for roadmap-level epics. Fast and stakeholder-friendly.
Estimation
📐
Three-Point / PERT
Optimistic, Most Likely, Pessimistic. Communicates uncertainty as a range.
Estimation
🎲
Monte Carlo
Simulate thousands of futures using real throughput data. The most honest forecast.
Probabilistic
#NoEstimates
Count items + Monte Carlo instead of estimating. Works best with right-sized stories.
Approach

Three-Point PERT

Combines three scenarios into a weighted average. The standard deviation quantifies how uncertain the estimate is.

E = (O + 4M + P) / 6
σ = (P − O) / 6

Where:
O = Optimistic
M = Most Likely
P = Pessimistic
Present estimates as E ± σ. Example: "6 days ± 2 days" is more honest than "6 days."

Monte Carlo Simulation

Use historical throughput data to simulate thousands of possible futures and produce a probability distribution for delivery dates.

Steps:
1. Collect throughput data (items/sprint, last 10+ sprints)
2. Count remaining backlog items
3. Simulate 10,000 sprints by sampling from historical throughput
4. Plot completion dates as a distribution

Output:
→ 50th percentile = "likely" date
→ 85th percentile = commitment date (external stakeholders)
→ 95th percentile = contractual guarantee
Use 85th percentile for external commitments. 50% means you're wrong half the time. 85% gives you a defensible, honest commitment.

Anti-Patterns

Anti-PatternWhy It's HarmfulBetter Approach
Cross-team velocity comparisonDifferent teams inflate points to appear fasterTrack throughput % improvement within the same team
Velocity as individual KPICreates point gaming; destroys team cohesionMeasure team outcomes, not individual output
100% sprint commitmentNo buffer for bugs, unplanned work, or helping teammatesTarget 70–80% planned capacity
Estimates as commitmentsEstimates are probabilistic; treating them as binary creates blame cultureCommunicate ranges and confidence levels explicitly
Velocity as the only metricIgnores quality, sustainability, and customer valueBalance with defect rate, NPS, cycle time
Averaging cycle timeOne 30-day outlier destroys the meanUse 85th percentile for commitments; median for reporting

Formula Cheat Sheet

Flow Metrics
Lead Time    = Done Date − Request Date
Cycle Time   = Done Date − Start Date
Throughput   = Items Done / Time Period
Little's Law = WIP = Throughput × Cycle Time

Velocity & Forecasting
Velocity (avg)  = Σ(points, last N sprints) / N
Forecast Date   = Today + (Scope Remaining / Avg Velocity) × Sprint Length
Monte Carlo 85% → use for external commitments

Estimation (PERT)
Expected (E)   = (O + 4M + P) / 6
Std Deviation  = (P − O) / 6
Communicate as → E ± σ

Quality
Escaped Defect % = Post-release Bugs / Total Bugs × 100
Defect Density    = Defects / Story Points (or KLOC)