Estimation
The fine art of guessing
What is an estimation?
A good estimate is an estimate that provides a clear enough view of the project reality to allow
the project leadership to make good decisions about how to control the project to hit its targets.
We estimate to:
judge obtain
tentatively or determine values when
approximately roughly the
it is difficult
the value, size, extent,
worth, or to measure
or nature of
significance of precisely
Types of estimations
Which one is heavier?
Types of estimations
How many kg?
Types of estimations
Absolute VS Relative or Concrete VS Abstract or Size VS Weight
Absolute types of estimations: Relative? Absolute?
- Days
- Hours
- Units of time
Relative types of estimations (points):
- Scrum: 1, 1Τ2, 1, 2, 3, 5, 8, 13, 20, 40, 100
- Fibonacci: 1, 2, 3, 5, 8, 13, 21, 34, 55
- Sequential: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- Playing cards: Ace, 2, 3, 5, 8, King
- T-shirt sizes: XS, S, M, L, XL, XXL
Types of estimations
Exercise: Relative estimates
Assign relative points to the following squares (from small to big):
Types of estimations
Exercise: Relative estimates
Assign relative points to the following squares (from small to big):
4 2 5 3 1
Types of estimations
Exercise: Absolute estimates
Estimate the area of the following squares (pixels):
Types of estimations
Exercise: Absolute estimates
Estimate the area of the following squares (pixels):
57.121
34.225
14.400 20.449
6.400
Types of estimations
Absolute estimates
Nothing much can be said about absolute estimations. They
are absolute units of time (hours, days, weeks).
Types of estimations
Relative estimates
Unfortunately, humans are phenomenally bad at estimating and even worse when
working in a complex domain like software development.
Luckily, people are good at comparing things and, because of this, we
find it easier to estimate into relative units.
Types of estimations
The golden ratio
The "golden ratio" is a unique mathematical relationship. Two
numbers are in the golden ratio if the ratio of the sum of the
numbers (a + b) divided by the larger number (a) is equal to
the ratio of the larger number divided by the smaller number
(a/b).
The golden ratio is sometimes called the "divine proportion,"
because of its frequency in the natural world.
𝑎+𝑏 𝑎
= = 𝜑
𝑎 𝑏
Types of estimations
Fibonacci
Why use the Fibonacci sequence?
Borrowed from nature, this
exponentially increasing scale deliberately creates a
buffer in estimating that allows for change.
𝐹𝑖𝑏(𝑛)
≈ 1.618 ⇒ 60% 𝑖𝑛𝑐𝑟𝑒𝑎𝑠𝑒 𝑓𝑟𝑜𝑚 𝑝𝑟𝑒𝑣𝑖𝑜𝑢𝑠
𝐹𝑖𝑏(𝑛 − 1)
Types of estimations
1-point, 2-points, 3-points
In software development, we can estimate using different
techniques.
The most used technique is to give only one number (1-point)
which represents the optimistic effort – a value biased by
our experiences and opinions.
Using a range of 2 or 3 numbers (2-points, 3-points) further
express the uncertainties and provide a clearer picture of
the complexity.
Types of estimations
1-point estimate
Each member of a team gives an arbitrary number which
represents what it thinks about a certain task/story.
Each value given represents the optimistic effort and is
usually biased and based on experience and opinion of the
owner.
Multiple factors can influence the value given, but we will talk
about this later.
Types of estimations
Appendix: Risks and Assumptions
Definitions:
Assumption: a thing that is accepted as true or as certain
to happen even in the absence of proof.
Risks: a potential problem that can occur during the
implementation of a task.
Types of estimations
Appendix: Assumptions
An assumption is the necessary condition that will enable the
successful completion of the Goal or Activity.
Example of assumptions:
• All building materials will be available in the market
before the project start
• The legal framework will not change drastically soon
• The pattern of rain will not change soon
Types of estimations
Appendix: Risks
A risk is defined as an uncertain threat that, in case of
occurring, could have a negative impact in the completion of
the Goal or Activity.
Example of risks:
• After an election, a different political party is in
charge that does not support your agenda
• Natural catastrophes like floods or landslides
hamper the success of your project
• The pattern of rain will change soon
Types of estimations
2-points estimate
Estimating using a range, provides some level of uncertainty which
could be benefic and more realistic than only one number.
If you say a task will take between 2 to 4 days, is more realistic
then to say it will only take 3 days.
If you want to make an accurate estimate, take into account the
Risks and Assumptions.
Types of estimations
3-points estimate
The three points are defined as follows:
• Best case
• Worst case
• Most likely
Best case is when all the stars align: no Risks are materialized,
and all Assumptions are true.
Worst case is the opposite of the best case: all Risks are
materialized, and all Assumptions are false.
Mostly likely is between the two. This case takes into
consideration the likeliness of a Risk to materialize and an
Assumption to be true.
Accuracy VS Precision
In common parlance “accuracy” and “precision” are used interchangeably but in the scientific world
they are different. Accurate means the measure is correct. Precise means the measure is
consistent with other measurements.
The ideal is where a measurement is both accurate and precise. The nightmare scenario is when
your measurement is both inaccurate and imprecise.
Low accuracy High accuracy High accuracy Low accuracy
High precision High precision Low precision Low precision
Accuracy VS Precision
Precision
If we must choose between accuracy and precision, then we should go
for accuracy.
An estimate that is precise but not accurate doesn’t do much for
us.
Example: an estimation of 4.75 days doesn’t bring any value if the
actual work took 10 days ( > 50% error).
Accuracy VS Precision
Accuracy
In contrast to precision, accuracy gives a more broad but realistic
view.
The process to calculate precise estimations often comes from
longer estimation process so, a team, will lose more time on giving
precise estimation instead of actual working on stuff.
Example: an estimate of roughly 2 weeks can be completed between
10 to 20 days and still be in a desirable range (28% - 35% error).
Overestimate vs underestimate
“Hofstadter's Law: It always Common pitfall in software projects is if one should
takes longer than you expect, overestimate or underestimate.
even when you take into account
Hofstadter's Law.” Considering the Hofstadter's low, maybe we should
overestimate by default for all the projects.
Douglas Hofstadter - American scholar
Overestimate vs underestimate
Overestimating by default
Parkinson's Law states:
“Work expands so as to fill the time available for its
completion.”
So, one could be inclined to use all the time available
even only a fraction is required.
This, generates an increased budged and has other
downfalls such as losing the project.
Overestimate vs underestimate
Work can also be expanded
If you give a team three months to complete a project,
they will spend the entire three months, even if one would've
been enough.
The same goes for budget: If you have x amount of
budget to spend, you are much more likely to use all that
money, even if you could have potentially done it with half
of the cost.
You may ask: If the team completes the project on time
and schedule, why not?
If you give yourself too much time, you will most likely be
affected by Student Syndrome, most known as
procrastination.
Overestimate vs underestimate
The student syndrome AKA procrastination
Too much time will result in rushing the work at the very last moment,
producing a low-quality product and, most of the time, not finishing on
schedule.
Overestimate vs underestimate
The right mindset
The right mindset can help to achieve good estimates and eradicate
the bad phenomenon.
Team empowerment and buffer planning will reduce the risk of
unnecessarily stretched out work
Daily stand-ups, retrospectives and reviews help the team keep on
track and avoid student syndrome
𝐺𝑜𝑜𝑑𝐸𝑠𝑡𝑖𝑚𝑎𝑡𝑒 = 𝑀𝑖𝑛 𝑆𝑐ℎ𝑒𝑑𝑢𝑙𝑒 + 𝑀𝑖𝑛 𝐶𝑜𝑠𝑡 + 𝑀𝑎𝑥 𝐹𝑢𝑛𝑐𝑡𝑖𝑜𝑛𝑎𝑙𝑖𝑡𝑦 + 𝑀𝑎𝑥(𝑄𝑢𝑎𝑙𝑖𝑡𝑦)
Estimation techniques
Count, Compute, Judge
If you can count the answer directly, do that first.
If you can't count the answer directly, count something meaningful and
then compute the answer by using some sort of calibration data.
Use judgement only for the items that cannot be counted / computed,
but in conjunction with ones that can.
As a rule of thumb:
• Count if possible.
• Compute when you can't count.
• Use judgment alone only as a last resort.
Estimation techniques
Historical data, Calibration
Use historical data as basis for productivity assumptions and to
avoid politically charged discussions.
Collect a project's historical data as soon as possible.
Use data from your current project to create highly accurate
estimates for the remainder of the project.
Estimation techniques
Compare estimates to actuals
Compare actual performance to estimated performance so that you can improve your individual
estimates over time.
Useful links
• How to overcome Parkinson's Law:
https://www.atlassian.com/blog/productivity/what-is-parkinsons-law
• Estimating Software Projects’ Time and Cost Like a Pro:
https://www.offerzen.com/blog/estimating-software-projects-time-and-cost-
like-a-pro
• Software Estimation: Demystifying the Black Art:
https://www.amazon.com/dp/0735605351
Thank you !
The END