CHAPTER 07
Beginner
Agile Estimation Techniques
Updated: May 16, 2026
30 min read
# CHAPTER 7
Agile Estimation Techniques
1. Introduction
"How long will this take?" is the most common, and most dreaded, question in software engineering. Humans are notoriously terrible at estimating time. If you ask a developer how many hours a login screen will take, they might say "5 hours," completely forgetting about security testing, database migrations, and UI rendering. Agile rejects the concept of estimating in absolute hours. Instead, Agile introduces Relative Estimation. In this chapter, we will master Agile Estimation Techniques. We will abandon hourly predictions, learn the magic of Story Points, engage in Planning Poker, and utilize historical Velocity to forecast delivery dates with mathematical accuracy.2. Learning Objectives
By the end of this chapter, you will be able to:- Explain why "Time-based estimation" fails in complex software projects.
- Define "Story Points" and the concept of relative sizing.
- Facilitate a "Planning Poker" estimation session.
- Utilize the Fibonacci sequence to represent complexity.
- Calculate team "Velocity" to forecast future Sprint deliveries.
3. Why Estimating in Hours Fails
Software development is complex, creative work, not an assembly line.- The Optimism Bias: Developers always assume the "happy path" (no bugs, perfect APIs).
- Varying Skill Levels: A task that takes a Senior Dev 2 hours might take a Junior Dev 12 hours. If you estimate in hours, the estimate depends entirely on *who* does the work.
4. Story Points (Relative Estimation)
Instead of estimating time, Agile estimates Effort, Complexity, and Risk / Uncertainty.- The Concept: You do not guess the height of a building in exact feet. You look at Building A, and you say, "Building B looks twice as big as Building A." That is relative sizing.
- The Baseline: The team picks a very simple, well-understood User Story (e.g., "Change button color"). They assign it "1 Story Point." Every other story is estimated *relative* to that baseline. If a new story is 3 times as complex as the button color, it gets 3 points.
5. The Fibonacci Sequence
Agile teams universally use a modified Fibonacci sequence for pointing: 1, 2, 3, 5, 8, 13, 21.- Why? Because as tasks get larger, human estimation gets less accurate. We can easily tell the difference between a 1-point and 2-point task. But trying to debate if a massive task is 20 points or 21 points is a waste of time. The sequence forces a gap (13 vs 21), acknowledging that large numbers inherently carry massive uncertainty.
6. Planning Poker
The most popular technique for team estimation.- 1. The Product Owner reads the User Story to the Developers.
- 2. The Developers ask questions to clarify technical details.
- 3. Every Developer holds a deck of cards with Fibonacci numbers.
- 4. On the count of three, everyone reveals their card simultaneously.
- 5. If everyone shows a 5, the story is 5 points.
- 6. If Developer A shows a 2 and Developer B shows a 13, they must debate! Developer B might know about a hidden database risk that Developer A missed. They discuss, and vote again until consensus is reached.
7. Other Techniques (T-Shirt Sizing)
For extremely high-level backlog items that are months away, doing exact Planning Poker is a waste of time. Instead, teams use T-Shirt Sizing (XS, S, M, L, XL). It allows the Product Owner to get a fast, rough estimate for long-term roadmaps without bogging the team down in technical debates.8. Velocity and Forecasting
How do Story Points translate to delivery dates? By using Velocity.- Velocity: The total number of Story Points a team successfully completes in a single Sprint.
- The Magic: If a team completes exactly 30 points in Sprint 1, 32 points in Sprint 2, and 28 points in Sprint 3, their *Average Velocity* is 30 points per Sprint.
- Forecasting: If the Product Owner has 150 points worth of features left in the backlog, and the team's velocity is 30 points/Sprint, the PO can mathematically forecast that the project will take 5 more Sprints (10 weeks) to complete.
9. Common Mistakes
- Equating Points to Hours: "1 point equals 4 hours." This completely destroys the entire purpose of relative estimation. If points equal hours, just use hours. Points must remain an abstract measure of complexity. Management must not try to convert them into timesheets.
- Comparing Teams: "Team A has a velocity of 50. Team B has a velocity of 20. Team A is better!" This is a catastrophic failure of management. Team A's baseline "1 point" might be vastly different from Team B's. Velocity is a localized metric, totally useless for cross-team comparison.
10. Mini Project: Facilitate Planning Poker
Scenario: The story is: "Integrate Google Maps API to show the delivery driver's location."- You select the baseline: "Update user profile text" is a 2.
- *Developer A votes: 5.* (They integrated Google Maps at their last job).
- *Developer B votes: 13.* (They realize the app's current location tracking architecture is incompatible with the Google API).
11. Practice Exercises
- 1. Define the three factors that make up a "Story Point" (Effort, Complexity, Risk). Give a practical example of a task that has low effort, but massive risk.
- 2. Explain the psychological benefit of everyone revealing their Planning Poker cards simultaneously, rather than voting one-by-one around the table.
12. MCQs with Answers
Question 1
Why do Agile teams utilize the Fibonacci sequence (1, 2, 3, 5, 8, 13) for Story Point estimation?
Question 2
A Scrum Team has tracked their last three Sprints and completed 40, 42, and 38 Story Points respectively. What is this metric called, and what is its primary business use?
13. Interview Questions
- Q: A non-technical stakeholder demands to know exactly how many hours a 5-point story will take. As a Scrum Master, how do you explain the concept of relative estimation and protect the team from hourly commitments?
- Q: Explain the mathematical process of calculating a team's "Velocity." How do you handle incomplete stories at the end of a Sprint? Do you get partial points? (Hint: No. Agile is binary. Done or Not Done).
- Q: A Senior Developer constantly votes '2' on tasks because they can do them quickly, while a Junior Developer votes '8' because it will take them days. How do you resolve this discrepancy during Planning Poker?