CHAPTER 9
ESTIMATION
Syllabus
Estimation: User story point: basics; components of story point estimation; Steps involved in
estimation;
Estimation
It’s the most difficult aspects of the job for the Software developers.
Traditional software teams give estimation in time format: days, weeks, months.
But, agile teams transitioned to story points.
Estimation in software engineering is a critical process that involves predicting the
effort, time, cost, and resources required to complete a software project.
Accurate estimation is essential for effective project planning, management, and
execution, ensuring that projects are completed on time and within budget
User Story Point: Basics
Story points represent the relative sizing of the user story.
It is a unit of estimation used by Agile teams to estimate User Stories.
When the product owner wants some features to be developed, he/she desires to know
how soon the team can complete the features and how many resources it will take to
complete the work.
From the developer’s perspective, it’s next to impossible to predict the exact time in
which he/she can complete the work.
The person can, however, give a rough estimate in terms of how much time it might
take to complete the work.
We are good at comparing size, so estimating a story using Fibonacci series sequence
(0, 1, 2, 3, 5, 8, 13, 20, 40, and 100) gives more clarity of its complexity and relative
sizing in terms of development.
It is helpful to have a set of stories nearby to make a comparison and recommendation
to set priority.
Examples of relative sizing and its estimation points to develop the following
vehicles,
User Story Point
A story point is a metric used in agile project management and development to
estimate the difficulty of implementing a given user story.
It is an abstract measure of effort required to implement it.
In simple terms, a story point is a number that tells the team about the difficulty level
of the story.
Difficulty could be related to complexities, risks, and efforts involved.
User Story Estimation
Estimation is a critical part of any project process, regardless of the methodology
used.
In an Agile project, where the requirements keep evolving, estimation assumes even
greater importance.
It serves as a baseline for creating project schedules, planning upcoming work and
release dates, and getting all the team members on the same page at the very outset.
Without a properly planned estimation process, it’s very easy for any project to get
out of hand and overshoot on time, budget and scope.
Story points are the most popular method of estimating an Agile project.
Story Point Estimation
Story point estimation is a technique used in Agile project management to replace
task estimation in time or money.
The smallest tasks are estimated at 1 point and then other tasks are weighed and
estimated in accordance with that task.
Components of Story Point Estimation
1. Risk
The risk of a particular project or item includes vague demands, dependence on a
third party, or changes mid-task.
2. Complexity
This component is determined by how difficult the feature is to develop.
3. Repetition
This component is determined by how familiar the team member is with the feature
and how monotonous certain tasks are within development.
Using Fibonacci Sequence Numbers
Fibonacci sequence numbers offer a simple scale for estimating agile story points.
As we have learnt in Math, in this sequence, each number is the sum of the previous
two and the series looks like this: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89… etc.
Using this series, it becomes far easier to calculate the relative measure of two tasks.
As an example, let’s assume user is holding two weights: a one-pound weight in one
hand and a two-pound weight in the other.
Without any problem at all, you will be able to judge the one which is heavier.
However, let’s suppose you are holding a 10-pound weight in one hand and a 10.5-
pound weight in the other. It’s now not as easy to judge which is heavier, is it?
When using a Fibonacci sequence, the numbers jump along the series, and we can still
perceive the difference when each number is much larger than the previous one.
The team first identifies the smallest story and assigns 1 story point to it.
This becomes the baseline for reference. All other stories are compared to this one,
and story points are assigned to the remaining stories in line with the numbers in the
Fibonacci sequence.
Along the way, a method called triangulation is used to check whether the story points
assigned are roughly accurate. If an item is an 8, for example, check the items that are
on either side - marked 5 and 13 - and see whether it really deserves to be labelled an
8.
For Agile, the sequence is typically modified to 0.5, 1, 2, 3, 5, 8, 13, etc. Using these
numbers, it’s much easier to decide if an item is 3 story points or 5 story points.
Steps Involved in Estimation
Step 1 - Use Fibonacci sequence numbers
There are two types of scales used for creating estimation matrices: the linear scale
and Fibonacci sequence.
It’s tempting to assign items with a linear scale, but those integers aren’t differentiated
enough to clearly define an estimate.
Fibonacci sequence numbers eliminate those minor jumps.
The Fibonacci sequence is a series of numbers where each number is the sum of the
two previous numbers: 0, 1, 1, 2, 3, 5, 8, 13, 21, etc.
For Agile, the sequence is typically modified to 0.5, 1, 2, 3, 5, 8, 13, etc.
Using these numbers, it’s much easier to decide if an item is 3 story points or 5 story
points.
Step 2 – Create a story point estimation matrix
After decision to use the Fibonacci sequence, it’s time to determine a baseline for
each story point.
For instance:
1 = Add a new product to a dropdown menu
2 = Add order tracking for logged-in users
3 = Add a ratings system to the website
5 = Add a forum to the site
8 = Add GDPR and CCPA compliance across the site
The baseline is included in this matrix as 1, which sets the standard for what the least
amount of risk, complexity, and repetition looks like in practice.
This matrix is a way to more concretely measure effort; keep this in mind instead of
defaulting to judging items based only on length of time.
Step 3 – Play planning poker to decide on story points
Planning poker is a great way to have the team agree on the correct story point
approximation for every item in the backlog.
During the sprint planning meeting, each developer receives a set of cards depicting
the Fibonacci sequence.
A backlog item is brought to the table so that the team may ask questions and clarify
features.
When the discussion is closed, each developer and tester privately select the card that
most accurately reflects their estimate.
When all cards have been selected, the estimators reveal their cards at the same time.
If a consensus is met, it’s time to move on to the next backlog item.
If the estimates vary, the leaders discuss until they arrived at a consensus.
It’s useful to have a completed matrix on hand for the estimators to reference during
planning poker, as it allows for greater consistency across tasks.
Also, it’s useful to set a maximum limit (13, for instance).
If a task is estimated to be greater than that limit, it should be split into smaller items.
Similarly, if a task is smaller than 1, it should be incorporated into another task.
At this point, within the sprint planning meeting, items in the product backlog can be
prioritized and divided out amongst the team based on the team’s workload capacity.
QUESTIONS
1. Define story point, estimation, user story estimation.
2. Write a note on user story estimation.
3. List and explain components of story point estimation.
4. Describe the steps involved in estimation.
5. Explain how Fibonacci Sequence is used in estimation